here is a working (tested it myself) german version of the retribution macro:
Code:
/startattack
/run local n=0; local sets={{48602,48631,1},{50324,50328,10},{51160,51164,10},{51275,51279,10}}; local slots={"HeadSlot","ShoulderSlot","ChestSlot","HandsSlot","LegsSlot"}; for i=1,#slots do local id=tonumber(({string.find(GetInventoryItemLink("player", ({GetInventorySlotInfo(slots[i])})[1]), "^\124c%x+\124Hitem:([^:]+):.*\124h%[.*%]")})[3]); for j=1,#sets do if id>=sets[j][1] and id<=sets[j][2] then n=n+sets[j][3] end end end; local a=n-math.floor(n/10)*10; local b=math.floor(n/10); vRet=0; if a>1 and b<2 then vRet=1 elseif a>1 and b>1 then vRet=2 elseif b>3 then vRet=3 end;
/run if type(vJoW)~="function" then vJoW=function() if GetSpellCooldown("Richturteil der Weisheit")==0 and IsUsableSpell("Richturteil der Weisheit") and IsSpellInRange("Richturteil der Weisheit","target") then CastSpellByName("Richturteil der Weisheit") end end end;
/run if type(vHoW)~="function" then vHoW=function() if GetSpellCooldown("Hammer des Zorns")==0 and IsUsableSpell("Hammer des Zorns") and IsSpellInRange("Hammer des Zorns","target") and UnitHealth("target")/UnitHealthMax("target")<0.2 then CastSpellByName("Hammer des Zorns") end end end;
/run if type(vCS)~="function" then vCS=function() if GetSpellCooldown("Kreuzfahrerstoß")==0 and IsUsableSpell("Kreuzfahrerstoß") and IsSpellInRange("Kreuzfahrerstoß","target") then CastSpellByName("Kreuzfahrerstoß") end end end;
/run if type(vDS)~="function" then vDS=function() if GetSpellCooldown("Göttlicher Sturm")==0 and IsUsableSpell("Göttlicher Sturm") and IsSpellInRange("Kreuzfahrerstoß","target") then CastSpellByName("Göttlicher Sturm") end end end;
/run if type(vCons)~="function" then vCons=function() if GetSpellCooldown("Weihe")==0 and IsUsableSpell("Weihe") and IsSpellInRange("Kreuzfahrerstoß","target") then CastSpellByName("Weihe") end end end;
/run if type(vExo)~="function" then vExo=function() if UnitBuff("player", "Die Kunst des Krieges") and GetSpellCooldown("Exorzismus")==0 and IsUsableSpell("Exorzismus") and IsSpellInRange("Exorzismus","target") then CastSpellByName("Exorzismus") end end end;
/run if type(vPlea)~="function" then vPlea=function(m) if GetSpellCooldown("Göttliche Bitte")==0 and UnitPower("player")/UnitPowerMax("player")<=m then CastSpellByName("Göttliche Bitte") end end end;
/run if UnitHealth("player")/UnitHealthMax("player")<0.10 and GetSpellCooldown("Gottesschild")==0 and IsUsableSpell("Gottesschild") then SpellStopCasting() CastSpellByName("Gottesschild") end;
/run local t={UnitDetailedThreatSituation("player","target")}; if (t[1]==1 or (t[5] ~=nil and t[5]>25000 and t[3]>90)) and GetSpellCooldown("Hand der Erlösung")==0 then RunMacroText("/cast [@player] Hand der Erlösung") end
/run if (vRetInt==nil or GetTime()-vRetInt>1) and (UnitCastingInfo("target") or UnitChannelInfo("target")) then if IsUsableSpell("Hammer der Gerechtigkeit") and GetSpellCooldown("Hammer der Gerechtigkeit")==0 and IsSpellInRange("Hammer der Gerechtigkeit", "target")==1 then SpellStopCasting() CastSpellByName("Hammer der Gerechtigkeit") vRetInt=GetTime() elseif IsUsableSpell("Arkaner Strom") and GetSpellCooldown("Arkaner Strom")==0 and IsSpellInRange("Kreuzfahrerstoß", "target")==1 then SpellStopCasting() CastSpellByName("Arkaner Strom") vRetInt=GetTime() end end
/run local s=GetUnitSpeed("player"); if GetSpellCooldown("Hand der Freiheit")==0 and s>0 and s<7 then RunMacroText("/cast [@player] Hand der Freiheit") end;
/run vPlea(0.20)
/run if UnitAffectingCombat("player") and UnitHealth("target")>200000 and GetSpellCooldown("Zornige Vergeltung")==0 and IsUsableSpell("Zornige Vergeltung") and IsSpellInRange("Kreuzfahrerstoß","target") then if UnitBuff("player","Siegel der Verderbnis") or UnitBuff("player","Siegel der Vergeltung") then local i=1 while(i<=40)do local a={UnitDebuff("target",i)}; if (a[1]=="Heilige Vergeltung" or a[1]=="Blutverderbnis") and a[8]=="player" and a[4]==5 then break else i=i+1 end end; if i<=40 then CastSpellByName("Zornige Vergeltung") end else CastSpellByName("Zornige Vergeltung") end end
/run if vRet==0 then vHoW() vCS() vJoW() vDS() vCons() vExo() vPlea(0.70) end
/run if vRet==1 then vJoW() vHoW() vCS() vDS() vCons() vExo() vPlea(0.70) end
/run if vRet==2 then vJoW() vDS() vHoW() vCS() vCons() vExo() vPlea(0.70) end
/run if vRet==3 then vDS() vCS() vJoW() vHoW() vCons() vExo() vPlea(0.70) end
/run local f=0; for i=1,40 do local d={UnitBuff("player",i)}; if d[1]=="Geheiligter Schild" and d[8]=="player" then f=1 break end end; if f==0 then RunMacroText("/cast [@player] Geheiligter Schild") end;
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
but there is a bug in your macro. It casts hand of freedom when you run backwarts because the speed is below 70%
and could you change that the sacred shield is only casted when you have atleast 70% mana?