打断喊话宏宏问题 求解释!

[菜鸟求助] 麻烦大神帮忙改一下下面的烟雾弹喊话宏
#showtooltips 烟雾弹/cast 烟雾弹/Y &&烟雾弹&&已释放/in 1 /Y 5/in 2 /Y 4/in 3 /Y 3/in 4 /Y 2/in 5 /Y 1/in 6 /Y &&烟雾弹&&结束这宏的问题是如果技能触发GCD导致烟雾弹释放失败的话,喊话依旧不受影响,怎么解决呢·· [s:24]
[b]要这样一大段才能实现这个功能:[/b][code=lua]function CountdownFunc()& &CountdownFrame = CreateFrame(&Frame&)& &FrameScript = function()& && &if GetTime() - MarkTime & 1 then& && && &if S == 0 then& && && && &SendChatMessage(&&&烟雾弹&&结束&, &YELL&)& && && && &FrameScript = nil& && && && &CountdownFrame:SetScript(&OnUpdate&,FrameScript)& && && &else& && && && &SendChatMessage(S,&YELL&)& && && &end& && && &MarkTime = GetTime()& && && &S = S - 1 & && &end& &end& &MarkTime = GetTime()& &S = 5& &CountdownFrame:SetScript(&OnUpdate&,FrameScript)& &SendChatMessage(&&&烟雾弹&&已释放&, &YELL&) endMainFrame = CreateFrame(&Frame&)MainFrame:RegisterEvent(&UNIT_SPELLCAST_SENT&)MainFrame:RegisterEvent(&UNIT_SPELLCAST_SUCCEEDED&)MainFrame:SetScript(&OnEvent&, function(_, _, a, b, _, c)& &if a == &player& and b== &烟雾弹& then& && &n = type(c) == &string& and c or CountdownFunc()& &endend)[/code][b]所以只好做成插件了,下载后解压到&魔兽世界\Interface\AddOns&然后只要你用了烟雾弹,就会自动喊话,不需要宏了[/b]下载地址:[url]/d/1DrAAK4O5LasUQQA8f4[/url]
[b]实在要用宏的话也行,不过要做两个[/b]宏1:[color=royalblue]/run function CD()T=GetTime CF=CreateFrame(&Frame&)FS=function()if T()-MT&1 then if S==0 then M(&&烟雾弹&结束&,&YELL&)FS=nil CF:SetScript(&OnUpdate&,FS)else M(S,&YELL&)end MT=T() S=S-1 end end MT=T() S=5 CF:SetScript(&OnUpdate&,FS)M(&&烟雾弹&已释放&, &YELL&)end[/color]宏2:[color=royalblue]/run MF=MF or CreateFrame(&Frame&)MF:RegisterEvent(&UNIT_SPELLCAST_SENT&)MF:RegisterEvent(&UNIT_SPELLCAST_SUCCEEDED&)MF:SetScript(&OnEvent&,function(_,_,a,b,_,c)M=SendChatMessage if a==&player&and b==&烟雾弹&then n=type(c)==&string&and c or CD()end end)[/color][b]每次进游戏后都把两个宏都用一次就行了[/b]
[quote][pid=79709,1]Reply[/pid] [b]Post by SonofBlizzard ( 00:07):[/b][b]实在要用宏的话也行,不过要做两个[/b]宏1:[color=royalblue]/run function CD()T=GetTime CF=CreateFrame(&Frame&)FS=function()if T()-MT&1 then if S==0 then M(&&烟雾弹&结束&,&YELL&)FS=nil CF:SetScript(&OnUpdate&,FS)else M(S,&YELL&)end MT=T() S=S-1 end end MT=T() S=5 CF:SetScript(&OnUpdate&,FS)M(&&烟雾弹&已释放&, &YELL&)end[/color]宏2:[color=royalblue]/run MF=MF or CreateFrame(&Frame&)MF:RegisterEvent(&UNIT_SPELLCAST_SENT&)MF:RegisterEvent(&UNIT_SPELLCAST_SUCCEEDED&)MF:SetScript(&OnEvent&,f..[/quote]膜拜-ing,您太厉害了 [s:8]推荐到广播
64890 人聚集在这个小组
(【御】变淡变淡都变淡)
(非橙勿扰熊猫饼)
第三方登录:

参考资料

 

随机推荐