Login

如何创建宏


第一部分:宏基础

什么是宏?

简单的说,宏就是一个斜杠命令的集合体……那么有哪些可用的命令呢?

/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]相同。


WoW宏类 HOWTOs类

如何创建宏 (last edited 2008-06-20 07:40:00 by 剜刀)