|
本帖最后由 泽渔 于 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[cof.id];
if (judge == undefined) {
judge = null;
}else {
judge = judge[0];
};
if (cof.id == judge){
var lvl = EnemyEidLvlSet[cof.id][1];
var LvMaxHp = EnemyEidLvlSet[cof.id][2] * 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);
};
};
如图:
非常感谢。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|