泽渔 发表于 2020-5-14 15:36:35

【敌人等级】MOD

本帖最后由 泽渔 于 2020-6-16 13:42 编辑

范例工程链接:链接
众所周知iFAction的敌人是没有等级的,所以现在,敌人等级来啦~
已知bug:
5.14:敌人小血条读取错误,并不能正常显示敌人当前最大生命值。

这个mod可以做到:
1.设置一个指向全部敌人的默认等级,和默认的每一级增加的属性数值。
2.设置指向特定敌人(指数据库敌人而非场景敌人)的等级,和特定敌人的每一级增加的属性数值。

注意事项:
1.画在地图上的敌人的生成顺序高于触发器执行事件,所以在直接执行触发器中设置mod的触发器指令会对这些敌人无效。
2.这个mod的触发器指令不会对已经生成出来的敌人再次生效。
3.通过触发器指令进行的修改不会被保存。
4.建议在【 EnemyLvlSet 】脚本页对默认敌人和特定敌人的基础属性与等级进行设置,在该脚本页有详细的教程。
5.数值会突破9999的上限。(不知道会不会出现问题,如果出现问题请反馈)
6.在ARPG工程下,旧版本下,如果你希望正常使用该mod,那么你必须要修改 LEnemy 的第230行,(cof改为_sf)即:
   将:   if(_sf.mp > _sf.getMaxMp()) _sf.mp = cof.getMaxMp();
   改为:   if(_sf.mp > _sf.getMaxMp()) _sf.mp = _sf.getMaxMp();
   此BUG会在iFAction的最新版本修复,如果你购买时已经拥有AVG模式则是新版本,往后即老版本。

7.等待添加……

关于【 EnemyLvlSet 】脚本页:
/*
直接设置某个id的敌人的等级和属性
与指令的区别:在这里填写可以直接执行,在触发器指令中填写由于敌人生成顺序高于触发器指令,所以不会修改执行触发器指令之前生成的敌人的属性。
以下方法也可以在触发器中使用脚本调用,同理。
方法:EnemyEidLvl (eid,lvl,MaxHp,MaxMp,WAtk,WDef,MAtk,MDef,Speed,Luck,AddCrit,AddCritF,AddDodge,Repel);
例子:EnemyEidLvl(3,0,0,0,0,0,0,0,0,0,0,0,0,0);
或:EnemyEidLvl (3);
解释:将数据库里id为3的敌人的等级改为0,其他随等级增加的属性也改为0。
注意.1:这个修改是默认的,是每一次重新打开游戏都会执行的。
注意.2:写在这一页非注释部分即可生效,但是同eid的数据会被覆盖。
注意.3:空缺的值为0。
*/

MOD展示:

BUG修复:

在1.0.0.1版本里:
关于敌人小血条刷新的部分:
你如果希望敌人小血条正常刷新,你必须要前往 LEnemy 脚本页内,
在该脚本页内,利用Ctrl + F 使用【搜索当前页面】搜索: 刷新血条
找到 hpBar.update();
在它的上面插入一段代码:

      //改变血条刷新规则
      var NowMapAllEnemy = RV.NowMap.getEnemys();
      var EnemyEidLvlSet = ReturnEnemyEidLvl ();
      if (EnemyEidLvlSet.length > 0) {
            for (var sl = 0; sl <= NowMapAllEnemy.length; sl++){
                var judge = EnemyEidLvlSet;
                if (judge == undefined) {
                  judge = null;
                }else {
                  judge = judge;
                };
                if (cof.id == judge){
                  var lvl = EnemyEidLvlSet;
                  var LvMaxHp = EnemyEidLvlSet * lvl;//最大生命
                  if (hpBar.visible == true) {
                        hpBar.setValue(_sf.hp,cof.maxHp + LvMaxHp);
                  };
                }else {
                  var nowMaxHp = EnemyLvl.LVL *EnemyLvl.LvMaxHp;
                  if (hpBar.visible == true) {
                        hpBar.setValue(_sf.hp,cof.maxHp + nowMaxHp);
                  };
                };
            };
      }else {
                var nowMaxHp = EnemyLvl.LVL *EnemyLvl.LvMaxHp;
                if (hpBar.visible == true) {
                  hpBar.setValue(_sf.hp,cof.maxHp + nowMaxHp);
                };
      };
如图:

非常感谢。













呆笨企鹅 发表于 2020-5-14 16:30:53

给大佬暖贴了

zimo游戏 发表于 2020-5-14 17:46:23

太强了,离成为大佬越来越近了

FEI 发表于 2020-5-14 18:07:45

hhhhh制霸商店指日可待~

泽渔 发表于 2020-5-14 20:10:32

呆笨企鹅 发表于 2020-5-14 16:30
给大佬暖贴了

蟹蟹,蟹蟹٩('ω')و

泽渔 发表于 2020-5-14 20:11:14

zimo游戏 发表于 2020-5-14 17:46
太强了,离成为大佬越来越近了

是zimo大佬!awsl

泽渔 发表于 2020-5-14 20:11:55

FEI 发表于 2020-5-14 18:07
hhhhh制霸商店指日可待~

{:4_97:}资源商店已经快要被次元的人占下半壁江山了啊!官方资源捏hhh

泽渔 发表于 2020-5-15 13:06:59

本帖最后由 泽渔 于 2020-5-15 13:17 编辑

在1.0.0.1版本的mod里对以下部分进行了修改:

关于敌人小血条刷新的部分:
你如果希望敌人小血条正常刷新,你必须要前往 LEnemy 脚本页内,
在该脚本页内,利用Ctrl + F 【搜索当前页面】搜索: 刷新血条
找到 hpBar.update();
在它的上面插入一段代码:

      //改变血条刷新规则
      var NowMapAllEnemy = RV.NowMap.getEnemys();
      var EnemyEidLvlSet = ReturnEnemyEidLvl ();
      if (EnemyEidLvlSet.length > 0) {
            for (var sl = 0; sl <= NowMapAllEnemy.length; sl++){
                var judge = EnemyEidLvlSet;
                if (judge == undefined) {
                  judge = null;
                }else {
                  judge = judge;
                };
                if (cof.id == judge){
                  var lvl = EnemyEidLvlSet;
                  var LvMaxHp = EnemyEidLvlSet * lvl;//最大生命
                  if (hpBar.visible == true) {
                        hpBar.setValue(_sf.hp,cof.maxHp + LvMaxHp);
                  };
                }else {
                  var nowMaxHp = EnemyLvl.LVL *EnemyLvl.LvMaxHp;
                  if (hpBar.visible == true) {
                        hpBar.setValue(_sf.hp,cof.maxHp + nowMaxHp);
                  };
                };
            };
      }else {
                var nowMaxHp = EnemyLvl.LVL *EnemyLvl.LvMaxHp;
                if (hpBar.visible == true) {
                  hpBar.setValue(_sf.hp,cof.maxHp + nowMaxHp);
                };
      };

非常感谢。

Afei 发表于 2020-5-15 15:33:37

支持!!!{:3_59:}

小雨微梁 发表于 2020-5-15 19:39:35

tql{:4_94:}
页: [1] 2
查看完整版本: 【敌人等级】MOD