[翻译]如何在一个宏中施放2+个法术
尽管通行(并且基本正确)的观点认为每次按键只能施放一个法术或者使用一件物品,事实上在一个宏中施放2+个法术确实可能。然而,何种法术才能同时施放有着极为严格的限制。如果您不愿意阅读本贴的其它任何部分,至少在提问前请读下[限制]一段。
[限制]
只能在按键时施放法术。不可能令宏等待任何期间而后施法。限制的因素 冷却 。施法一般会导致公共冷却(通常在开始施放时)。只有通常能近乎即刻施放的法术才能在宏中一次施放。这意味第一个法术必须是瞬发的,并且必须不会引发公共冷却以致妨碍第二个法术被立即释放。
[不能做什么]
所有试图在魔法飞弹(Arcane Missles)、冰环(Frost Nova)、闪现(Blink)后瞬发冰弹(Frostbolt)的朋友们,现在就放弃吧!第一个法术必须是瞬发的,而后的法术必须能在第一个之后立即施放。没有方法等待1秒的公共冷却经过。
[能做什么]
有很少一些法术,通常每个职业一对,符合同时施放的规则。通常是会影响下一法术的法术,或是影响下一技能的技能。这意味自然之速(Nature’s Swiftness)、Presence of Mind(气定?)、英勇一击(Heroic Strike)、猛禽一击(Raptor Strike)之类。它们没有施法时间(瞬发),并且不会导致公共冷却。
[怎么做]
达成这一功能的宏非常简单。建立一个宏来施放符合上述规则的第一个法术。而后,需要调用脚本函数SpellStopCasting()。这是关键所在。而后,就可以施放任何想要的法术,只要没有冷却。
例如:
/cast Nature’s Swiftness (自然之速)
/script SpellStopCasting();
/cast Healing Wave (治疗波)
这使我们能只按一个键来施放瞬间的治疗波。
另一个例子:
/cast Presence of Mind (气定?)
/script SpellStopCasting();
/cast Pyroblast (大火球?)
这是一个瞬间的Pyroblast(大火球?)。
这有个美妙的例子为盗贼提供首要帮助
/cast Gouge (凿击)
/script SpellStopCasting()
/script UseContainerItem(0,1) (使用绷带)
有一个例外。那些“下次攻击”的法术,例如英勇一击或猛禽一击,勿需SpellStopCasting(),因为会取消法术。
猎人们会喜欢这个:
/cast Raptor Strike (猛禽一击)
/cast Wing Clip (翅夹?)
这会立刻施放一次翅夹,并使下一次攻击为猛禽一击(也许会紧接翅夹,若武器速度周期恰当)。
战士同样可以使用英勇一击和断筋(Hamstring),这能释放大量的怒气。
[物品同样可以使用]
大部分物品不受公共冷却的影响,这意味那些造成公共冷却的法术,仍能与许多物品结合。德鲁伊可以通过将回春与血瓶结合来做紧急自救。我习惯随时保持闪电盾,因此我将它与坐骑结合。一些饰品能在施法后立即使用(譬如新开放的50级法师任务奖励的fire trinket(火焰护符?))。对
[有效使用的小提示]
这些内容最好用于改善您现有的游戏风格,而决非彻底改变。例如,战士(尤其是有着减少血怒伤害天赋的)可以将血怒(bloodrage)结合在部分/所有的攻击之前(血怒+ Execute(斩杀?)会很有用),从而确保在可以血怒时总是使用。您也可以加入逻辑判断,使得仅在大于半血的情况下使用血怒,或者其他条件。您能够确保在每次施放链闪电(Chain Lightning)/大火球(Pyroblast)前尝试施放Elemental Mastery(元素掌握?)/气定(Presence of Mind)。探索无限可能性吧!
这里的大部分宏最好在紧急情况下使用,尤其是NS+Heal(自然之速?+治疗)的组合。如果当您按下紧急治疗按键时,已经有一个法术在施放过程中,将会导致在没有NS的情况下施放治疗。为了避免,如果宏还有足够的空间(请记住宏只有255字符长),在宏的顶部再加一条”/script SpellStopCasting()”。那能确保终止任何已经施放的法术,并释放NS+Heal。注意这不仅适用于NS+Heal,我把它用在我的EM+ChainLightning(元素掌握+链闪电)上。
请注意所举的例子仅是如何结合法术的范例。为了更实用,其中的一些(譬如治疗的)需要一些其他的插件或者宏脚本辅助选定目标,从而当您的目标不是友方单位时治疗自己,或者自动选定特定的队友,或者其他任何希望的目标。
[结合2个以上的法术]
尽管更多并不意味确实有用,结合2个以上的法术/物品仍然可能。
例如,我们能进一步增强德鲁亿的紧急治疗能力:
/cast Nature’s Swiftness (自然之速)
/script SpellStopCasting()
/cast Healing Touch (治疗之处)
/script SpellStopCasting()
/script UseContainerItem(0,1) (血瓶)
[例外]
需要注意,如果将自然之速或气定神闲与一个有施法时间的法术结合,将不能适用,虽然分别施放时一切正常。我不知道原因。
这一方式同样不适用于形态或姿态切换。貌似因为当切换姿态/形态时,客户端不会立即确认姿态/形态的切换,直到得到服务器的回馈。事实上,姿态/形态切换有着隐藏的冷却,也就是ping的时间。我非常想要做一个“切回施法形态治疗”的宏,奈何看来无望。如果有人发现这样做的方法,我愿意洗耳恭听。
[这是否利用系统漏洞?]
不是。Slouken(译注:暴雪官网插件/宏区官方发言人)已经确认这是允许的行为。无论如何这并没规避冷却。开心吧!
暴雪官网http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=241109
暴雪官网上一些回贴
这个是给盗贼的,冷血(Cold Blood)接五星剔骨(Eviscerate):
/script if (UnitMana("Player")>=35 and GetComboPoints()>=5) then CastSpellByName("Cold Blood");SpellStopCasting() end;
/script CastSpellByName("Eviscerate");
给术士的,诅咒增幅(Amplify Curse)后痛苦诅咒(Curse of Agony):
/script CastSpellByName("Amplify Curse"); SpellStopCasting(); CastSpellByName("Curse of Agony");
给猎人的,标记(Hunter’s Mark)后宝宝攻击接自动射击(Auto Shot):
/script CastSpellByName("Hunter’s Mark(Rank 4)"); PetAttack("Target"); SpellStopCasting(); CastSpellByName("Auto Shot");
给圣骑士们,神恩接圣光:
/cast Divine Favor (神恩)
/script SpellStopCasting();
/cast Holy Light(Rank 8) (圣光术)
/script if SpellIsTargeting() then SpellTargetUnit("player") end;