魔兽世界怎么设置宏?新手求教越详细越好

本人是LM野性德。

先说明一下,下面的绝对不是简单从网上复制的,我自己电脑里存了一份,对新手了解和学习宏有很大帮助。这里面没有具体的野D宏,反正看完下面的估计你也会自己做了,真要的话再找我好了。还有,1楼的不用看了,他那是1.12的,现在用不了了。

在WoW 2.0中,宏和插件将会有翻天覆地的改变。最近,Slouken(Blizzard UI开发者)宣布了一个令人激动的宏的新特性,一系列条件选项将可以被应用于以下斜杠命令:/cast,/use,/target,/focus,/assist,/stopmacro,/cancelaura,/userandom,/castrandom,以及/castsequence。这个帖子的目的就在于讲解如何应用它们。

注:虽然多数例子都使用了"/cast",但事实上这些条件选项对前面提到的所有斜杠命令都有效。

在2.0中,目前所用的大多数宏都将被废弃,因为在战斗中,任何用到CastSpellByName()或者TargetUnit()的宏都将不再有作用。更进一步的,多数“傻瓜逻辑”的宏也不会再有效。但是,你现在可以通过新的宏条件选项来实现许多流行宏的功能。

现在,使用“/cast”(“/施放”)非常简明,命令格式就是“/cast <法术名称>”(施放最高等级的法术)或者“/cast <法术名陈>(Rank <#>)”。比如说:

/施放 强效治疗术
/施放 奥术智慧(等级 3)

在新的系统中,你依然可以使用原来的这些格式,不过你现在可以加入条件选项来使得“/cast”更加灵活。“/cast”的新格式是:“/cast [<第一组条件选项>] <第一个法术名称>; [<第二组条件选项>] <第二个法术名称>; [<第三组条件选项>] <第三个法术名称>;...”。

现在让宏运作起来的方式就像这样:第一组条件选项被检测,如果它们成立,则第一个法术被施放,如果它们不成立,则第二组条件选项被检测,如果这个成立了,下一个法术被施放,如此下去。但是,你必须牢记,只有一个法术会被施放。当一组条件选项被检测到成立时,相应的法术就会被施放,宏也就此结束。

当前可用的条件选项有:

help - 检测目标是否为友善
harm - 检测目标是否为敌对
combat - 检测你是否在战斗中
stance或stance:# - 检测你是否在姿态中,或是否在某个特定的姿态中(详见下)
stealth - 检测你是否潜行
modifier或modifier:shift|ctrl|alt - 检测命令被执行时是否某个特定的键被按下
equipped:<item> - 检测某个物品是否被装备。<item>可以是任何有效的装备槽,物品分类,或者物品子类
target = <unit> - 特殊条件选项,它把当前目标改变为任何有效的单位(详见下)
actionbar:<number> - 检测当前动作条是否为列出的那个

新的条件选项:

pet:<pet type 或 pet name> - 检测宠物是否存在。可以接受宠物类型(枭,熊,小鬼)或者名字(Fluffy,我家坏坏)作为条件。不带条件则检测是否有任何宠物存在。
mounted,swimming,flying - 检测是否在坐骑上,游泳,或者飞行中
indoors,outdoors - 检测是在室内还是室外
button:<#> - 检测某个特定的按钮被用来触发法术,默认为1(详见下)
exists 和 dead - 检测是否目标已经死亡,或是否真的存在

新的宏命令
---------------------------
/castsequence - 按顺序施放一组事先设定好的法术(详见下)
# show <法术> - 显示所列出法术的宏返回值

对于条件选项的一些额外技巧:
你可以在任何条件选项前加上“no”来得到反效果,比如,“nocombat”则在脱离战斗的情况下成立。
用逗号“,”来分隔条件选项作用和“and”一样,当条件选项同时成立时执行。
用斜杠“/”来分隔条件选项作用和“or”一样,当其中一个条件选项成立时执行。
在宏编辑器里按“?”图标将强制宏以当前法术的图标显示。

举例和姿态

这里有一些举例说明:

/施放 强效治疗术
非常简单,向你的目标施放强效治疗术。

/施放 [help] 强效治疗术
加入一个条件选项,当目标为友善时施放强效治疗术。

/施放 [help] 强效治疗术; 惩击
加入第二个法术,由于它没有任何条件选项,所以在第一组条件选项不成立时,则施放。

/施放 [help, combat] 快速治疗; [help, nocombat] 强效治疗术; 惩击
这个宏将在你(不是目标)处于战斗中时为友方目标施放快速治疗,如果你不在战斗中且目标为友方目标,则施放强效治疗术,如果这些条件都不成立(比如目标为敌对),则施放惩击。

/施放 [help] 强效治疗术; [harm, combat] 惩击; [harm, nocombat] 精神鞭笞
这个宏将对友方目标施放强效治疗术,或在战斗中对敌对目标施放惩击,或当你不处于战斗中时,对敌对目标施放精神鞭笞。

/施放 [stealth] 伏击; 背刺
这个宏在玩家处于潜行时施放伏击,否则的话就背刺。

/施放 [nostealth] 背刺; 伏击
这个宏和上面那个作用完全相同,只不过用了相反的条件选项。

/施放 [actionbar:1] 强效治疗术; [actionbar:2] 惩击
如果当前动作条为1号时施放强效治疗术,如果是2号则施放惩击,如果为其他动作条则不做任何事情。

/施放 [harm] 变形术
/stopmacro [noharm]
/p 正在把%t变羊!别去碰它!
这个宏将在目标为敌对目标时施放变形术,若目标不是敌对,则停止这个宏(例如变形术没有施放出来),当目标被变羊后则通知队友。注意,因为“/stopmacro”命令的存在,如果目标没有被变羊,队友将不会看到喊话(从而减少了不必要的垃圾信息)。

/施放 [pet] 召唤宠物; 复活宠物
这个宏将在你没有带着宠物时召唤一个出来,否则的话将尝试复活你的宠物。

/施放 [pet:owl] 俯冲; [pet:cat] 冲锋; [pet] 低吼
这个宏将在你带着枭类宠物的时候施放俯冲,带着猫类宠物时施放冲锋,如果是其他宠物则施放低吼。

/施放 [pet:虚空行者] 牺牲; [pet:媚魔] 魅惑
如果你带着虚空行者则施放牺牲,带着媚魔则施放魅惑。

/使用 [nomounted, outdoors] 黑色战驹缰绳
如果你在室外且没有骑着坐骑时召唤坐骑。

/施放 [target=pet, dead] 复活宠物; [nopet] 召唤宠物; 治疗宠物
若你的宠物死亡了则复活它,如果没有召唤出来则召唤宠物,或者治疗你的宠物。

----------------
姿态
----------------

姿态以同样的原理工作,当姿态编号没有给出时,则在玩家处于任一姿态都成立(注意,战士永远都处于某个姿态中)。如果给了编号,则检测该姿态是否被激活。

每个职业的特定姿态都有不同的编号,这是一个列表:

战士:1. 战斗 2. 防御 3. 狂暴
牧师:1. 暗影形态
德鲁伊:1. 熊 2. 水栖 3. 猫 4. 旅行 5. 枭兽/树
盗贼:1. 潜行

圣骑士的光环在宏条件选项系统中将不再被作为姿态处理。

请记住,如果你跳过了某个姿态(例如作为战士却没有做防御姿态的任务),你的姿态编号将会递减,比如狂暴姿态的编号会变成2号。

一些姿态宏的例子:

/施放 [nostance] 熊形态
如果没有在一个形态下,则变形到熊形态。

/施放 [stance:1] 压制; [stance:2] 破甲; [stance:3] 旋风斩
在战斗姿态下施放压制,防御姿态下施放破甲,狂暴姿态下施放旋风斩。

/施放 [stance:1] 低吼; [stance:3] 爪击
在熊形态施放低吼,在猫形态施放爪击。

/施放 [nostance:3] 猎豹形态
如果不在猎豹形态,则变形猎豹,但如果已经处于猎豹形态,也不会把你变回来。

Equipped条件选项

[equipped]条件选项也以同样的方式工作,但是更富有技巧。参数可以是一个物品槽(见下),一个物品分类,或一个物品子类。物品分类及子类,请参考这里:http://www.wowwiki.com/ItemType
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.wowwiki.com/ItemType ]

物品槽列表:

Two-Hand 双手
Bag 包
Shirt 衬衫
Chest 胸部
Back 背部
Feet 脚
Finger 手指
Hands 手
Head 头部
Held In Off-hand 副手物品
Legs 腿部
Neck 颈部
Ranged 远程
Off Hand 副手
Shoulder 肩部
Tabard 徽章
Thrown (ranged slot items like thrown daggers) 投掷(远程槽物品例如投掷匕首)
Trinket 饰品
Waist 腰部
One-Hand 单手
Main Hand 主手
Wrist 手腕

一些equipped例子:

/施放 [equipped:双手剑] 致死打击; 英勇打击
当你装备着双手剑时施放致死打击。

/施放 [equipped:双手剑/双手锤/双手斧/长柄武器] 致死打击
这里使用了分隔符“/”来设置一个“或”条件,这个宏将在你装备以上类型武器时施放致死打击。

/施放 [equipped:盾牌] 盾牌猛击
在你装备了盾牌的时候施放盾牌猛击。

/施放 [equipped:盾牌, equipped:匕首] 盾牌猛击
仅在你同时装备了盾牌和匕首时才施放盾牌猛击

/施放 [noequipped:盾牌, equipped:副手] 暴怒
在你没有装备盾牌且副手装备了武器的情况下施放暴怒,也就是说,在你双持的时候才被激活。

Button和Target目标选项

条件选项[button:<x>]运作起来类似于修改按键。一般来说,当你左键点击一个按钮,它就执行(宏)里面所有的动作,然而,如果你设置了button条件选项,你可以改变宏在特定按键上的表现。

默认按键是1,鼠标左键。注意,如果你通过按键绑定来触发一个宏,它会认为是通过鼠标左键点击触发。被编号的按键有:

1 或 左键
2 或 右键
3 或 中键
4 或 按键4
5 或 按键5
...以及其他一切在“安全声明头文件”中定义的按键。我不太确定这是什么意思,仅仅只是引用Slouken的表述。

lostcup: 官网UI论坛中有一篇Iriel(论坛MVP)写的SecureStateHeader Example Code,类似于一个模版,插件作者可以生成一个实例去修改默认设定。

/施放 [button:2, target=player] 快速治疗; [help] 快速治疗
这个宏将向友方目标施放快速治疗,或者如果你右键点击它,则向自己施放快速治疗

这里[target=unit]是一个特殊的条件选项,它并不检测条件是否成立,而是改变施法的目标以其他条件选项的目标。“unit”可以是任何有效的unit类型,例如“player”,“target”,“targettarget”,“party1”,“party1target”,等等。想了解更多的unit类型,可以去这里:http://www.wowwiki.com/UnitId
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.wowwiki.com/UnitId ]

新的宏命令:/castsequence
----------------------

在WoW 2.0中出现了一个新的命令,/castsequence。它允许你在一次次点击某个宏时,将其中定义的一系列法术逐个施放,格式如下:

/castsequence [<条件选项>] reset=<#>/target/combat <法术1>, <法术2>, <法术3>

“啥?你在说啥?”

它设定了一个法术列表,当你第一次点击这个宏时,它施放列表中的第一个法术,第二次点击的时候,施放第二个法术,以此类推。 当它施放完最后一个时,又回到起始点开始循环。

“我还是不太明白耶。”

OK,假设你是一个法师,有时候你需要冰霜新星后立刻闪现开,你没法同时做到这些事情,现在你可以设定一个序列去做!

/castsequence 冰霜新星, 闪现

就这么简单,第一次你按这个宏,你施放冰霜新星,再按一次,闪现。

“那如果冰霜新星在冷却中怎么办?它会直接施放闪现么?还是不施放冰霜新星,等第二次按这个宏的时候,再施放闪现?”

都不是。如果法术无法施放(冷却,超出距离,法力不足等等情况下),序列就不会走到下一个法术,下一次你再点这个宏的时候,它会再度尝试施放冰霜新星。(抵抗,躲闪,招架等并不会算作无法施放,这些情况下法术/技能确实施放了,只不过没有命中。)

“如果我没有处于战斗中怎么办?我不想在非战斗情况下浪费一个冰霜新星。”

你可以把之前所有的宏条件选项应用于此(可惜的是,只能应用于整个序列,而不能为每个法术单独设定)。

“呃,其实刚才我只是随便说说,OK,那如果我在冰霜新星后不想闪现了怎么办?下一次我想施放冰霜新星时,它会不会还是停滞在施放闪现的设定上?”

这完全没问题,我们会用到重置这个设定。因为冰霜新星一般的冷却时间为24秒,我们可以设定序列在24秒内不被使用就重置它。

/castsequence reset=24 冰霜新星, 闪现

当你第一次点击这个宏时,它会施放冰霜新星,如果你决定不闪现了,等过了24秒后,它会重置到冰霜新星的状态,因为冰霜新星的冷却时间为24秒,那时候它就可以被重新使用了,真棒!

“好吧,这真的很厉害,不过我实际上是个术士啊。”

当然,作为一个术士,我相信你会一直重复上三种DoT,现在你可以为它们设置一个序列以节省按钮空间啦。

/castsequence 腐蚀, 献祭, 痛苦诅咒

就这么简单,你可以连续点击三次这个宏来上这三种DoT。

“但如果在我施放完这些前目标就死了呢?我又卡在这个序列里了,我可不想设什么定时器!”

那也没关系,我们可以用其他的条件选项。如果你设定“reset=target”,那序列将在你改变目标时就重置到起始位置。你也可以设置“reset=combat”,每当你脱离战斗,这个序列就会被重置了。如果你使用“/”控制符(你还记得吧,之前提到过),你也可以将这些重置条件选项组合起来!

/castsequence reset=combat/target 腐蚀, 献祭, 痛苦诅咒

就这全了,这下子每当你改变目标(比如原来的目标快死了,你选中的新的目标)或脱离了战斗(可能目标在你施放完所有DoT前就死了),它将会把整个序列重置,让你可以从头开始。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-16
都是贼的宏,我一般都是改改就能凑合用了。

无贼鱼2006年1月13日, 17:08
曾经发过自己写的宏,结果N个人问"楼主宏到底是什么啊",呵呵,有人不知道也是正常的,但是,对于这个游戏,我想还是很有必要知道"宏到底是什么".因为:

1.宏能使你在"不影响游戏平衡性"的前提下得到最大的轻松.比如说当你因为频繁地打开面板和包包换武器而感到神经变得懒惰时,你就可以考虑用一个宏来做这件事,有了宏,换装备就像用一个瞬发技能一样happy,(盗贼凿击你后立刻换匕首背刺,又立刻换成2.8的锤放邪恶攻击,对你可不是件好事哦!对他,哈哈,倒是既简单又有效).

2.宏也可以增添乐趣,帮你更好地享受这个游戏.比如说我的兽兽猎人想要邀请漂亮的精灵或人类mm来pk,她们就会在聊天框里看到:

近视眼 色眯眯地望着你 ##

近视眼 忘了他的长像以为他是帅哥

近视眼向你抛出飞吻

近视眼 兴奋得想让你的小手轻轻地落到他的脸上

近视眼开始和你跳舞

(她也会看到她被你的猎人印记瞄上了)

这些只需要按一下.(当然,mm不pk我就去和她......跳舞啦,哈哈,我扮演的兽人也有绅士风度

3.写宏的过程本身也是一种乐趣,特别是第一次成功写出有用的宏.发现新的宏也是很有成就感的,你可以尽情发挥你的创造和想像能力.

宏是什么?很简单:

其实在这个游戏里,很多你能做的或不能做的事,都可以用一条指令来完成.比如你点击鼠标或键盘来施放3级火球,就可以用

/施放 火球术(等级 3) 或者

/cast 火球术(等级 3) 或者

/script CastSpellByName("火球术(等级 1)")

这样的指令来完成,和你的操作都是一样的效果,即我们可以把具体的操作转换成指令.当然,输入一条指令来完成一个操作是没有实际意义的(这样来玩游戏的人是XX),但是用宏就不一样了.

形象地说,宏就是一个你自己设定的"技能",这个"技能"包含了一系列你预先准备好的指令,其中有施放法术的,有命令宠物攻击目标的,有对相关数据进行比较判断的等等.当你点击这个"技能"时,电脑就会依次自动运行这个宏里包含的全部指令.(这样说该知道宏是什么了吧)

下面简单介绍一下怎样在游戏里面编写和使用宏,实践一下来入门.在游戏中按Esc键,选择"宏命令设置",出来的面板就是写宏的地方了.按"新建"来创建一个宏,给新宏起一个名字,就像技能有名字一样,最好两个字的,方便显示;再选一个图标,也像技能有图标一样,最好形象一点.按"确定"宏就建好了,只是还没有往里面装指令.面板下半部分的输入区域就是装指令的地方,(这有几个指令可以装进去试试,直接复制粘贴进去也可以,宏的名字可以设为"职业")

/script TargetNearestFriend();

/script n=UnitName("target");

/script c=UnitClass("target");

/script DEFAULT_CHAT_FRAME:AddMessage(format("%s是%s",n,c));

装够了按"确定",这个宏就可以用了.用法嘛,还是那句话,就像技能一样,把图标拖到快捷栏上,用鼠标点击或按键盘都可以.找个安全的有人的地方试试这个宏,你看到了什么?如果有NPC的话是不是连NPC的职业也看到了?(有机会的话你也可以看到NPC牛牛竟然也有圣骑士的!)下面说说这个宏是怎么回事.

/script TargetNearestFriend();

作用是"选定最近的一个盟友",好比你点选了周围的一个盟友.

/script n=UnitName("target");

作用是获取所选的人的名字,放在变量n里面,这样n就代表那个人的名字了.

/script c=UnitClass("target");

获取所选的人的职业,放在变量c里面,这样c就代表那个人的职业;

/script DEFAULT_CHAT_FRAME:AddMessage(format("%s是%s",n,c));

在聊天框里显示"n是c",也就是某某是什么什么职业,就是你看到的了.

是不是很简单?应该能够理解吧.当然这是入门,上面的例子很基础,里面只有几个简单的指令,要想写出功能更多更强更实用的宏,那就要掌握更多的指令(这里有很多http://www.wowwiki.com/World_of_Warcraft_API).进一步的有点多了,大概说到这里了.

最后给出前面邀请mm来pk的宏:

/emote 色眯眯地望着%T ##

/emote 忘了他的长像以为他是帅哥

/kiss

/emote 兴奋得想让%T的小手轻轻地落到他的脸上

/dance

呵呵,6个指令,写好了就去试试吧,用之前要选中看上的mm哦

用绷带的宏,绷带放第一包第一格,用法:先凿击,再马上用这个宏,不回消除目标连击点数哦! 选中友方目标的话就直接给他用了,

/script if UnitIsFriend("player","target") then UseContainerItem(0,1); else UseContainerItem(0,1);SpellTargetUnit("player");end;

还有背刺,伏击前主手换匕首,之后主手换剑,以备邪恶攻击使用(一手慢剑,一手匕首的那种),会用的话很方便,打架时也可以用得上,很轻松的:

背刺

/script iL=GetInventoryItemLink("player",16);b=string.find(iL,"%[");iID=string.sub(iL,13,b-1);i1,i2,i3,i4,i5,i6=GetItemInfo(iID);if i6=="匕首" then CastSpellByName("背刺(等级 1)");end;PickupInventoryItem(16);PickupInventoryItem(17);

伏击

/script iL=GetInventoryItemLink("player",16);b=string.find(iL,"%[");iID=string.sub(iL,13,b-1);i1,i2,i3,i4,i5,i6=GetItemInfo(iID);if i6=="匕首" then CastSpellByName("伏击(等级 1)");end;PickupInventoryItem(16);PickupInventoryItem(17);

使用这两个宏要注意的是,能量值不够也不要狂按,因为按一次就会换一次武器,而刺客换武器后会隐含的有1秒左右的武器冷却时间,也就是说匕首才换上后,不能立刻用背刺或伏击,狂按的话只会更慢.

举例:潜行到怪背后时,按一下,如果主手已是匕首,就伏击,并将副手剑换到主手上,之后就用剑来邪恶攻击;如果不是匕首,就先换成匕首,稍等武器冷却,再按一下,就像前面一样了.当然事先准备最好,下一步要用背刺的时候就按一下换成匕首先,到背后就可直接使用,不用等那1秒

武器冷却时间,比如先凿击一下(这时主手应该是剑),马上按一下,冲到背后转身后就可以背刺了,然后用邪恶(不用说剑的邪恶攻击伤害比匕首高得多).

最近玩了个小贼,不管宏是怎么编的,抄来一用就OK了,只用了第一个!

盗贼实用宏

1.传说中的一健盗贼用此宏

/script if ( GetComboPoints() >= 5 ) then CastSpellByName("剔骨(等级 8)"); else CastSpellByName("背刺(等级 8)"); end
/script if not (dagger == GetInventoryItemLink("player", 16)) then CastSpellByName("邪恶攻击(等级 8)") end

说明:这个宏刚刚做好,首先判断目标身上是否有5星,如果有,则剔骨。如果没有,且主手是匕首,则背刺,如果主手不是匕首,则邪恶攻击。测试有效。但是背刺要在目标背后。注意宏的格式,不要有回车。

/script if ( GetComboPoints() >= 5 ) then CastSpellByName("冷血") SpellStopCasting();CastSpellByName("剔骨(等级 8)");else CastSpellByName("邪恶攻击(等级 8)"); end

说明:类似的判断宏,如果目标有5星,则冷血剔骨。如果有5星,冷血没冷却,就普通剔骨。没5星就邪恶攻击

/script CastSpellByName("背刺(等级 8)")
/script if not (dagger == GetInventoryItemLink("player", 16)) then CastSpellByName("邪恶攻击(等级 8)") end

说明:能背刺就背刺,不能就邪恶攻击……

/script GameTooltip:SetInventoryItem("player", GetInventorySlotInfo("MainHandSlot")); if(GameTooltipTextRight4:GetText()~="匕首") then CastSpellByName("邪恶攻击(等级 8)") else PickupContainerItem(0,1); PickupInventoryItem(16); end

说明:如果主手不是匕首,则用邪恶攻击。如果主手是匕首,则把主背包第1格的武器换到主手。

/script GameTooltip:SetInventoryItem("player", GetInventorySlotInfo("MainHandSlot")); if(GameTooltipTextRight4:GetText()~="匕首") then PickupContainerItem(0,1); PickupInventoryItem(16);else CastSpellByName("背刺(等级 8)");end

说明:如果主手不是匕首,则把主背包第1格的武器换到主手。如果是匕首,就背刺。
注意,以上2个宏要求匕首有唯一属性。如果匕首不是唯一,把GameTooltipTextRight4改成3。

/施放 冷血
/script SpellStopCasting();
/施放 剔骨(等级 8)

说明:这个宏应该大部分贼都知道。冷血+剔骨,一键发出

/Script UseContainerItem(0,1);
/Script TargetUnit("player");

说明:绷带给自己,不丢星。其中绷带放在主背包第1个格。也就是最左上的格

/script x="player";d=UnitHealthMax(x)-UnitHealth(x);if (d>1800) then UseContainerItem(0,1);end
/Script TargetUnit("player");

说明:绷带给自己,不丢星。只有在角色掉1800血以上才使用绷带。

/Script UseInventoryItem(14);
/Script UseInventoryItem(13);
/Script SpellStopCasting();
/施放 冲动
kuloukyc提供的双开饰品宏。

/施放 凿击
/Script SpellStopCasting();
/Script d=UnitHealthMax("player")-UnitHealth("player");if (d>1000) then UseContainerItem(4,14);end
/Script SpellTargetUnit("player");

守望狼狼提供的凿击+绷带宏。(4,14)是绷带在背包的位置,可以换。

/施放 侦测陷阱
/Script SpellStopCasting();CastShapeshiftForm(1)

说明:释放侦察陷阱的同时进入潜行状态。在潜行状态的话就取消潜行并用侦察陷阱。

/Script if (GetComboPoints() >= 4 ) then CastSpellByName("冷血");end
/Script SpellStopCasting();
/施放 剔骨

守望狼狼提供的宏:4星以上冷血剔骨,不到3星就普通剔骨。

/施放 还击
/施放 邪恶攻击(等级 8)