只有那些“安全化”命令可以接受命令条件语。其实正是经过安全化的命令才需要条件语。常规命令,比如说聊天、表情之类的,可以通过脚本来实现命令条件语的功能。而且暴雪不想限制大家在聊天时使用分号(;)。如果/s命令可以使用命令条件语的话,那么下面这个命令就会只说hello:
/say Hello; I’m a n00b
以下是当前客户端中安全化命令的列表:
#show1
#showtooltip1
/assist
/cancelaura
/cancelform
/cast
/castrandom
/castswquence
/changeactionbar
/clearfocus
/cleartarget
/click
/dismount
/equip2
/equipslot2
/focus
/petagressive
/petattack
/petautocastoff
/petautocaston
/petdefensive
/petfollow
/petpassive
/petstay
/startattack
/stopattack
/stopcasting
/stopmacro
/swapactionbar
/target
/targetenemy
/targetfriend
/targetlasttarget
/targetparty
/targetraid
/use
/userandom
注1:#show和#showtooltip不是真正意义上的安全化命令,但是它和/use以及/cast的内部机制相仿。
注2:/equip和/equipslot逻辑上也不算是安全化命令,因为它们的功能是可以通过插件和脚本实现的。
当然,如果你希望在常规命令中使用命令条件语,就需要安装专门的插件。MacroTalk,这是我的一个作品,通过在非安全化命令前添加/opt,然后在/opt中处理各类条件来实现对不同命令的调用(当然只能是非安全化命令)。最新版的SuperMacro中应该也有类似的功能。