有战士嘲讽抵抗后喊话通知大家得宏
昨天帮你试过了,不过带给你的是不幸的消息,这个宏无法正常工作。
这个宏的设计原理是这样的:在你施放嘲讽后,马上检查目标的所有debuff情报,看有没有嘲讽存在,如果没有,马上团队喊话
不过源程序中有一些基本的语法和逻辑错误,无法运行,依照他的设计思想,我改成了如下形势
/Script CastSpellByName("嘲讽")
/Script a=0;for i=1,16 do if (UnitDeBuff("target", i)~=nil and nd(UnitDeBuff("target", i), "reincarnation")) then a=1 end end
/Scrip...全部
昨天帮你试过了,不过带给你的是不幸的消息,这个宏无法正常工作。
这个宏的设计原理是这样的:在你施放嘲讽后,马上检查目标的所有debuff情报,看有没有嘲讽存在,如果没有,马上团队喊话
不过源程序中有一些基本的语法和逻辑错误,无法运行,依照他的设计思想,我改成了如下形势
/Script CastSpellByName("嘲讽")
/Script a=0;for i=1,16 do if (UnitDeBuff("target", i)~=nil and nd(UnitDeBuff("target", i), "reincarnation")) then a=1 end end
/Script if a==0 then SendChatMessage("嘲讽失败请大家注意","RAID") end
可惜,程序能够正常运行了,但其功能不能正常实现,他有两个严重的错误——首先,这个宏没有判断嘲讽是否可以释放(比如是否CD中,是否目标在范围外),所以很可能误报,者还不是关键,因为可以编程判断;更加致命的问题是,你对目标释放debuff,其信息不能够立即回馈给你,我查了暴雪官方网站的宏主题网页,有这样一段问答
Why doesn't UnitDebuff accurately report the spell I just cast
- There is a ~0。
5 second gap (actually, the network roundtrip time between you and the server, plus some reaction time in the server itself) between the end of a spell being cast and its associated debuff texture showing up on the unit upon which it was cast。
This gap causes problems for "Smart Cast" scripts which try to prevent a spell like Immolate from being run when the target already has the debuff on it。
If there is a pause between casting, the script would work; however, if the script is triggered rapidly then it is likely to try to cast Immolate twice (since it does not yet see the debuff on the target unit)。
。。。。。。。。。。。
明白了么?这个宏的设计思路在理论上就有缺陷
但是不必灰心,嘲讽抵抗警报宏还是可以实现的,不过这样借助一个插件。
插件的名字叫AfterCast,在百度搜索一下能找到很多相关联结,比如
这些连接网站大都介绍了这个插件的使用方法,并可以举一反三用在任何debuff或者dot机能上
最后提醒你,使用任何插件都有风险,使用密保卡是有效的防范措施。收起