xuzhouhudajz 发表于 2015-11-23 19:23:53

请教贤知大人:我编的反击脚本只有第一回合有效

本帖最后由 xuzhouhudajz 于 2015-11-23 22:30 编辑

请教贤知大人,下面是我编的脚本只有第一回合有效。请问是不是与V997有关,还是别的原因
!?BA0&1000;
!!VRy8:S1;                      设置防守方为y8=1
!!VRy9:Sy8*-1 +1;          设置防守方为y9=0
!!BA:Hy9/?v9555;             保存进攻方英雄到v9555
!!BA:Hy8/?v9560;             防守方hero到v9560
!!OW:C?i Ii/?j;                获取当前玩家(这句多余)
!!if&y9=0/v9555>=0:;    攻击方成立并有英雄参与
!!HEv9555:O?y2;            获取攻击方英雄所属玩家
!!FU&y2<0:E;                排除中立方
!!OW:Iy2/?y4;               获取玩家状态
!!HEv9555&y4=0:N?v85; 获取人类玩家英雄编号
!!en:;
!!if&y8=1/v9560>=0:;    防守方成立并有英雄参与
!!HEv9560:O?y5;             获取防守方英雄所属玩家
!!FU&y5<0:E;               排除中立方
!!OW:Iy5/?y7;                获取玩家状态(人类玩家还是电脑玩家)
!!HEv9560&y7=0:N?v85; 获取人类玩家英雄编号
!!en:;

!?BR&1000;
!!DO9999999/0/20/1&v9555=v85:P;遍历攻击方堆栈
!!DO9999999/21/41/1&v9560=v85:P;遍历防守方堆栈
!?FU9999999;
!!BMx16:T?y1 N?y3;                        获取生物类型和数量
!!VRy2:S5;                                    设置反击次数
!!FU|y1<0/y3<1/y1=145:E;            排除投石车和空堆栈
!!FU&y1>146/y1<150:E;                  排除箭塔和医疗帐篷
!!BMx16:Rdy2;                              设置反击次数

贤知有您 发表于 2015-11-23 23:07:32

在BR阶段设置一些命令时,有时候会有莫名其妙的事情.
沧海一粟大师曾经所过,比如设置魔法状态,只有第一个堆栈有效(0号堆栈).

你这里设置的加反击次数,也许也是这样,只有0号堆栈有效吧.
具体我也解释不清楚.我有空测试下为啥出现这种情况.

另外,楼主在应用BR每回合触发时,要考虑一个 布阵的问题.
当有布阵发生时,BR的第0回合会被触发2次的.你在BR后面加个 IF:M^第%V997回合^; 看看就知道了.
需要避免触发2次的问题.

克招 发表于 2015-11-24 10:09:13

不需要用BR来设置啊,你直接用EA来设置反击次数就好了啊

xuzhouhudajz 发表于 2015-11-24 18:27:55

克招 发表于 2015-11-24 10:09
不需要用BR来设置啊,你直接用EA来设置反击次数就好了啊

用EA会出现所有该兵种都会有这样的反击次数,我只需要该英雄有这样的能力!

xuzhouhudajz 发表于 2015-11-24 18:42:08

贤知有您 发表于 2015-11-23 23:07
在BR阶段设置一些命令时,有时候会有莫名其妙的事情.
沧海一粟大师曾经所过,比如设置魔法状态,只有第一个堆 ...

在BR后加入!!IF:M^第%V997回合^;每回合都有记录,但是0回合才有效,从第1回合开始就只反击一次了!

克招 发表于 2015-11-24 19:18:43

xuzhouhudajz 发表于 2015-11-24 18:27
用EA会出现所有该兵种都会有这样的反击次数,我只需要该英雄有这样的能力!

你用战场EA啊,作用于堆栈的。另外,另外,如果在BR下设置不行,就在BG下呗。

xuzhouhudajz 发表于 2015-11-25 17:39:57

克招 发表于 2015-11-24 19:18
你用战场EA啊,作用于堆栈的。另外,另外,如果在BR下设置不行,就在BG下呗。

在BG模式下试了不行!在BR模式下只有0堆栈有效果

克招 发表于 2015-11-25 17:50:52

xuzhouhudajz 发表于 2015-11-25 17:39
在BG模式下试了不行!在BR模式下只有0堆栈有效果

那我想这应该不是命令的问题,是你写脚本的问题,好好检查一下什么地方出问题了。

贤知有您 发表于 2015-11-25 23:08:31

我觉得考虑EA经验特技来给反击次数也不是太好.
万一该堆栈的经验特技满了,是没法腾出位置再给个增加反击次数的经验特技的.

可以给个迂回的写法.
首先用一个变量记录每个回合中BG0产生的次数.(BR中需要重设为0)
然后在这个变量为1的时候(也就是该回合第一个行动堆栈行动前),处理增加反击次数.这时就不会有失效的问题了.

克招 发表于 2015-11-25 23:17:35

贤知有您 发表于 2015-11-25 23:08
我觉得考虑EA经验特技来给反击次数也不是太好.
万一该堆栈的经验特技满了,是没法腾出位置再给个增加反击次 ...

但是他说在bg中也无效,所以我觉得是他写的问题

克招 发表于 2015-11-25 23:22:34

贤知有您 发表于 2015-11-25 23:08
我觉得考虑EA经验特技来给反击次数也不是太好.
万一该堆栈的经验特技满了,是没法腾出位置再给个增加反击次 ...

我不太记得是不是反击次数只能设置为0或1,如果是这样的话,那么就只能在bg下自己设置变量来记录了

xuzhouhudajz 发表于 2015-11-26 18:51:42

可能我没表示清楚,我的意思是用BM:R前用BG触发器不行,也没效果,我想在BG模式下增加一个回合变量,自己尝试了一下由于能力有限,目前还没试成功!故提出来请大神指点!

xuzhouhudajz 发表于 2015-11-26 19:20:43

贤知有您 发表于 2015-11-25 23:08
我觉得考虑EA经验特技来给反击次数也不是太好.
万一该堆栈的经验特技满了,是没法腾出位置再给个增加反击次 ...

这里还有另外一个问题,就是我用吸血鬼王放在不同的位置,好像只有第一个位置游戏(进攻方)应该是0堆栈有效!但有的情况下又变成(这种情况好像刚开始只有指挥官,没有其它兵种)指挥官有效,我觉得BM:R应该是随机1个堆栈的,但通常情况下是0堆栈,每回合都有效!

xuzhouhudajz 发表于 2015-11-26 19:45:17

我又做了实验还是我前面1楼的程序,发现攻击方英雄(本方)如果第一个(攻击方战场上方第一个)位置无并种就是追谁者每回合可以多次反击,当追随者死掉后紧挨着的兵(刚开始进入战场时候位置)就有多次反击,每次只有一对兵有效!不知道是不是这样的!需多次验证!

贤知有您 发表于 2015-11-26 21:25:28

关于BR的一些特殊问题.也一直困扰着我.
目前我也没时间去考究.楼主可以深入研究一下.
总之就是有时候,只有第一堆栈0#堆栈有效.很奇怪的.

XEricSin 发表于 2015-11-29 03:13:46

我做了以下测试。

!?BR;
!!DO9999999/0/20/1:P;遍历攻击方堆栈
!?FU9999999;
!!BMx16:T?y1 N?y3;                        获取生物类型和数量
!!FU|y1<0/y3<1/y1=145:E;            排除投石车和空堆栈
!!FU&y1>146/y1<150:E;                  排除箭塔和医疗帐篷
!!BMx16:R1000;                              1000反击次数
!!BMx16:R?y100;查看反击数
!!IF:M^starting round y100= %Y100^;

!?MF1;收到攻击时
!!MF:N?y1;
**************!BMy1:R10;
!!BMy1:R?y100;
!!IF:M^before retal y100= %Y100^;
发现如果通过BM:R的方式在回合开始阶段设置反击次数,紧接着查看怪物反击次数有没有设好,是没问题的。设置1000,查看也是1000.
问题是,当怪物收到攻击时,他的剩余反击次数直接变成1. 之前BM:R设置好的被无视了!!
所以,BM:R在回合开始是设置是无实际作用的(除第一回合)。也不知道为什么会这样。


我又加入打星号这行,收到攻击时立即设置一次BM:R,本回合反击剩余数正常。
所以解决方案为使用!?MF1触发,受到攻击时设置反击本回合反击次数。如果这么弄,必须限制什么样的怪物可触发,不然所有怪物都无线反击了。

xuzhouhudajz 发表于 2015-11-29 18:42:06

XEricSin 发表于 2015-11-29 03:13
我做了以下测试。

!?BR;


多谢!按照你的试一下!

xuzhouhudajz 发表于 2015-11-29 20:51:53

经过验证本方(人类玩家)英雄都所带兵种都增加5次反击次数。再次多谢贤知大人、克招及XEricSin !
ZVSE
!?BA0&1000;
!!VRy8:S1;
!!VRy9:Sy8*-1 +1;
!!BA:Hy9/?v9555;             保存进攻方英雄到v9555
!!BA:Hy8/?v9560;             防守方hero到v9560
!!OW:C?i Ii/?j;
!!if&y9=0/v9555>=0:;
!!HEv9555:O?y2;
!!FU&y2<0:E;
!!OW:Iy2/?y4;
!!HEv9555&y4=0:N?v85;
!!en:;
!!if&y8=1/v9560>=0:;
!!HEv9560:O?y5;
!!FU&y5<0:E;
!!OW:Iy5/?y7;
!!HEv9560&y7=0:N?v85;
!!en:;
!?BF&1000;                  战场生成后
!?BR&1000;
!!DO9999999/0/20/1&v9555=v85:P;
!!DO9999999/21/41/1&v9560=v85:P;
!?FU9999999;
!?MF1&1000;伤害前触发
!!MF:N?y4;获取被伤害堆栈
!!BMy4:T?y1 N?y3 I?y5;获取兵种类型、数量、所属势力
!!FU|y1<0/y3<1/y1=145:E;排除空堆栈、投石车
!!FU&y1>146/y1<150:E;排除帐篷、箭塔
!!VRy2:S5;设置反击次数
!!BHy5:N?y6;获取被伤害兵种所属英雄
!!BMy4&y6=v85/v997>-1:Rdy2;增加反击次数

贤知有您 发表于 2015-11-29 21:34:55

在1?MF1触发器下增加反击次数,貌似和楼主原本的思路不太符合.

或者说,现在变成了, 英雄所带生物受到伤害时增加反击次数.
这个生物被攻击次数越多它获得的反击次数就越多了.
也许楼主更喜欢这个吧.哈哈.
反正楼主喜欢就行.

XEricSin 发表于 2015-11-29 21:36:05

本帖最后由 XEricSin 于 2015-11-29 21:40 编辑

xuzhouhudajz 发表于 2015-11-29 20:51
经过验证本方(人类玩家)英雄都所带兵种都增加5次反击次数。再次多谢贤知大人、克招及XEricSin !
ZVSE
...
我啰嗦一下这样其实是设置的无限反击,如果只要一定次数的反击,会很麻烦。

另外,很多参数是可以直接放数值的,不用放变量名字
比如VRy2:S5; BM:Ry2 可以完全不用y2的,直接BM:R5或者BM:Rd5,就好。
页: [1] 2
查看完整版本: 请教贤知大人:我编的反击脚本只有第一回合有效

捐赠