如何创建宏
第一部分:宏基础
什么是宏?
简单的说,宏就是一个斜杠命令的集合体……那么有哪些可用的命令呢?
/say (/s) /whisper (/w, /talk, /t) /emote (/e, /em, /me) /dance
当然还有其他很多很多。 通过使用宏,我们可以让许多命令同时生效。例如
/y Everybody, dance now! /dance
使用这个宏,你将大喊一句“Everybody, dance now!”,与此同时你会开始跳舞。值得注意的是,宏执行的时候是一行一行来的,不过上面这个例子中大喊和跳舞会被同时执行,因为他们并不存在冲突。若这样的宏
/stopcasting /cast 寒冰箭
把前后2句交换位置则最终什么也得不到,因为游戏先执行了施放寒冰箭,随后又立即执行后面的打断施法……所以,当你写宏的时候请仔细考虑一下各个命令的具体位置。
注意:并不是所有的命令都可以用宏来实现同时生效。和战斗相关的很多命令都会到限制。
怎样新建宏
首先,我们需要打开创建宏窗口。按下Esc键并选择其中的宏命令设置或者在聊天栏输入/macro (/m)。
嗯。现在这个叫做创建宏的窗口就出现了。我们来看看其结构。在标题的下方,有2个标签,分别叫做通用宏和某某某的专用宏,显然这个某某某是指的你的角色名称。
2个标签下面均有18个格子。这代表着18个宏空位,每个标签均可以建立18个宏。不同的是,通用宏下面的宏是根据帐号保存的,同一帐号的角色都可以用保存于该标签下的宏,而某某某的专用宏顾名思义是仅仅能用于该角色的。
在18个按钮之下,有一段空白区域(若你没有选择某个宏的话),这里是用来给宏改名或者改图标的。再下面就是一个输入框了,不过目前这里应该不能输入内容,因为我们还没有建立宏。
现在,点击最最下面那个新建。右边多出了一个小窗口,嗯,输入你要建立的宏的名字,并为其选择一个图标然后确定。嗯,现在视线回到创建宏这个窗口。那18个空格有一个被你刚才选择的图标占据了,之前什么都没有的空白区域显示了一个改名/改图标的按钮,下方的输入框可以输入内容了。
将你要写的内容填写进去,然后将上面格子中的图标拖动到动作条上(就像你把技能从技能书中拖放到动作条上那样),点击它就可以使用这个宏了。
注意: 每个宏最多只能有255个字符,每个中文均算作2个字符。当你关闭“创建宏”窗口或者尝试使用一个正在编辑的宏时,该宏均会自动保存。
如何用宏施放技能
估计这部分才是你真正开始关心的内容了。前面已经提到过了,宏就是一个命令集合,要用宏施放技能,当然也就涉及到相关的命令。目前版本中有一系列的命令均可以用于施放技能,不过其中最最常用的大概还是 /cast (/施放)这个命令了。
/cast Spellname(Rank n)
Spellname即为技能名称,注意这个技能名称一定要正确,若你不太清楚或者懒得打字的话,可以点开你的技能书,找到需要的技能,然后鼠标点击创建宏这个窗口的输入框中需要输入技能名的位置,再按住Shift键点击技能书上的技能图标,这样游戏会自动填写的。后面的Rank n用来指定技能的等级,例如写为Rank 1即是等级一的技能。特别注意的是,那个括号一定要用英文字符,切忌不可用中文括号。
关于法术等级
/cast命令的法术等级是可以留空的,即包括括号在内,全部不写,这时,会自动使用该法术的最高等级。
如何使用某个物品
/use 物品名称
这是最最简单的用法了。实在是不知道除了这么说还能说什么。例如
/use 炉石
/use <inventory slot>
这个通常用来使用那些穿在身上的装备。毕竟宏是有字符数限制的,装备名称通常都很长,尤其是中文还要算作2个字符。这种用法可以有效节约字数。 这种用法你需要了解每个部位对应的编号。详情见下面,请注意这个表格,它在换装宏那部分还会用到。
0 |
弹药 |
1 |
头部 |
2 |
颈部 |
3 |
肩部 |
4 |
衬衣 |
5 |
胸 |
6 |
腰带 |
7 |
腿部 |
8 |
脚 |
9 |
手腕 |
10 |
手套 |
11 |
手指1(即最上面的那个戒指位) |
12 |
手指2 |
13 |
饰品1(最上面的那个饰品位) |
14 |
饰品2 |
15 |
背 |
16 |
主手 |
17 |
副手 |
18 |
远程武器 |
19 |
圣契 |
例如
/use 13
这样就会使用饰品1,即使用最上面那个饰品位置的饰品。
/use <bag> <slot>
使用背包中特定位置的物品。个人认为是目前最最不实用的命令之一。 背包的编号,从右边向左数过来,是4,3,2,1,0 背包内的格子编号,从左向右数,第一行为1,2,3,4,第二行为5,6,7,8,后面以此类推。 例如
/use 4 1
就是使用最右边那个包包的第一个格子上的物品。
同时多个动作
目前,不引起公共冷却的技能(物品)可以做到一个宏中去,一次点击同时使用。例如
/cast 气定神闲 /cast 奥术强化 /cast 炎爆术
嗯,这样宏通常都是奥火法师的最爱了……由于气定神闲和奥术强化均不引起公共冷却,它们可以放到一起被同时施放,随后接上一个有公共冷却的技能。当然,你还可以在炎爆术之前加入一个 /use 13 来使用一个饰品,只要没有公共冷却。
目标
嗯,选择目标也是一件极其重要的事情。很多时候我们需要对特定目标施法什么的。(老实说,我自己用得最多的时候是追杀部落的时候……囧)
/target
/target 名称
该命令可以简写成 /tar 。 注意:该命令所指定的目标名称不存在的话,会选到距离你最近的且名字中含有指定名称头2个字符(中文为一个字)的安全目标(玩家或者NPC,反正是不可攻击的)。
/target UnitID
UnitID是什么东西??看表吧。
focus |
焦点 |
player |
玩家,你自己 |
pet |
你的宠物 |
partyN |
小队成员,N是其编号,分别为1,2,3,4 |
partypetN |
小队成员的宠物,N是小队成员的编号 |
raidN |
团队成员,N是其编号,取值1-40 |
raidpetN |
团队成员的宠物,N是团队成员的编号 |
target |
当前目标 |
playertarget |
当前目标 |
mouseover |
鼠标指向 |
|
|||
例如
/tar pet
这样就选中了自己的宠物,如果其存在的话。 另外,关于 /target UnitID 有个比较特别的用法
/tar targettarget
嗯,这样选到的是目标的目标,其实targettarget的后面还可以再加target的,那样就是目标的目标的目标,嗯,加多少个随便你了,只要你还有足够的字符数来写。
/assist
传说中的协助,建议写成 /协助 以减少字符占用。
/cleartarget
清除目标。
/targetexact
/targetexact 名称
选择指定名称的单位为目标,若名称拼写错误或者该单位距离你很远,则不会改变你当前的目标。
/targetlasttarget, /targetlastfriend, /targetlastenemy
如同其名字那样,分别是选择最后一个目标,选择最后一个友方目标,选择最后一个敌对目标
/targetenemy, /targetfriend
如同其名称,分别是选择最近的敌对单位(同Tab),选择最近的友方单位(同Ctrl-Tab)
/targetenemyplayer, /targetfriendplayer
2.4.3版本中新加入的命令,分别是选择最近的敌对玩家,选择最近的友方玩家
宠物控制
首先,你需要了解得是 /cast 命令是可以用于施放宠物技能得。另外,还有一些其他命令用于控制宠物。
/petattack
/petattack target
该命令用于控制宠物攻击,可以用UnitIDs,也可以指定名称,若留空就是当前目标。
/petfollow
停止宠物攻击,并召回身边。
/petpassive, /petdefensive, /petaggressive
被动型,防御型,攻击型
/petautocaston, /petautocastoff
/petautocaston SpellName /petautocastoff SpellName
用于控制宠物的一些可自动施法得技能是否使用
反馈和 ? 号图标
默认情况下,游戏会反馈宏中第一个技能的信息,若你为宏选择的图标是 ? 还可以反馈技能的图标(即?号图标会自动被相应技能的图标所替换)。例如
/cast 气定神闲 /cast 炎爆术
默认情况下,游戏会为这个宏返回气定神闲的冷却信息等,若你设置的是?号图标,那么还会被自动替换为气定神闲的图标。
但是,有时候我们需要的不是气定神闲的冷却信息,或者,我希望图标被自动替换为炎爆术的,那么应该怎么做呢?
在宏的开头插入
#show 技能名称(物品名称、物品ID等都是可行的)
这样?号图标会被自动替换为你制定的技能或者物品,并显示其相应的冷却信息。
注意:#show必须是小写。
装备更换
显然,宏是可以用于一键换装的。首先,我们需要回顾一下前面/use <inventory slot>那里提到的表格。
/equip 装备名称
嗯,这个命令将把制定的装备穿上去,当然有些部位在战斗中是不能穿上的。
/unequip 装备名称
取下制定名称的装备,同样战斗中有些东西是取不下来的。
/equipslot <inventory slot> 装备名称 /unequipslot <inventory slot> 装备名称
这2个命令主要用在戒指和饰品上,因为需要为其指定位置,否则会装备到最上面的那个位置。
法术定序
嗯,很多时候,你会发现你是按照一个固定顺序来使用技能的。现在你可以通过宏将这顺序固定下来,然后猛点宏就好了。这类应用最最著名大约是猎人的抽筋宏了。
/castsequence reset=n/target/combat/shift/alt/ctrl 技能1,技能2,技能3……(也可以是物品1,物品2)
reset=n/target/combat/shift/alt/ctrl 这个定义的是序列重新开始的条件,若不定义则仅在完成一个序列之后才能重新开始。n是定义多少秒,上一次使用宏后的n秒内若没有继续使用该宏则重置序列(每次使用n都会重新计时);target是指目标切换就重新开始序列;cmbat是指进入战斗的时候重置序列;后面3个均是指按下相应按键后重置序列。其中的/表示“或者”,即可以有多个重置序列的条件,满足一个就重置。 注意:技能之间的逗号必须为英文逗号。
其他
随机施法
/castrandom 技能1,技能2,技能3
随机使用后面列出的技能中的一个,常常用在法师的变形宏中。
/castrandom 变形术,变形术(等级 1(猪)),变形术(等级 1(龟))
注意:技能之间的逗号必须为英文逗号。
攻击
/startattack /stopattack
前者是开始攻击,后者是停止攻击。/startattack命令同/tar命令那样后面是可以定义目标的。
动作条控制
相信你已经注意到了,主动作条是可以翻页的……
/changeactionbar n
n为你需要的页数。
/swapactionbar n m
n和m均是页数。其作用是,若在n这个页上则切换到m页,若在m页则切换到n页,若都不是则换到n页。
取消Buff
/cancelaura Buff名称
嗯,最常用这个的应该是防骑。
中断施法
/stopcasting
打断当前正在进行的动作
中断宏
/stopmacro
用于中断宏,在这个命令之后的宏内容均不会被执行,当然这个命令一般都会配合宏选项使用,否则它还有存在的意义么?
上下坐骑
/dismount
这个是下马,与之相对应的是上马
/mount 坐骑名称
焦点
/focus target
设置一个焦点备用,以便在不改变目标的情况下对焦点进行施法。其实际应用参见后面。 target留空为当前目标,也可以填写名称,UnitID也可以用。
脚本
这个是给那些有编程基础的家伙们用的了,使用这部分你需要了解WoWAPI
/cast 变形术
/run for i=1,GetNumRaidMembers()-1 do local u,t="raid"..i,"target"if UnitIsUnit(u..t,t)then SendChatMessage("正在尝试对你当前目标进行变形,切勿攻击!!","WHISPER",nil,UnitName(u))end end上面就是一个脚本的应用例子,这个宏在你对目标变形的同时,会对目标是你变羊对象的团队成员发送密语,提醒他们不可攻击。
第二部分:宏选项
什么是宏选项
宏选项是用于控制动作的一些条件,即需要满足这个条件,相应的命令才能执行。 == 哪些命令接受宏选项 === 只有“安全”命令才接受,而非安全命令,诸如 /s /e /y等是不能接受option的。
/assist(/a) |
/cancelaura |
/cancelform |
/cast |
/castrandom |
/castsequence |
/changeactionbar |
/clearfocus |
/cleartarget |
/dismount |
/focus |
/petagressive |
/petattack |
/petautocastoff |
/petautocaston |
/petdefensive |
/petfollow |
/petpassive |
/petstay |
/startattack |
/stopattack |
/stopcasting |
/stopmacro |
/swapactionbar |
/target |
/targetenemy |
/targetfriend |
/targetlasttarget |
/targetparty |
/targetraid |
/use |
/userandom |
|
||
应用举例:
/cast [harm] 变形术
在上面这个例子中/cast接受了一个harm作为其执行条件,当目标不满足敌对条件时,/cast命令直接被不会被执行。
[target=unit]
用于定义目标,即命令的对象是由[target=unit]所定义的目标。举例说明:
/cast [target=player] 圣光术
其效果就是无论你当前目标是什么,对会对你自己使用最高等级的圣光术,并且不会改变你的目标。
/cast [target=focus, harm] 变形术
首先,定义/cast命令的目标是焦点,然后对焦点判断是否为敌对,返回true则执行/cast命令,若返回False则放弃。整个过程不会改变当前目标。
句法说明
/命令 [条件1, 条件2] [条件3, 条件4] 参数
宏的执行,是从上向下,从做左向右开始的。 一个命令可以有多个[条件],每个[ ]之间的关系是 或者 ,即满足其中一个 [ ] 中的条件即可。由于宏执行顺序的关系,前面的 [ ] 比后面的 [ ] 的具有更高的优先权,也就是说只要前面的[]中的条件被满足,这个[ ]之后的[ ]均不会生效。 [ ]中的也可以有多个条件,它们之间的关系可以是“and”(用, 分割)也能是"or"(用/分割) 举例说明:
/cast [help] [target=targettarget, help] [target=player] 圣光术
首先判断的是第一个[help],即当前目标是否为友方,若是则对其使用圣光术,若不是则进行下一个[target=targettarget, help]的判断. [target=targettarget, help]定义对象为目标的目标,判断其是否为友方,若是则对其使用圣光术,不是则看下一个[ ] [target=player]定义cast的目标为玩家……这个绝对不会不存在吧,最多死亡而已。好吧,前面那些[]都不满足就给自己加血吧。 对上面这个宏做一点改进:
/cast [help, nodead] [target=targettarget, help, nodead] [target=player, nodead] 圣光术
所有[ ]中都加入是否死亡的判断,若死亡则这个[ ]得到false,进行下一个[ ]的检测。这样,就不会出现你尝试对死人加血的情况了。
目前可用的[条件]
help 可治疗单位
harm 可攻击单位
dead 死亡
exists 存在
stealth 潜行
modifier:shift/ctrl/alt 或者 mod:shift/ctrl/alt 按住shift/ctrl/alt
button:1/.../5/ 宏被鼠标点击触发,1是左键,2是右键,3是中建 ,4和5懒得说了,反正一般用不上。
equipped:<item type> 当某个东西正装备着时…… <item type>可以是<inventory slot>也可以是物品名称
channeling:<spell name> 正在使用引导技能,后面可以定义具体的技能名称
actionbar:1/.../6 动作条1-6页被选择时
pet:<pet name or type> 宠物出现时,后面可以指定宠物的名字或者类型(小鬼,魅魔等)
combat 进入战斗
mounted 骑乘状态
swimming 游泳状态
flying 飞行状态
flyable 可飞行,用于检测玩家所在位置能否飞行
indoors 室内,用于检测玩家是否在室内
outdoors 室外,用于检测晚间是否在室外
party 目标在你的小队中
raid 目标在你的团队中
group:party 你在小队中
group:raid 你在团队中
上述每个条件,你都可以在其前面加上一个 no 来到达与其原来相反的效果。
help 和 harm
[help]当目标可以接受你的治疗法术时返回真;[harm]当你可以对目标造成伤害时返回真。
exists
[exists]一般和[target=unit]一起使用。例如[target=focus, exists],若你设置焦点,则返回true,若没有就返回false;[target=target, exists]若你有目标则返回true,没有则返回false。
当使用[help] [harm] [dead] [party] [raid]等条件时,[exists]是默认包含在内的且一定返回,可以不再书写。(毕竟首先要存在,才能检测是敌是友,是死是活)
dead
若指定检测的目标已经死亡。则[dead]返回true。
stance:0/1/2/.../n
姿态……只有少数职业涉及这个问题。不同职业的不同姿态有它们相应的编号。详情见表:
姿态编号 |
战士 |
德鲁伊 |
牧师 |
潜行者 |
萨满祭司 |
1 |
战斗姿态 |
熊形态 |
暗影形态 |
潜行状态 |
幽灵狼 |
2 |
防御姿态 |
水栖形态 |
|
|
|
3 |
狂暴姿态 |
猎豹形态 |
|
|
|
4 |
|
旅行形态 |
|
|
|
5 |
|
枭兽形态,生命之树 |
|
|
|
6 |
|
飞行形态 |
|
|
|
除开上面这个表所对应的数字,还有一个0是表示不在任何形态中的,其效果和[nostance]相同。


