xuzhouhudajz 发表于 2016-2-27 21:13:46

请教贤知大人和其他大神

下面是我编的脚本,带兵位置初始值为7时 ,为什么英雄带兵0号位置无效果;我把带兵位置初始值设为0只有0有效果(脚本见最后!
!?FU10000009&x1=-999999;
!!HEx16:O?y1;#0获取玩家编号
!!FU&y1=-1:E;#1非中立或非无主英雄
!!OW:Iy1/?y2;获取玩家类别
!!FU&y2=0:E;排除人类玩家
!!OW:C?i;获取当前玩家编号
!!FU&y1<>i:E;判断当前玩家与英雄玩家是否一致
!!VRy3:S7;定义带兵位置初始值
!!VRy3:-1;#7自减1
!!HEx16:C0/y3/?y6/?y4;获取相应位置怪物数量
!!FU&y4<1|y4>1000:E;数量为0或大于1000不执行
!!VRy5:Sy4:10;难度调整
!!HEx16:C0/y3/d/dy5;增加怪物数量
!!SN&y3>0:G7;循环检测

!?FU10000009&x1=-999999;
!!HEx16:O?y1;#0获取玩家编号
!!FU&y1=-1:E;#1非中立或非无主英雄
!!OW:Iy1/?y2;获取玩家类别
!!FU&y2=0:E;排除人类玩家
!!OW:C?i;获取当前玩家编号
!!FU&y1<>i:E;判断当前玩家与英雄玩家是否一致
!!VRy3:S0;定义带兵位置初始值
!!HEx16:C0/y3/?y6/?y4;#7获取相应位置怪物数量
!!FU&y4<1|y4>1000:E;数量为0或大于1000不执行
!!VRy5:Sy4:10;难度调整
!!HEx16:C0/y3/d/dy5;增加怪物数量
!!VRy3:+1;
!!SN&y3<7:G7;循环检测

xuzhouhudajz 发表于 2016-2-27 22:21:18

多谢各位已解决!
!?FU10000009&x1=-999999;
!!HEx16:O?y1;#0
!!FU&y1=-1:E;#1
!!OW:Iy1/?y2;
!!FU&y2=0:E;
!!OW:C?i;
!!FU&y1<>i:E;
!!VRy3:S7;
!!VRy3:-1;#7
!!HEx16:C0/y3/?y6/?y4;
!!if&y4<1000:;
!!VRy5:Sy4:10;难度调整
!!HEx16:C0/y3/d/dy5;
!!en:;
!!SN&y3>0:G7;

XEricSin 发表于 2016-2-27 22:21:26

我是没看出什么问题。
一般我不用SN:G的功能,估计出错也是跟它有关。
建议楼主测试的时候可以在关键步骤后加一个IF:M^变量值^的语句,就可以看到哪儿出错了。

xuzhouhudajz 发表于 2016-2-27 22:53:32

XEricSin 发表于 2016-2-27 22:21
我是没看出什么问题。
一般我不用SN:G的功能,估计出错也是跟它有关。
建议楼主测试的时候可以在关键步 ...

问题就在这句“!!FU&y4<1|y4>1000:E;数量为0或大于1000不执行”,如果条件成立就不执行了,循环语句就中断了!

XEricSin 发表于 2016-2-28 00:04:08

xuzhouhudajz 发表于 2016-2-27 22:53
问题就在这句“!!FU&y41000:E;数量为0或大于1000不执行”,如果条件成立就不执行了,循环语句就中断了!

这个语句有语病
!!FU&y4<1|y4>1000:E
&是而且的意思
|是或者的意思

你因该写
!!FU|y4<1/y4>1000:E
这个才是y4小于1或者大于1000

xuzhouhudajz 发表于 2016-2-28 07:23:09

XEricSin 发表于 2016-2-28 00:04
这个语句有语病
!!FU&y41000:E
&是而且的意思


你说的我也知道,我在其它地方验证&和|可同时使用,关键是当我的某个带兵位置没有生物的时候他就不循环了,终止了后面的程序运行,因此我个人认为是不应该在循环体内用这个命令!不知我的理解和验证是否准确,当然你说的也许是我还没体会到它的特殊含义和使用方法

XEricSin 发表于 2016-2-28 12:43:35

xuzhouhudajz 发表于 2016-2-28 07:23
你说的我也知道,我在其它地方验证&和|可同时使用,关键是当我的某个带兵位置没有生物的时候他就不循环了 ...

恭喜楼主自己找到问题。
用SN:G循环要慎用FU:E。
FU:E会退出当前函数,也就是结束整个!?下面的。
楼主改用if语句,就只跳过一部分语句,可以说是正解。

我记得在什么地方看到,ERM是不支持&和|混用的。具体会有什么原因什么错误,我记不清了。反正就是不混用最好。

xuzhouhudajz 发表于 2016-2-28 14:11:09

XEricSin 发表于 2016-2-28 12:43
恭喜楼主自己找到问题。
用SN:G循环要慎用FU:E。
FU:E会退出当前函数,也就是结束整个!?下面的。
...

多谢解答!辛苦了!
页: [1]
查看完整版本: 请教贤知大人和其他大神

捐赠