关键字搜索 | 社区 | 首页

WoWTC - 战网中国魔兽世界 -> 宏和UI
[翻译]瞬羊、瞬补、瞬火球的宏成为可能
2005-10-18 16:51
elecass / 人气:5235
加为IE收藏  收藏文章
上一文章     下一文章


http://forums.worldofwarcraft.com/thread.aspx?fn=wow-interface-customization&t=241109

HOW-TO: Chain 2+ Spells in a Single Macro

Despite the popular (and usually correct) notion that you can only cast a single spell or use a single item per button press, it is possible to do so. However, what spells you can chain together is extremely limited. If you read nothing else in this post, at least read the Limitations section before posting questions.

---Limitations---
You can only cast spells during a button press. You cannot have the macro wait for any period of time and then cast the spell. The limiting factor is cooldowns. Casting a spell (usually when you start to cast) usually activates a global cooldown. You can only chain together spells that could otherwise be cast together near-instantly. This means that the first spell must be instant, and it must not activate a cooldown that prevents the second spell from being used immediately.

---What You Can't Do---
All of you that are looking for a way to cast Frostbolt, followed by Arcane Missles, followed by Frost Nova, followed by Blink, can just give up now. The first spell must be instant, and the next spell must be able to cast immediately following the first. There's no waiting 1 second for the global cooldown to pass allowed.

---What You Can Do---
There are a few spells, usually a couple per class, that fit the rules for chaining spells. They're usually spells that affect the next casted spell, or abilities that affect the next used ability. This means things like Nature's Swiftness, Presence of Mind, Heroic Strike, Raptor Strike, etc. They have no casting time (instant) and they do not activate the global cooldown.

---How Do You Do It---
The script for doing it is relatively simple. Make a macro to cast the first spell that fits the above rules. After that, you need to call the script function SpellStopCasting(). This is the key. After that, you can cast whatever you want that isn't on cooldown. For example:

/cast Nature's Swiftness
/script SpellStopCasting();
/cast Healing Wave

That gives you a single button press to cast an instant Healing Wave. Another example:

/cast Presence of Mind
/script SpellStopCasting();
/cast Pyroblast

That gives you an instant Pyroblast. Here's a nice one for Rogues with First Aid:

/cast Gouge
/script SpellStopCasting()
/script UseContainerItem(0,1) --Bandage


There is an exception to this. Spell that are 'On next Attack', like Heroic Strike or Raptor Strike should not have the SpellStopCasting(), as it will cancel the spell from happening. Hunters should like this one:

/cast Raptor Strike
/cast Wing Clip

That's will do a Wing Clip immediately, and a Raptor Strike on the next attack (which might be immediately following the Wing Clip, if the weapon speed timer is up). Warriors could do the same thing with Heroic Strike and Hamstring, though that's quite alot of rage to burn through in their case.

---Items Can Be Used As Well---
Most items aren't hit by the global cooldown, which means that spells that activate the global cooldown, can still be chained with many items. Druids could make an emergency self heal that chained Rejuvenation with using a healing potion. I like to have my Lightning Shield up at all times, so I chain that before using my mount. Some trinkets can be used and immediately followed by casting spells (such as the fire trinket from the new lvl50 Mage quest).

---Tips for Effective Use---
This functionality is best used to enhance your existing play style, not totally change it. For example, a warrior (especially one who has the talents to reduce their bloodrage damage) could chain bloodrage before some/all attacks (Bloodrage+Execute would be useful), to make sure they're using it whenever possible. You could add logic so that it only uses the bloodrage if you have more than half health or something. You could make sure you're making the most of your Elemental Mastery/Presence of Mind by attempting to cast it with every Chain Lightning/Pyroblast you cast. Explore the many possabilities!

Many of these macros are best used in emergency situations, especially the NS+Heal ones. If you were to already have a spell casting when you hit the emergency heal button, it would being casting the heal without NS. To get around this, if you have the room in the macro (macros can only be 255 characters long, remember), add another '/script SpellStopCasting()' line at the top of your macro. That will make it abort whatever spell you might already have been casting, and do the NS+Heal. Note that this doesn't just apply to NS+Heal; I use it for my EM+ChainLightning.

Please note that the examples here are just examples of how to chain spells together. In order to be very useful, some of them (ie the healing ones) will require some other addon or script to handle their targeting, so that your heal targets yourself if you don't have another friendly unit targeted, or automatically targets a certain party member, or whatever target you want.

---Chaining More Than 2 Spells---
Though even more rarely useful, it is possible to chain more than just 2 spells/items. For example, we could enhance that druid emergency heal even further:

/cast Nature's Swiftness
/script SpellStopCasting()
/cast Healing Touch
/script SpellStopCasting()
/script UseContainerItem(0,1) --Potion


---Exceptions---
One thing to note about this is that if you chain Nature's Swiftness or Presence of Mind together with a spell with a cast time, it won't work while moving, whereas it would if you casted them seperately. I don't know why, or of any fix.

This functionality also doesn't work with form or stance switches. It seems that this is because you when you attempt to switch stances/forms, your client doesn't actually acknoledge you switching stances/forms until it gets the response to that action from the server. In effect, stance/form switches have a hidden cooldown of whatever your ping time is. I really wanted a 'switch-back-to-caster-form-and-start-healing' macro, but it doesn't look like that's possible. If anyone has any way to get it to work, I'd love to know.

---Is This An Exploit?---
Nope. Slouken has confirmed that this is an allowed practice. It doesn't get around cooldowns in any way. Have fun!




相关评论
elecass 认为: 2005-10-18 16:51

翻译稍后放出

要点是,建立宏

/施放 自然之速啦,气定神仙啦,自己打开技能书shift+鼠标左键点击技能图标输入
/script SpellStopCasting();                   这句是关键
/施放 变形术啦,治疗啦,火球啦,自己打开技能书shift+鼠标左键点击技能图标输入
killerking 认为: 2005-10-18 17:06

已经实验气定大火球,确实可用

简单的说,就是1键放2个技能,必须第1个技能必须是瞬发的技能,而且不会引起冷却而阻止第2个技能立刻施放.


[ 此贴被killerking在05-10-18 18:15重新编辑 ]
elecass 认为: 2005-10-18 18:11
[翻译]如何在一个宏中施放2+个法术

如何在一个宏中施放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),这能释放大量的怒气。

下面回家再翻,sorry
elecass 认为: 2005-10-18 20:45

[物品同样可以使用]
大部分物品不受公共冷却的影响,这意味那些造成公共冷却的法术,仍能与许多物品结合。德鲁伊可以通过将回春与血瓶结合来做紧急自救。我习惯随时保持闪电盾,因此我将它与坐骑结合。一些饰品能在施法后立即使用(譬如新开放的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的时间。我非常想要做一个“切回施法形态治疗”的宏,奈何看来无望。如果有人发现这样做的方法,我愿意洗耳恭听。

[这是否Exploit?](壮举?翻不出)
不是。Slouken(译注:暴雪官网插件/宏区官方发言人)已经确认这是允许的行为。无论如何这并没规避冷却。开心吧!
liupang 认为: 2005-10-19 02:35

exploit: 利用系统漏洞
elecass 认为: 2005-10-19 09:02

谢谢楼上。

昨天没仔细看
QUOTE:
[例外]
需要注意,如果将自然之速或气定神闲与一个有施法时间的法术结合,将不能适用,虽然分别施放时一切正常。我不知道原因。

是说瞬羊还不行?


[ 此贴被elecass在05-10-19 09:07重新编辑 ]
韬光晦影 认为: 2005-10-19 20:32

2楼已经说了大火球可行,为何羊却不行?

我试试看。
elecass 认为: 2005-10-19 22:51

老实说布衣职业一个没练过,现在抢号也不容易啦,哪位测试下吧。

“与一个有施法时间的法术结合“,这话有些怪,明天再仔细看看暴雪官网上的回贴。
elecass 认为: 2005-10-20 15:46
暴雪官网上一些回贴

还是没看到瞬羊,奇怪呀奇怪

这个是给盗贼的,冷血(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;


[ 此贴被elecass在05-10-20 17:37重新编辑 ]
快乐の龙龙 认为: 2005-10-20 21:41

/释放 冷血
/script SpellStopCasting();
/释放 剃骨<8级>
可以挖?
elecass 认为: 2005-10-20 22:36

QUOTE:
下面是引用快乐の龙龙于05-10-20 21:41发表的:
/释放 冷血
/script SpellStopCasting();
/释放 剃骨<8级>
可以挖?


可以,剃骨(等级 8)吧?最好Shift+鼠标左健
授之以愚 认为: 2005-10-23 16:39

望楼主继续努力....把没个职业可能的组合都列出来...灭哈哈
diablolord 认为: 2005-10-25 14:14

我想知道怎么使用饰品??
比方说:我想激活“短暂能量护符”后直接就开始火球之类的魔法,而不想浪费这短暂的时间,毕竟只有15秒,手动按得话基本上都要浪费1秒。如何实现?????
elecass 认为: 2005-10-25 19:22

QUOTE:
下面是引用diablolord于05-10-25 14:14发表的:
我想知道怎么使用饰品??
比方说:我想激活“短暂能量护符”后直接就开始火球之类的魔法,而不想浪费这短暂的时间,毕竟只有15秒,手动按得话基本上都要浪费1秒。如何实现?????


/script UseInventoryItem(13);SpellStopCasting()
/施放 火球术        


第二句打开技能书shift+鼠标左键

如果护符在“护符2”的位置,把第一句的13改14
韬光晦影 认为: 2005-10-25 21:05

试了,可行。
elecass 认为: 2005-10-25 22:29

修正
QUOTE:
[例外]
需要注意,如果将自然之速或气定神闲与一个有施法时间的法术结合, 将不能在移动中使用, 虽然分别施放时一切正常。我不知道原因。



谢谢韬老大帮忙测试!
diablolord 认为: 2005-10-26 12:06

万分感谢!
jsqld 认为: 2005-11-17 10:58

我是菜鸟哈 请教下楼主 那个骑士的神恩接圣光的宏 我试着弄了一个 开始是有红字提示出错 后来干脆就没反应了 是不是只要完全按照楼主贴出来的那样照搬啊 还有最后那个填名字的地方 要改成被施放的人的名字吗
elecass 认为: 2005-11-17 11:25

QUOTE:
下面是引用jsqld于05-11-17 10:58发表的:
我是菜鸟哈 请教下楼主 那个骑士的神恩接圣光的宏 我试着弄了一个 开始是有红字提示出错 后来干脆就没反应了 是不是只要完全按照楼主贴出来的那样照搬啊 还有最后那个填名字的地方 要改成被施放的人的名字吗


嗯,不是复制就能用的。括号里的中文是我加的翻译。在MF的话只要前面的英文部分,在CWOW应该改成

/施放 神恩
/script SpellStopCasting();
/施放 圣光术(等级 8)
/script if SpellIsTargeting() then SpellTargetUnit("player") end;

类似这样的形式,也就是说施法语句改中文。由于技能名称必须绝对正确,所以我没有直接修改而只是给了翻译。

"player"不要改成自己名字原样留着。


以上2问题可参见CWOW 宏命令FAQ
jsqld 认为: 2005-11-17 18:58

刚刚试过了 成功了 谢谢楼主 希望能多看到骑士的实用宏 : )
西域飞鹰 认为: 2005-11-19 13:44

/cast Presence of Mind                     (气定?)
/script SpellStopCasting();
/cast Pyroblast                     (大火球?)

这是一个瞬间的Pyroblast(大火球?)。
不好意思,弱弱的问问,我怎么怎么都搞不出来?这个宏一点就是在吟唱大火球啊,急盼楼主直接给一个能用的宏,万分感谢!
西域飞鹰 认为: 2005-11-19 14:04

好了,成功了
jayvwang 认为: 2005-11-22 12:44

非常good的文章。。望楼主继续+u啊。。。
顶死你。!!!!!!!!!!!!!
jayvwang 认为: 2005-11-22 12:52

非常喜欢这文章。。找了好久了。。。。。
什么人物 认为: 2006-01-16 09:54

牧师能不做啊?暗影牧师怎么做。现在1。90版本还可以把?
猩猩的狼心 认为: 2006-03-02 14:38

我想问一下~
如果宏的第一个法术已经放了,想要终止不放后面的行吗?
精灵猎侠 认为: 2006-04-17 18:05

麻烦把猎人的弄一下好吗。谢谢 最好全一点。哈。比如说喊叫提示啊之类的。非常感谢
qiaoqiao12x 认为: 2006-07-19 22:25

牧师能不做啊?暗影牧师怎么做。现在1。90版本还可以把?
28条评论<<   1   2  >>  Pages: ( 1/2 total )
编辑文章     论坛模式     联系作者     推荐给好友

发表评论 顶端
标题
参与评论



Powered by PHPWind v4.3.2 Code © 2003-05 PHPWind
Time is now:,

You can contact us