魔兽世界语言宏的一个缺点,很多人都不能解决的问题

作者&投稿:张购 (若有异议请与网页底部的电邮联系)
魔兽世界宏所有语言~

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: - 检测某个物品是否被装备。可以是任何有效的装备槽,物品分类,或者物品子类
target = - 特殊条件选项,它把当前目标改变为任何有效的单位(详见下)
actionbar: - 检测当前动作条是否为列出的那个

新的条件选项:

pet: - 检测宠物是否存在。可以接受宠物类型(枭,熊,小鬼)或者名字(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] 召唤宠物; 治疗宠物
若你的宠物死亡了则复活它,如果没有召唤出来则召唤宠物,或者治疗你的宠物。

----------------
Stances:
----------------

Class: Warrior Priest Druid Rogue
---------------------------------------------------------------
Stance:1 Battle Shadowform Bear Stealth
---------------------------------------------------------------
Stance:2 Defensive Aquatic
---------------------------------------------------------------
Stance:3 Berserker Cat
---------------------------------------------------------------
Stance:4 Travel
---------------------------------------------------------------
Stance:5 Moonkin/Tree
---------------------------------------------------------------

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

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

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

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

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

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

一些姿态宏的例子:

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

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

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

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

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目标选项

The option [button:] works similarly to the modifier button. Normally, if you left-click a button, it performs whatever action is in that spell, in our case a macro. However, if you set the button option, you can change the behavior of a particular macro.

The default button is 1, the Left Mouse button. Note that when you activate a macro via a keybinding, it treats it like a Left Mouse button click. The numbered buttons are:
1 or LeftButton
2 or RightButton
3 or MiddleButton
4 or Button4
5 or Button5
... or any of the buttons remapped by the secure state headers. I don't know what this last bit means, to be honest, I'm simply quoting slouken.

条件选项[button:]运作起来类似于修改按键。一般来说,当你左键点击一个按钮,它就执行(宏)里面所有的动作,然而,如果你设置了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 ]


请注意,任何一个施法都有默认的target,那就是“target”,例如:

/施放 [help] 强效治疗术

就和下面的宏等同:

/施放 [target=target, help] 强效治疗术

除非你加入一个[target=unit]条件选项,默认则就是你的当前目标。

一些[target=unit]的例子:

/施放 [target=player] 快速治疗
总是向自己施放快速治疗,并且不会改变你的实际目标

/施放 [help] 快速治疗; [target=targettarget] 快速治疗
如果目标是友善的,则向他施放快速治疗,否则向目标的目标施放快速治疗。

/施放 [help, combat] 快速治疗; [help, nocombat] 强效治疗术; [target=targettarget, help, combat] 快速治疗; [target=player] 强效治疗术
这个宏可以 1) 如果你处于战斗中且目标友善时施放快速治疗,2) 如果你目标友善且没有在战斗中则施放强效治疗术,3) 如果你处于战斗中且你目标的目标为友善,则向他施放快速治疗,4) 如果前面的条件都不成立,则向自己施放强效治疗术。

如果你使用none作为unit,则它会像你没有选中目标一样工作,例如:

/施放 [target=none] 驱散魔法

这将施放驱散魔法且等待你点中一个目标,无论你当前是否选中了一个目标。Castsequence

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

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

/castsequence [] reset=/target/combat , ,

“啥?你在说啥?”

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

“我还是不太明白耶。”

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

/castsequence 冰霜新星, 闪现

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

就这全了,这下子每当你改变目标(比如原来的目标快死了,你选中的新的目标)或脱离了战斗(可能目标在你施放完所有DoT前就死了),它将会把整个序列重置,让你可以从头开始。


“OK,真棒,我想我现在弄明白了!给我点时间设置新的宏....搞定!”

好极了,我很高兴能帮上忙。

“那...来决斗一盘吧?”

呃,不了,我从不和术士决斗。

“切,胆小鬼。”举例说明

一些宏的例子:

通用宏:
---------------
/use [target=self] 厚虚空布绷带
无论当前目标是什么,这个宏只会对自己使用厚虚空布绷带。

战士宏
---------------
拦截/冲锋:拦截或者冲锋,或者切换到相应的姿态。
/施放 [nocombat, stance:1] 冲锋; [combat, nostance:3] 狂暴姿态; [nocombat, nostance:1] 战斗姿态; [combat, stance:3] 拦截

一般姿态宏:把替换为任何你想要的技能
/施放 [stance:1] ; [stance:2] ; [stance:3]

压制:一个很简单的压制宏
/施放 [stance:1] 压制; 战斗姿态

法师宏
---------------
炎爆/火球:如果没有处于战斗则施放炎爆术(作为起手),否则就施放火球术
/施放 [nocombat] 炎爆术; 火球术

锁定变羊:总是将你锁定的目标变形
/施放 [target=focus] 变形术


牧师宏
---------------
向当前目标的目标施放强效治疗术,否则向当前目标施放
/施放 [target=targettarget, help] 强效治疗术; [help] 强效治疗术

猎人宏
---------------
根据是否在战斗中喂养或治疗宠物
/施放 [combat] 治疗宠物; [nocombat] 喂养宠物
/使用 [nocombat]

命令是:/in 数字 /频道 内容
多条语句连用时应该写成:
/频道 内容1 (此语句会立即显示)
/in n /频道 内容2 (此语句会在上一条显示n秒后显示)
/in n+m /频道 内容3 (此语句会在上一条显示m秒后显示)
......(以此类推)

举例:
/1 123
/in 3 /2 123
/in 6 /y 123
作用是现在综合频道说123,3秒后在交易频道说123,又过3秒,大喊123。

要注意的是如果写成:
/1 123
/in 3 /2 123
/in 3 /y 123
那么在综合频道说出123以后,过3秒会同时在交易说123并大喊123。
用伪代码表示,系统把这段命令看做了:/1 123 /in 3 (/2 123 /y123),或者说看做了:/1 123 /in 3 /2 123 /in 3+0 /y 123

而如果写成:
/1 123
/in 3 /2 123
/y 123
那么综合说123并大喊123,而3秒后才会在交易频道说123。
用伪代码表示,系统把这段命令看做了:/1 123 /y 123 /in 3 /2 123

2.0 宏的基础知识

2.0.0 宏是什么?

简而言之,宏(marco)就是一个使用blizzard预先设置好的一系列命令或函数来实现一个有限的功能。
最强大的莫过于可以实现条件判断。

******** ********** ************** *************

2.0.1 宏是否合法?用宏会被封号么?

请注意2.0.0回答里面红色的部分,既然使用blizzard预先设置好的一系列命令或函数,哪还会不合法么?

******** ********** ************** *************

2.0.2 宏的运行机制是怎样的

事实上,宏里面的所有语句都是在同一时间被当成是一个整体同时运行的,而不是一行接着一行像我们想象的那样运行

其实世界上没有一台电脑可以把所有代码当作一个整体来执行即使看上去是那样的,电脑都是按顺序执行的。
上面的意思就是说宏不会在等第一行执行完以后再去执行第二行,第二行和第三行之间也是一样。中间是不停顿的,所以看上去就像被当作一个整体去执行。

******** ********** ************** *************

2.0.3 如何使得我的宏施展出来的时候可以自动说对象的名字?

%t这个变量可以使得你的宏说出你所选择的对象的名字,比如

/说 你好啊,%t

当你选择 梦幻飞天无敌小猪 这个玩家的时候,使用这个宏,结果就是

你说: 你好啊, 梦幻飞天无敌小猪

******** ********** ************** *************

2.0.4 宏的数量有限制么?

每个角色只能建立18个marco。而且就我所知不可以超过18。

******** ********** ************** *************

2.0.5 宏里面如何选定队友,自己或者敌人?

宏里面每个角色都是有代号的,现列举如下:

"player" 玩家自己

"pet" 玩家的宠物

"party1" 1号队友

"party2" 2号队友

......

"partypetN" 第N个队友的宠物 (N 可以是 1,2,3, or 4) (1.5.0新加,国服暂时没有)

"raidN" 第N个团队伙伴 (N 可以是 1,2,3,...,40)

"raidpetN" 第N个团队伙伴的宠物 (N 可以是 1,2,3,...,40) (1.5.0新加,国服暂时没有)

"target" 被选中的目标

"mouseover" 鼠标正在划过或刚刚划过的目标

下面的值只能用于一些特殊场合:
"npc" or "NPC" 玩家正在与之交互的NPC

比如说需要引用2号队友的生命值,就用 UnitHealth("party2") 就可以了

******** ********** ************** *************

2.0.6 宏的写作有什么格式?

你可以使用给定的命令去完成一个宏,比如/说,/施放

这些都是有英文的,比如上面两个,你可以写成/say,/cast

有的可以简写成 /say 写成 /s

当你要用到函数的时候(一般后面会有一个括号,比如UnitMana()),需要用 /script 开头。

比如释放一个技能,你可以写成 /cast 真言术:盾(等级1) ; 也可以写成 /script CastSpellByName("真言术:盾(等级1)")

******** ********** ************** *************
2.1~2.2 实际使用方面的疑难

2.1.0 我如何在一个宏里释放法术?

使用 /施放 这个命令。 例如 /施放 恢复(等级1)

最简单的在你的宏里面写入正确技能的方法是,当你编辑一个宏的时候打开你的 技能窗口,然后shift+左键点击相应技能。这样就会自动在宏编辑窗口里面添加 /施放 你选择的技能

******** ********** ************** *************

2.1.1 我能否在一个宏里面使用很多技能?比如说(牧师为例)一个 MB,一个Pain,再来一个MF

不可以!原因是宏是不可以延迟的!但是你施放一个法术以后再施放一个法术,你必须等待其间的公共冷却时间(1.2秒~1.5秒)结束以后,才可以施展第二个法术。

不过你仍然可以做一些不需要等待的事情。比如,施放一个法术然后进行攻击。或者使用物品(只要他们有独立的冷却时间)

不过你仍然不可以做两个之间需要等待的动作!

当然你会说,如果我要使用的第一个技能是瞬法法术,没有公共冷却时间呢?
告诉你,结果是,仍然不可以!哈哈

附录:
再扩展一点点

(1)会触发公共冷却时间的技能:
释放一个法术或者技能

(2)不会触发公共冷却时间的技能:
在聊天窗口里面说话
进入攻击模式
命令你的宠物攻击
使用一个物品

宏只可以做第一个列表里面的一件事,但是却可以做很多第二个列表里面的事情

2.2.4里面有关于这个问题更详细的解释

******** ********** ************** *************

2.1.2 我如何设定一个宏或者一段脚本使得当我遇到什么情况的时候自动施展技能?

你不可以!现在的wow里没有办法自动施展法术或技能。你只能在触发一个硬件事件(hardware event)的时候才可以施展一个技能,(比如说,鼠标键被按下或者键盘上某个按键被按下)。此外,这个hardware event必须触发一个法术或者技能,否则也无法释放。

你可以尝试使用在一段时间以后使用CastSpellByName()去释放法术,但是这个法术不会被释放。

******** ********** ************** *************

2.1.3 我可以在一个宏里等待一小段时间然后再施展宏的剩余部分么?(以及对/in的解释)

不可以,完全不可能。看看2.1.1的解释。

附录:

不过当你安装cosmos(一个著名的国外UI)的时候,你倒是可以的,比如

/in 5
/说 你好,
/说 小猪!

在5秒之后你将会说“你好”。不过你会立刻说“小猪”。
/in 不是一个宏延迟指令,它只是简单的让你在一段时间之后再去施展一个技能。

不过很遗憾的是,你不可以用 /in 去释放一个法术,施展一个技能,或者运行一个宏,这都归咎于2.1.2里面所说的hardware event限定。所以,/in的功能是很有限的,你只能用它去说话,或者使用物品,仅此而已。

我不一开始就说这个命令的原因是因为99%的时候人们都想在宏里来个暂停,以使得它们可以在同一个宏里再释放一个法术,或者换装备然后再使用一个技能。即使用了cosmos的 /in 这些仍然是不可行的!

******** ********** ************** *************

2.1.4 我如何在宏里面使用一个急救绷带?

你如果想给自己使用绷带的话,不用编写宏,直接使用它或者拖进你的动作条里面。

如果你想再做其他一些事情,以下是你所需要的代码
/target 你的名字
/script UseContainerItem(Bag#, Item#);
/script TargetLastEnemy();

bag# (0-4):
是背包(Bag)的编号
背包栏从右到左依次是 4,3,2,1,0

Item# (1-16)
格子编号取决于你的包的大小,一般都是从左往右,从上往下(一行接一行) 比如
6格包
____1 2
3 4 5 6

16格包
1 2 3 4
5 6 7 8
9 ......

******** ********** ************** *************

2.1.5 我可以对我的队友施展一个增益法术而且不失去我当前的目标么?

可以,,,,

只需要简单得这样做:
/施放 真言术:盾(等级 1)
/target 队友的名字

当你在没有选定一个友方目标的时候就施展增益法术的时候,这个技能将会进入 选择模式(注意光标的变化)

下一个选定的命令(/target)(不管是写代码或者按键)告诉这个技能施展在谁的身上。
但是不会改变你的目标!

用另外一种方法来实现:
/target 队友的名字
/施放 真言术:盾(等级 1)
/script LastTarget()

会改变你的目标,进入自动攻击模式而且会使得盗贼失去他们的技能点

******** ********** ************** *************

2.1.6 盗贼如何切换双手武器,比如说从 匕首/匕首 切换到 剑/锤 ?

这里是我的宏(把手上的匕首/匕首 切换到 背包里面的 剑/锤 )
当然,只要是单手武器都可以切换,仅仅是一个位置问题,我们所做的只是从一个地方拿起一个东西和另外一个未知的东西互换位置,而不管它的类型。

这里要用到两个命令:
1. PickupInventoryItem(xx) [从主手武器位置祸福手武器位置一个武器]

2. PickupContainerItem(x, y) [和上面不同之处在于是从背包里面拿]

参数的解释:
1. PickupInventoryItem(xx)
[x填写16代表主手武器位置, 17代表副手武器位置]

2. PickupContainerItem(x, y)
[x 是背包编号。 y代表格子编号。通过写入不同的x,y值,你可以表示不同的物品。]

具体位置和数字的关系请参见2.1.4的解释

宏:

/script PickupInventoryItem(16);
/script PickupContainerItem(0, 1);
/script PickupInventoryItem(17);
/script PickupContainerItem(0, 2);

Enjoy!(2.2.5有这个两个函数使用的另外的一个例子)

******** ********** ************** *************

2.1.7 在一个宏里面如何使我的宠物攻击选定的目标
请使用如下代码:
/script PetAttack();

******** ********** ************** *************

2.1.8 我可以建立一个宏以使用副手武器么?

可以!

/script UseInventoryItem(GetInventorySlotInfo("SecondaryHandSlot"));

这段代码将会激活你所装备的副手武器

******** ********** ************** *************

2.1.9 如何在一个宏里选定队友1或者队友5

/target party1 将会选定1号队友 party2将会选定2号队友,一直到5
party1 就是队友1个代号,可以用在其他任何你想要选中1号队友的指令里面

******** ********** ************** *************

2.2.1 如何在一个宏里面引用目标的各项属性,比如说生命值,法力,性别,等级等等,,,

UnitHealth("unit") 目标生命值(HP)
UnitHealthMax("unit") 目标生命最大值
UnitMana("unit") 目标法力值(mana)
UnitSex("unit") 显示目标的性别(Sex)
UnitLevel("unit") 显示目标的等级(LV)

unit的值请参照2.0.4

其他更多的函数请参考http://www.wowwiki.com/World_of_Warcraft_API

******** ********** ************** *************

2.2.2 我如何协助我的宠物进行攻击?

你可以写一个这样的宏去协助你的宠物

/script AssistUnit("pet");

这个将会锁定你的宠物正在锁定的目标。如果你的宠物没有锁定任何目标,这个宏就会什么也不做。
如果你的宠物死了,你将会受到这个信息“我需要一个目标”
我不喜欢听电脑对我唠叨这句话,所以一个稍微简洁一点的宏是......

/script if UnitExists("pet") then AssistUnit("pet"); end

修正了上面那个缺点,当你使用宏的时候你的宠物已经死了,你也不会收到那条信息。

******** ********** ************** *************

2.2.3 如何协助我的队友进行攻击或者选中我自己?

/script AssistUnit("party2");

这将会协助队伍里的2号队友进行攻击。如果你不在队伍里面你将会受到一条消息“我需要一个目标”

/script AssistUnit("小猪");
这个marco将会协助一个叫做小猪的人进行攻击,如果没有 小猪 这个人,,,,,,

/script TargetUnit("player");
这个宏会选择你自己。当你想对自己施放某个法术的时候就会很有用。

******** ********** ************** *************

2.2.4 我可以用marco从A姿态切换到B姿态,使用B姿态的技能然后再返回A姿态么?

绝对不可以!

已经说了很多次了,我再说一次!

“按一个键,使用一个技能” 这是一个雷打不动的规矩!
违反这个规矩就是外挂功能!
如果你被抓到违反规定,你就会被BAN ACC(封帐号)。
你的宏不工作是因为他根本不应该这样做!
客户端可以很好地制止一部分违反规定的行为。

cosmos提供的 /in 并没有违反规定,因为它不能用于延时去释放一个技能。

以战士的3种姿态来说,姿态切换都是瞬发的,但是都有一个1秒的公共冷却时间。
你不可以用1个键去触发两个技能。

2.1.1里面有关于这个问题更多的解释

******** ********** ************** *************

2.2.5 如何切换身上的装备?

我写了一个marco使得我可以切换我的鞋子。
我有两双鞋子,一双可以加快我的行走速度,一双则用于战斗。

代码是这样的:

/script PickupInventoryItem(8);
/script PickupContainerItem(4,7);
/script UseContainerItem(4,13);

第一个命令,PickupInventoryItem(N),将会定位到你角色装备栏里某个需要切换装备的地方(根据N的取值不同来实现指定不同的位置).而例子里面所使用的8将会告诉电脑我要切换的是脚部的装备.

第二行用到了PickupContainerItem()。这个激活了背包里面所要切换的东西 (我的例子里就是4,13这个地方的装备) 这个例子里面将会和宏里面第一行PickupInevtoryItem(8) 所指定的装备进行切换。
(背包的编号请参见2.1.4)

最后1句话使用了我背包里(4,13)这个位置的一样东西。(Camus注:这个人说是上马)

一个宏就可以实现换鞋子然后上马,不骑马的时候使用一次,就会把鞋子切换回来。

一些注意事项:

(1)你必须把所要切换的东西很精确的放在背包的某个位置,而且不可以却移动它,不然这个宏就不会执行。

(2)当你和一个卖东西的NPC说话的时候,你将会自动下马,你将会穿着你的加速靴下马。换句话说,当你再一次使用这个宏的时候,你将会穿着你的战斗用鞋上马,不过并不像听上去那么糟,你可以再你上马的时候再次使用这个宏,就切换回来了(因为你在上马的时候不会上马)或者你也可以在跑的时候使用一次这个宏,因为跑动的时候也不会上马,你就又会回到一开头的状态了。

2.1.6有这两个函数使用的一个例子。

逸心青 你不懂就不要来乱tie!只会copy别人的答案,根本讲不到重点。
宏里面像你说的那个功能好像是实现不了的,这不是编程,只是实现一些动作和功能的优化和集合,用自己魔法值的改变来判定也不行,五秒规则,五秒之后魔法自己涨,用目标的形态变化来判定,好像没这个函数把。。。也许要装其它的函数库。。。。

我以前也试过类似的宏...
不成功~```
要不就弹错误报告
要不就以说话的方式说出整个宏.......
开始以为是行的问题
最后发现不太好弄的样子
直接放弃了...


请问怎么做魔兽世界战士宏?
1.释放技能命令 \/cast 释放一个或多个技能,可以加入一些条件判断,是最常用的命令 \/castsequence 依次释放释放数个技能,同样可以加入一些条件判断,常见于所谓的"无脑宏"\/use 使用一个物品,可以直接用物品名称也可以用物品栏位置 2.动作命令 \/cancelform 取消变形 \/cancelaura 取消状态或增益 \/startattack ...

魔兽世界宏命令怎么使用?
(二)生成一个随机数的函数random()使用格式:random(起始值,结束值)作用:生成一个在起始值和结束值之间的随机数随机数:无起始值和结束值时位于[0,1]区间;提供单个参数n时,随机数位于[1,n]区间;提供两个参数起始值和结束值时,随机数位于[起始值,结束值]区间例:\/trandom(50,100)作用:...

魔兽世界宏是什么
首先wow是由blz程序员用程序编出来的.宏就是一种程序. 我们可以用宏在wow里干什么?很多很多... 比如:在wow打字交流和让人物做表情.这2步..我们可以用一个宏搞定。以下: A回车输入\/marco或点对话框边的聊天图标中的\/macro或在频道的菜单里选 宏. B点击对话框底部的“新建”按钮 将会弹出另外一个对话框 其...

魔兽世界猎人宏
\/script if (UnitMana("target")>100) then CastSpellByName("蝰蛇钉刺()") else CastSpellByName("毒蝎钉刺()"); end;如果目标的蓝多于100,则持续打抽魔钉刺;如果已少于100则放毒蝎钉刺(可改为毒蛇钉刺),数字100可以自己更改为任意.宏里没有写钉刺的等级,但系统会默认为最高等级.★8★....

高分求魔兽世界宏命令函数和各个职业技能
当然亦可敲下“回车”键在对话框中输入\/MACRO也能打开宏命令设置界面。二.打开宏命令设置面板后,如果想建立的是角色专用宏,还必须先点上方“通用宏”旁边的角色“专用宏”,在选“新建”后打开建立新宏的面板:三.输入宏的名字,选取一个宏图标后点“确定”,就建立了一个新宏。这里需要注意的是,当选取的是第一...

请问魔兽世界里 宏 是什么意思?请详细说明!
在WOW的世界中,可能你会第一次接触到“宏”这个名词。 什么是宏命令? 说白了就是同时把几个技能热键绑到一起用一个键来代替,就像是一份计划书一样,你事先在里面输入你常用的一些命令,当你想用的时候只 要按下这个键就可以了。 宏命令的设置流程: 首先,回车,再敲\/MACRO。看见了吧?会弹出一个窗口,上面...

魔兽世界 求几个猎人宏 (要TBC能用的)
至于你说的 1.猎人印记+奥术射击 3.擒兽一击+冰冻陷阱(摔拌+冰冻陷阱)4.擒兽一击+摔拌+猫咬(擒兽一击+摔拌)很遗憾的告诉你 不能如此简单地实现 因为有公共CD...你即使做出来了宏 系统也告诉你 技能还没准备好...至于要刷屏喊话 重复我说的制作宏的步骤 然后输入要说的话 如果你想让角色大喊"...

关于魔兽世界SS的宏
简单并且使用性非常高的一个宏。目标为敌对就使用法术封锁,按住shift对锁定目标使用法术封锁。目标为友善就使用吞噬魔法,按住alt就对自己使用吞噬魔法。6666666666---瞬招+牺牲\/cast [nopet,target=pet,dead]恶魔支配;牺牲\/stopcasting\/cast 召唤虚空行者宠物不是虚空的时候点一下召唤虚空行者,宠物是虚空行者的时候点一...

求几个实用的魔兽世界猎人宏
第一个宏随便放 需要点击 第二个宏放在右下角背包栏的正上方那个技能栏里 不需要点击 这宏必须有瞄准雕文 这是重要的 不然输出会打乱。这一个 showtooltip 稳固射击 \/cast !自动射击 \/petautocastoff 爪击 \/cast [target=pettarget, exists] 杀戮命令 \/cast [target=pettarget, exi...

魔兽世界猎人宏
1、什么是宏: 宏是一组命令的集合,可以完成一个相对比较复杂的操作,比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切。比如, \/s 冰冻陷阱别打! \/施放 冰冻陷阱(等级 1) 就是在战斗中,放陷阱前,向队友通知一声,随后立即安放陷阱。二...

同江市19512551515: 魔兽世界的宏为什么用不好? -
满沸缬沙: 是一次一次的按不是按一下所有技能都出这个宏的意思是 你按第一下 出第一个技能 再按出后面的技能所有技能放完后再按是从头循环 那是你宏编错了吧. 连套的 一般都是按顺序放 按一下就成 这个是错的 还有建议你不要用宏因为一旦切换目标再按这个宏循环就会从头开始 但技能是有CD的 所以很有可能一切换目标就什么技能都放不出来我以前也用宏现在不用了

同江市19512551515: WOW里面宏的问题 -
满沸缬沙: 首先解释下什么是宏: 宏是通过一次单击就可以应用的命令集.它们几乎可以自动完成您在程序中执行的任何操作,甚至还可以执行您认为不可能的任务. 宏是编程,但即使您不是开发人员也可以使用它们,您甚至不需要知道任何编程知识. ...

同江市19512551515: 关于魔兽世界宏的一个问题
满沸缬沙: 你要的宏不能实现最多在前面加一句 #showtooltip 制裁之锤 这个是显示制裁之锤的冷却时间 在没冷却前你不要反复点那个宏按键就好了 话说FS变羊的宏你反复点也会反复说话

同江市19512551515: 关于魔兽世界中"宏"的问题 -
满沸缬沙: 就是方便人们重复的输出某一项命令的!诸如:聊天中的对话、技能的释放等等. 1.什么是宏命令? 玩过EQ的都知道一点宏的知识,比如组队时用来告诉队友你的行动,告诉目标等.最简单的比 如puller 常用的: /v %t过来了,大家集中火力. ...

同江市19512551515: 魔兽世界有关宏的问题
满沸缬沙: 第一点,你根据自己的职业和爱好选择别人做好的宏,自己不用做. 第二点,用了宏自己能偷懒很多,不用再不停的点好几个技能了.你可以只按一个这个宏的键盘就行了 PVE时宏能最大化你的DPS,不过手法好就算了.

同江市19512551515: 魔兽世界 关于宏 -
满沸缬沙: 说下个人见解吧: 宏就是一个把事情变得更简便的方法,比如你是一个圣骑士,在野外遭遇了一群敌人的围捕,你想无敌+炉石逃走,可惜你把无敌这个技能放到快捷栏了,但是炉石不在,等你无敌打开后,找到炉石点击后,无敌的效果已经消...

同江市19512551515: WOW请问以下这三个LR的宏有什么缺点?
满沸缬沙: /console Sound_EnableSFX 0 /施放 杀戮命令 /施放 !自动射击 /施放 稳固射击 /console Sound_EnableSFX 1 /script UIErrorsFrame:Clear() 这样比较好 第二个,需要按两下,因为急速和狂野用公共CD 第三个,自动射击前面加个 !

同江市19512551515: 魔兽世界制作宏的问题 -
满沸缬沙: 下面介绍下关于宏的问题: 1. 什么是宏简单来说,WOW每个操作就是一个命令(包括说话,释放魔法等等等等),而宏就是一组命令集,也就是根据你的要求同时完成一组命令.2. 使用宏是不是违法 当然不是,如果违法blizzard为什么要把宏...

同江市19512551515: 魔兽世界宏的一个小问题
满沸缬沙: 从头再来这个可以,在后面写上(reset=x)x设定为你写的时间.技能CD就跳过的语句暴雪已经封掉了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网