有些命令是可以没有参数的,这里就存在着一个陷阱。比如:
/petattack [target=focus, harm];
很多初学者一看,认为这个宏的含义应该就是判断焦点是否为敌对,如果是,就把宠物送上去咬。而实际上呢?让我们分析一下:
/petattack [target=focus, harm] ;
\________/ \______________/ V V V
| | | | |
命令 条件语1 | | 参数2 (为空)
| |
| 条件语2(为空)
|
参数1 (为空)
现在看出来了吧?由于那个分号的存在,这个语句实际上包含两个子句,而一个条件语为空的子句是被当作条件成立处理的,因此即使前面的条件语1不成立,也会执行一个/petattack。
有时我们需要在特定条件下对特定目标施放技能,并在条件不成立的情况下按常规施放。这中效果可以通过使用一组空条件来获得。下面例子中的宏在执行时会对你鼠标指向的友方单位施放圣光闪现。如果鼠标没有指向任何单位或者指向的目标不是友善的,那么就会按常规对当前目标施放,或者根据设置(如自动自我施法、自我施法功能键)对自己施放。
/cast [target=mouseover, help] [ ] 圣光闪现