标签:一个 mouseover 角色 命令 代码 别人 条件判断语句 mamicode 地方
昨天群里有个盗贼发了个宏
乍一看这个条件判断语句写的好像没有问题,语句的判断条件是:
1.当存在焦点,且按键模式为alt时,选取该焦点单位为目标释放致盲。
2.对鼠标指向的单位释放致盲。
3.否则释放致盲,目标应为默认的当前目标。
但当我上线去试的时候发现,玛德居然真的对当前按不出致盲,而前两种情况都是能执行的。也就是说前两个判断条件是有效的。
于是我便开始了我的排除法调试之路。
首先前两条能执行,说明语句能进入该判断条件,也就是前面的肯定没问题。
那么就从后面开始试,在这段语句之后加了一段测试代码,成了这样
发现新加的代码是能够执行的
也就是说这个宏并没有被卡住,是能够顺序执行下来的
然后我将/y 更换为 /cast 飞镖投掷
发现居然还是不能对当前目标释放飞镖,这就怪了??
为什么会变成这样呢……第一段代码能单独执行;第二段代码也能单独执行。这两件愉快的事情交织在了一起。而这两份喜悦,又会给我带来许许多多的喜悦。我本应该获得了这种如梦一般的幸福时光才对。可是,为什么,会变成现在这样呢。
两段正常的代码合一起就不正常了,于是我不信邪的把第二段代码又改了一下,改为释放脚踢
淦,居然踹出去了!!!
然后我又试了别的技能,居然都可以释放出来,唯独同样的飞镖投掷放不出
真是见鬼了啊啊啊啊啊啊为什么你可以和别人在一起,唯独我不行呢
冷静之后,我大概猜到,这大概是宏命令的优化,由于宏只能写255字,所以魔兽宏编辑器大概为了节省字数,自动优化把释放重复技能的第二段代码整合到第一段里面去了。
如果是这样,那一切就说得通了,问题又回到了原点,第一段代码根本没有执行到最后一段!
宏语法中,[]相当于if,;相当于else,那么这第一段代码既然没有执行到最后的else,那肯定是在前两条if语句就被完全拦截了。
于是我准备投入实战,在要塞旁边的狼群,就是你们了。下马,选头狼,狂按宏,神奇的事情发生了,角色语音一直提示我“没有目标”,可我明明选中了头狼的,
这种语音不是只有没有选中目标时释放指向型技能才有的吗?
这种语音不是只有没有选中目标时释放指向型技能才有的吗?
这种语音不是只有没有选中目标时释放指向型技能才有的吗?
真実はいつもひとつ!
我突然想到了,第二个条件判断语句里,mouseover不会连空地也能指定吧!
我再改了一下宏
果然能用了!!!真是坑爹啊,魔兽世界这个判断语句,居然连空目标都能指定,换句话说,由于我的鼠标一直存在,那么我鼠标当前所在的地方,不管是人物还是空地,都会被视为当前目标,那我对着空地放致盲当然就不能用了!
这一串下来,认识到了三个问题。
1.魔兽世界宏自动优化语句有点考虑不周。如果宏编辑器不自动简化语句,那么释放同一个技能分开写也是能用的,现在的自动整合语句反而堵住了这条路。
2.空对象要不得啊!!!
3.条件判断语句的判断条件,写的时候一定要慎重
标签:一个 mouseover 角色 命令 代码 别人 条件判断语句 mamicode 地方
原文地址:https://www.cnblogs.com/wanghuanyeah/p/14707305.html