一,基础
1,所有宏均不用设图标,全部用默认的问号图标,宏完成后会自动与相应技能图标一致
2,设置基础宏(不用按,放在宏库里就行,基础宏名称必须和红色加粗一致,不能改动。所有宏请将蓝字部分直接复制粘贴到游戏内“宏”,不会建宏请自行搜索宏基础知识)
AA:
CreateFrame("frame",'F')F:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")return function(t)c=InActiveBattlefield()and"SAY"or IsInRaid()and"SAY"or IsInGroup()and"PARTY"or"EMOTE"SendChatMessage(t,c)end,i and"{rt"..i.."}"or '',CombatLogGetCurrentEventInfo
以上的“SAY”“RAID”等,可按各自团队需要更改为其他频道(避免刷屏等)
BB:
return function(f,e,j,c)CreateFrame("frame","H")local i,s,g,d,T,t,R,E=nil,SendChatMessage,0,0,0,GetTime,H.SetScript,"OnUpdate"T=t()R(H,E,function()d=t()g=f()if g and d-T>1 then i=1 s(format(e,g),c)T=d elseif d-T>1 then m=i and s(j,c)R(H,E,nil)end end)end
CC:
i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("PT")and C[4]==UnitGUID("player")and d("打断→"..b..C[9].."的 ["..C[16].."]")end)
3,建完以上三个基础宏,按照职业开始建以下技能宏(职业技能宏名称随意,无需与红字一样,绿色加粗部分为按需可更改部分)
4,因野外无法自动喊话,因此部分宏只有在副本或战场中才能生效(如战士盾墙持续白字播报,不采用红字的因为容易遮盖其他重要内容)
二,法师:
寒冰屏障:
#show 寒冰屏障
/stopcasting
/施放 寒冰屏障
/run local d,z=UnitHealth("player"),UnitHealthMax("player")if AuraUtil.FindAuraByName("寒冰屏障","player")then SendChatMessage("我已冰箱!!剩余血量:"..d.." ( "..math.modf(d*100/z).."% ) 请注意治疗!!","SAY")end
按第一次,停止施法,开冰箱,往后每按一次,会白字说一句:“我已冰箱,当前剩余生命值XX ,请注意治疗。”按一次喊一次,重复按不会取消冰箱。
变羊术:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="变形术"and C[4]==UnitGUID("player")and d(b..C[9].." >>已被我变羊")end)
/施放 变形术
成功后会会喊话:XXX已被我变羊
法术反制(未命中版):
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("MI")and C[4]==UnitGUID("player")and"法术反制"==C[13]and d("法术反制→"..b..C[9].." ( ".._G[C[15]].." )")end)
/施放 法术反制
/SAY XXX,下一个打断!
在法术反制被免疫、未命中、抵抗后会会喊话:法术反制被XXX抵抗/免疫
如不需要打断链的战斗,请用这个
法术反制(命中版):
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("PT")and C[4]==UnitGUID("player")and d("打断→"..b..C[9].."的 ["..C[16].."]")end)
/stopcasting
/施放 法术反制
三,术士:
恐惧:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="恐惧术"and C[4]==UnitGUID("player")and d(b..C[9].." >>已被我恐惧")end)
/施放 恐惧术
成功后会会喊话:XXX已被我恐惧
放逐(按等级):
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("MI")and C[4]==UnitGUID("player")and"放逐术"==C[13]and d("放逐术→"..b..C[9].." ( ".._G[C[15]].." )")end)
/施放 放逐术
在技能被免疫、未命中、抵抗后会会喊话:放逐被XXX抵抗/免疫
绑定灵魂石:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="灵魂石复活"and C[4]==UnitGUID("player")and d("灵魂石复活→"..b..C[9])end)
/施放 灵魂石复活
四,牧师:
反恐结界:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="防护恐惧结界"and C[4]==UnitGUID("player")and d("防护恐惧结界→"..b..C[9])end)
/施放 防护恐惧结界
/SAY XXX,准备下一个反恐结界!
心灵尖啸:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="心灵尖啸"and C[4]==UnitGUID("player")and d(b..C[9].." >>已被我恐惧")end)
/施放 心灵尖啸
五,小德:
激活:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="激活"and C[4]==UnitGUID("player")and d("激活→"..b..C[9])end)
/施放 激活
六,猎人:
宁神射击:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("MI")and C[4]==UnitGUID("player")and"宁神射击"==C[13]and d("宁神射击→"..b..C[9].." ( ".._G[C[15]].." )")end)
/施放 宁神射击
/SAY XXX,下一个宁神射击!
在宁神被免疫、未命中、抵抗后会会喊话:宁神射击被XXX抵抗/免疫
七,盗贼:
脚踢(未命中版):
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("MI")and C[4]==UnitGUID("player")and"脚踢"==C[13]and d("脚踢→"..b..C[9].." ( ".._G[C[15]].." )")end)
/施放 脚踢
/SAY XXX,下一个打断!
在脚踢被免疫、未命中、抵抗后会会喊话:脚踢被XXX抵抗/免疫
如不需要打断链的战斗,请用这个
脚踢(命中版):
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find("PT")and C[4]==UnitGUID("player")and d("打断→"..b..C[9].."的 ["..C[16].."]")end)
/stopcasting
/施放 脚踢
成功后会会喊话:打断→XXX的XXX技能
八,骑士:
无敌:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="圣盾术"and C[4]==UnitGUID("player")and d("我已施放无敌")end)
/施放 圣盾术(等级 2)
施放后会喊话:我已施放无敌
干涉:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]==" 神圣干涉"and C[4]==UnitGUID("player")and d("神圣干涉→"..b..C[9])end)
/施放 神圣干涉
九,战士:
嘲讽:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]==" 嘲讽"and C[4]==UnitGUID("player")and d("嘲讽→"..b..C[9])end)
/施放 嘲讽
打断:
#showtooltip [stance:1]盾击; [stance:2]盾击; [stance:3]拳击
/run local a=loadstring(GetMacroBody("CC"))()
/stopcasting
/cast [stance:1/2,equipped:盾牌] 盾击
/cast [stance:1/2,noequipped:盾牌]狂暴姿态;拳击
拿盾盾击,没盾切狂暴姿态拳击,在狂暴姿态无论有没有盾,优先拳击
鲁莽:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="鲁莽"and C[4]==UnitGUID("player")and d("我已施放鲁莽")end)
/施放 鲁莽
盾墙(持续播报,野外无效,野外可将最后的SAY改成RAID或PARTY,可在团或队中生效):
/施放 盾墙
/run local g,b,n,a=0,0,"盾墙",loadstring(GetMacroBody("BB"))();a(function()b={AuraUtil.FindAuraByName(n,"player")}g=(b[6] or 0)-GetTime() if g>0 then return ceil(g)end end ,"["..n.."] 已开,剩余 %s 秒","["..n.."] 效果结束!","SAY")
死亡之愿:
/cast 死亡之愿
/run d,z=UnitHealth("player"),UnitHealthMax("player")for i=1,40 do if"死亡之愿"==UnitDebuff("player",i)then SendChatMessage("我已开启 [死亡之愿] ,剩余血量:"..d.." ( "..floor(d*100/z).."% ) 请注意治疗!!")end end
破釜沉舟:
#show 破釜沉舟
/stopcasting
/施放 破釜沉舟
/run local d,z=UnitHealth("player"),UnitHealthMax("player")if AuraUtil.FindAuraByName("破釜沉舟","player")then SendChatMessage("我已破釜!!剩余血量:"..d.." ( "..math.modf(d*100/z).."% ) 请注意治疗!!","SAY")end
按第一次,停止施法,开破釜,往后每按一次,会白字说一句:“我已破釜,当前剩余生命值XX ,请注意治疗。”按一次喊一次,重复按不会取消破釜。
破胆怒吼:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="破胆怒吼"and C[4]==UnitGUID("player")and d(b..C[9].." >>已被我恐惧")end)
/施放 破胆怒吼
挑战怒吼:
/脚本 i=GetRaidTargetIndex("target")local d,b,c=loadstring(GetMacroBody("AA"))()F:SetScript("OnEvent",function()C={c()}m=C[2]:find('[AE][PF][PR]')and C[13]=="挑战怒吼"and C[4]==UnitGUID("player")and d("挑战怒吼→"..b..C[9])end)
/施放 挑战怒吼