英俊的小铁匠 发表于 2022-11-30 22:13:31

erm脚本的覆盖顺序是什么样的?

本帖最后由 英俊的小铁匠 于 2022-11-30 22:53 编辑

我修改了指挥官的初始属性(魔力觉醒3),放到mods文件夹下面(data/s目录),erm内容如下:

ZVSE

!?PI;
!!FU(func_1):P;

!?FU(func_1);
!#MA:A174/10 D174/10 M174/20 E174/20 P174/200 B174/1; **圣骑士[攻击|防御|最小伤害|最大伤害|生命值|施法次数]**
!#MA:A183/10 D183/10 M183/20 E183/20 P183/200 B183/1; **圣骑士(2)[攻击|防御|最小伤害|最大伤害|生命值|施法次数]**

进游戏发现按F5看到的属性确实是变了,但是英雄身上带的指挥官依然是魔力觉醒自带的脚本设置的属性(比如生命值是60)

两个mod都在!?PI里面修改了同一个生物的属性,怎么控制顺序让我加的mod后执行呢?

Archer30 发表于 2022-12-1 15:19:22

楼主的问题可能不是erm相关的,指挥官界面的属性可以是插件处理的

就这个题目的话,楼主想要的是尽量慢执行!!MA命令,以便覆盖魔力觉醒的设定。假设魔力觉醒没用插件处理指挥官界面,那么试试这样:

文件名:-9000 my personal edits.erm (前缀用负号+大数字,确保在任意脚本之后加载)

脚本:
ZVSE2
!?FU(OnEveryDay)&i^timerOnce^/i^timerDay^=1; [第一天执行一次]
!!MA:A174/10 D174/10 M174/20 E174/20 P174/200 B174/1; **圣骑士[攻击|防御|最小伤害|最大伤害|生命值|施法次数]**
!!MA:A183/10 D183/10 M183/20 E183/20 P183/200 B183/1; **圣骑士(2)[攻击|防御|最小伤害|最大伤害|生命值|施法次数]**

噬魂恶魔 发表于 2022-12-1 16:23:06

楼主很有潜力,加油,未来的栋梁

英俊的小铁匠 发表于 2022-12-1 18:56:06

Archer30 发表于 2022-12-1 15:19
楼主的问题可能不是erm相关的,指挥官界面的属性可以是插件处理的

就这个题目的话,楼主想要的是尽量慢 ...

正负数字的顺序是怎么样的?9000 -> 1000 -> 0 -> -1000 -> -9000类似这样的顺序吗?

英俊的小铁匠 发表于 2022-12-1 18:59:57

Archer30 发表于 2022-12-1 15:19
楼主的问题可能不是erm相关的,指挥官界面的属性可以是插件处理的

就这个题目的话,楼主想要的是尽量慢 ...

!?FU(OnEveryDay)&i^timerOnce^/i^timerDay^=1;

试了一下不行,文件名改成大负数开头,里面触发改成你给的这种了

英俊的小铁匠 发表于 2022-12-1 19:11:12

Archer30 发表于 2022-12-1 15:19
楼主的问题可能不是erm相关的,指挥官界面的属性可以是插件处理的

就这个题目的话,楼主想要的是尽量慢 ...

我用了一个独立的mod目录,没有放在魔力觉醒的目录下,不同mod的脚本也会混在一起按照文件名顺序执行吗?mod管理器里面显示的顺序有影响么?

Archer30 发表于 2022-12-1 19:24:24

楼主不妨直接用IF:M或者IF:L语句测试执行顺序(如果不知道是啥的话,看erm帮助)

脚本执行顺序(根据文件名):
1000 my scripts.erm
0 my scripts.erm
-9000 my scripts.erm
这个顺序是无视mod的,不管脚本放在哪个mod内,都会是这个顺序

既然改了之后不生效,那只能说明指挥官界面的数据不是erm定义的(或者被魔力觉醒的插件覆盖)。后者的情况只能是和贤知有您沟通了。

楼主如果有兴趣继续探讨erm的问题,欢迎加入mod创作交流群

英俊的小铁匠 发表于 2022-12-1 19:31:35

Archer30 发表于 2022-12-1 19:24
楼主不妨直接用IF:M或者IF:L语句进行测试执行顺序(如果不知道是啥的话,看erm帮助)

脚本执行顺序(根 ...

哦,我发现后面的!#应该改为!!,不过改了之后还是被覆盖,即使把触发器改到游戏第二天也不行,看来指挥官是被特殊处理了

Archer30 发表于 2022-12-1 19:33:25

英俊的小铁匠 发表于 2022-12-1 19:31
哦,我发现后面的!#应该改为!!,不过改了之后还是被覆盖,即使把触发器改到游戏第二天也不行,看来指挥官 ...

对,!#是不需要触发器,在所有触发器执行之前触发的语句。
页: [1]
查看完整版本: erm脚本的覆盖顺序是什么样的?

捐赠