魔兽世界tbc版本宏命令语法是什么?在魔兽世界这款游戏中,我们是可以使用宏命令的,但是宏命令可不是那么好学的,我们需要先掌握好相关的语法才可以,下面就是小编为大家带来的宏命令语法大全了,我们一起来看看。
魔兽世界tbc宏命令教学大全
宏的参数
1.宏的选项
就是宏命令的一些特殊参数,通过这些参数可以实现条件判断,从而实现多种多样的功能。
例如
/cast [help] 恢复; [harm] 暗言术:痛这里的[help][harm]
就是选项,宏的功能很简单,当你的目标是可治疗的目标的时候,放恢复,否则,如果是可攻击的目标的时候放痛。
2.可使用参数的宏
以下宏命令都可以使用参数
startattack、stopattack、cast、castrandom、castsequence、stopcasting、cancelaura、cancelform、equip、equipslot、use、userandom、changeactionbar、swapactionbar、target、targetenemy、targetfriend、targetparty、targetraid、cleartarget、targetlasttarget、assist、focus、clearfocus、petattack、petfollow、petstay、petpassive、petdefensive、petagressive、petautocaston、petautocastoff、stopmacro、click、dismount
3.[target=unit]参数
[target=unit]选项是一个比较重要的特殊选项,他负责指定宏命令所作用的目标,还是看例子
/use [target=player] 原始月布绷带
宏的功能是给自我绷带,但是不丢当前目标, player 也是前面介绍的 UnitID 之一,表示玩家本人。也就是通过[target=unit]可以直接把宏的作用目标传递过去,而不需要通常的那种选目标,放技能的模式。
下面是一个稍微复杂点的例子
/cast [help] [target=targettarget, help] [target=player] 快速治疗
宏的功能是这样的,首先检测第一个选项[help], 这个选项没有指定target参数,按照默认就是你当前的目标,如果你当前的目标是可以治疗的,那么后面两个选项直接跳过,然后对这个目标施放快速治疗。
如果[help]这个条件不满足,那么就继续检测第二个选项[target=targettarget, help],这个选项里有两个条件第一个是target=targettarget,表示施法的的对象是“目标的目标, help同样表示该对象是否可治疗,如果两个条件都满足,那么就对目标的目标施放快速治疗。
如果[target=targettarget, help]的条件也不满足,就继续检查第三个选项[target=player],直接对玩家本人施放快速治疗。
[target=]还可以以小队/团队队友的名字作为参数,比如
[target=Kungen]
而且还可以在名字的后面加上-target来选中队友的目标,在竞技场里这个功能可能会比较有用,比如
[target=Cogwheel-target]
宏的语法
1.命令、条件和参数
以下面宏为例
/cast [target=targettarget] 斩杀
这里的 /cast 就是命令, [target=targettarget] 是“条件”, “斩杀就是参数”。
当然有些命令可以是没有参数的,比如 /startattack。类似的,条件也不是必须的,当没有指定[xxxx]之类的条件的时候,默认条件为真。
2.命令的语法
命令的语法如下
/命令 [条件1] [条件2] 参数; [条件] 参数 ...
语句从左到右进行解释,先获得命令,然后检测[条件1][条件2]等等,用[]分开的各个条件之间是”or”的关系,一个失败了就去检测下一个,只要有一个满足了,就把参数传递给命令,然后转而执行下面的语句,;后面的部分不再执行。
如果所有的条件全部不满足,则第一组参数做废,继续去解释;后面的语句,原理同上。
需要注意的是,千万不要用;来结束一行语句,;的作用是分隔各组的条件和参数,这不是C语言。
看下面这个例子
/petattack [target=focus, harm];
这个宏的原义是如果我的focus目标是可以攻击的,那么让宠物攻击它,否则不攻击,但实际使用起来却不是这样无论什么条件,只要你选了一个可以攻击的目标,宠物就会去攻击它,无视[target=focus]这个条件的限制。
为什么会这样?因为;被看成分隔各组参数的符号,结尾有一个;就表示;的后面还有一组参数。这个参数的条件是空,参数也是空,当[target=focus, harm]这个条件判断失败的时候,系统会去解释;后面的空字符,前面说过,如果没有指定[xxxxx]这种条件,默认为真, 系统会传递给 /petattack 一个空的参数,也就是直接攻击你当前的目标。
3.条件的语法
所谓“条件前面已经说了,就是[xxxxxx]之类的东西,这玩意也有自己的语法。简单的说就是用,分隔开的一个列表。
先看一个例子:
[help, nodead, target=focus]
这个条件成立的前提是“我focus的目标是可以被治疗或者buff并且没有死掉。
一个条件中的各个要素用,分开这些要素之间是and的关系,也就是说只有当他们全部满足的时候,条件才会成立。
可以在各个条件的前面加一个no前缀来表示相反的意思,比如这里的nodead,与之对应的是dead。help与之对应的就是nohelp。
有些条件要素还有自己的参数,参数的格式是
[条件<:参数<!--参数</参数<...-->>>>]
还是直接看例子:
/cast [stance:1/2] 盾击; 防御姿态
这个宏的意思是, 先检测条件[stance:1/2],如果处于战斗姿态或者防御姿态则[stance:1/2]这个条件成立,然后施放盾击,语句结束,;后面的防御姿态不执行了,系统会继续执行下面的语句。
反之,如果[stance:1/2]这个条件不成立,即当前处于狂暴姿态,则执行;后面的语句,切换到防御姿态。
4.条件列表
下面是完整的条件列表,所有的条件都是可以被no-前缀修饰,从而表示相反的条件。
help - 可以对目标施放有益法术
harm - 可以对目标施放伤害法术
exists - 目标存在
dead - 目标已死
stance:0/1/2/.../n - 处于某个姿态
stealth - 潜行中
modifier:shift/ctrl/alt - shift/ctrl/alt 被按下
button:1/.../5/- 用鼠标的某个按键点的宏
equipped:- 某种物品已经装备 (物品种类可以是身上某个装备格子, 物品的类型, 或者子类型)
channeling:- 某法术正在引导中
actionbar:1/.../6 - 指定的动作条页面已被选中
pet:- 指定宠物已经被召唤
combat - 处于战斗状态
mounted - 自己正在马上
swimming - 自己正在游泳中
flying - 自己正在飞行中
flyable - noCWOWer
indoors - 自己在室内
outdoors - 自己在户外
party - 目标是小队队友
raid - 目标是团队队友
group:party/raid - 自己正在一个小队/团队中
以下几个条件要详细说明一下
button:1/2/.../5/1,2,3,4,5
分别对应鼠标的左,右,中,功能键1,功能键2。如果这个宏是用键盘上的快捷键触发的,则键盘上的快捷键等于鼠标左键。
equipped:item type
参数可以是身上某个装备格子,物品的类型。
下面这个宏
#show [equipped:Shields] Shield Bash; Pummel
/cast [equipped:Shields,stance:1/2] Shield Bash; [equipped:Shields] Defensive Stance; [stance:3] Pummel; Berserker Stance
如果装备了盾牌,显示盾击的图标,否则显示拳击的图标。如果装备了盾牌并且处于战斗或者防御姿态,施放盾击打,否则如果装备了盾牌,切换到防御姿态,否则如果是在狂暴姿态,施放拳击,否则切换到狂暴姿态。
换双手压制的宏
/equip [noequipped:Two-Handed Axes] 平衡战斧
/cast [nostance:1] 战斗姿态; [equipped:Two-Handed Axes] 压制actionbar:1/.../6
可以通过动作条页面相关的命令来改变动作条页面,这个条件就是确保当前页面已经是参数所指定的页面。
所谓当前页面就是系统默认的主动作条,这个动作条可以映射到不同的页面。玩过动作条插件的都应该理解这个概念。
/swapactionbar 1 2
/cast [actionbar:1] 雄鹰守护;灵猴守护
交换页面1和2,确保当前页面是1的时候,施放雄鹰守护,否则施放灵猴守护。
pet:判断宠物的类型或者名字,宠物包括牧师MC的怪。可以通过这个设置一些条件,根据不同的宠物来使用不同的技能。可以通过宠物的名字设置条件,也可以通过宠物的种类设置条件(虚空行者,小鬼,熊,猫等等),不指定参数的话只要宠物存在就满足条件。
/cast [pet] Freeze; Frost Nova
法师用这个宏,如果水元素存在就放水元素那个nova,否则放自己的。
novamounted, swimming, flying, indoors & outdoors
这几个只能检测自己的状态,不能检测别人的。
5.[target=] vs. UnitID参数
如果你仔细的看到这里,并且都理解了前面的内容的话,应该就会有一个疑问,“有些命令的参数本身就是各种UnitID,如果我在这个命令里同时指定了[target=]这种条件,会是什么结果?
例如 /target 就是这样一个命令,他的参数本身就可以是UnitID,那么下面这个宏该如何运行?
/target [target=focus, dead] party1
直接解释这个宏就是当我的focus目标死了的时候,选择我的第一个队友,但是实际上这个宏是不能正常运行的。系统会忽略 party1 这个参数。
也就是说,条件里面的[target=]和命令参数里的UnitID是冲突的。但是有4个特殊的命令是例外,它们有一个Key Unit,允许你在使用[target=Key Unit]的同时,再传递一个Unit参数。如果你没有指定参数,则使用默认参数。
四个命令如下:
命令 | Key Unit | 默认参数
/target | target |
/focus | focus | target
/startattack | target | target
/petattack | pettarget | target
下面这个宏
/focus [target=focus, dead] [target=focus, noharm] party1
可以正常运行,[target=focus, dead],由于 focus 是 /focus 命令的Key Unit,因此可以在检测这个条件满足的同时,再传递给 /focus 一个参数 party1。解释起来就是如果我的focus目标死了或者我的focus目标不能被攻击,那么focus我的第一个小队队友。
如果这个宏变成
/focus [target=focus, dead] [target=focus, noharm]
把 party1这个参数去掉了,也就是没有指定参数,按照上面的表格,系统会把默认参数“target”传递过去,也就是 /focus自己当前的目标。
以上就是魔兽世界tbc宏命令大全了,诸位玩家们学会了吗?虽然宏命令的语法很难,但是大家还是学习一下吧,毕竟学会了好处多多哦。