Here is my solo Retribution Paladin macro for
Talent Calculator - World of Warcraft
Code:
/run if IsUsableSpell("Lay on Hands") and GetSpellCooldown("Lay on Hands")==0 and UnitHealth("Player")/UnitHealthMax("Player")<0.20 and not UnitDebuff("player", "Forbearance") then RunMacroText("/cast [@player] Lay on Hands") end
/run if IsUsableSpell("Hammer of Wrath")==1 and IsSpellInRange("Hammer of Wrath", "target")==1 and GetSpellCooldown("Hammer of Wrath")==0 then CastSpellByName("Hammer of Wrath") end
/run if (_G["RetInterrupt"]==nil or GetTime()-_G["RetInterrupt"]>1) then if IsUsableSpell("Hammer of Justice") and (UnitCastingInfo("target") or UnitChannelInfo("target")) and GetSpellCooldown("Hammer of Justice")==0 and IsSpellInRange("Hammer of Justice", "target")==1 then SpellStopCasting() CastSpellByName("Hammer of Justice") _G["RetInterrupt"]=GetTime() elseif IsUsableSpell("Arcane Torrent") and (UnitCastingInfo("target") or UnitChannelInfo("target")) and GetSpellCooldown("Arcane Torrent")==0 and IsSpellInRange("Crusader Strike", "target")==1 then SpellStopCasting() CastSpellByName("Arcane Torrent") _G["RetInterrupt"]=GetTime() end end
/run i=1 while(i<=40)do a={UnitDebuff("player", i)} if (a[5]=="Magic" or a[5]=="Disease" or a[5]=="Poison") then break else i=i+1 end end; if i<=40 and IsUsableSpell("Cleanse") then RunMacroText("/cast [@player] Cleanse") end
/run if IsUsableSpell("Hammer of Justice") and GetSpellCooldown("Hammer of Justice")==0 and IsSpellInRange("Hammer of Justice", "target")==1 and IsUsableSpell("Hammer of Justice") and UnitPlayerControlled("target") then CastSpellByName("Hammer of Justice") end
/run if IsUsableSpell("Avenging Wrath") and IsSpellInRange("Crusader Strike", "target")==1 and GetSpellCooldown("Avenging Wrath")==0 and UnitPlayerControlled("target") and UnitAffectingCombat("player") and not UnitIsFriend("player", "target") then CastSpellByName("Avenging Wrath") end
/run if IsUsableSpell("Divine Plea") and GetSpellCooldown("Divine Plea")==0 and UnitMana("player")/UnitManaMax("player")<0.75 and not IsMounted() then CastSpellByName("Divine Plea") end
/run if IsUsableSpell("Sacred Shield") and not UnitBuff("player", "Sacred Shield") and UnitHealth("Player")/UnitHealthMax("Player")<0.60 and not IsMounted() and UnitAffectingCombat("player") and IsSpellInRange("Repentance", "target")==1 then RunMacroText("/cast [@player] Sacred Shield") end
/run if IsUsableSpell("Greater Blessing of Might") and not UnitBuff("player", "Greater Blessing of Might") and not IsMounted() then RunMacroText("/cast [@player] Greater Blessing of Might") end
/run if IsUsableSpell("Seal of Corruption") and not UnitBuff("player", "Seal of Corruption") and not IsMounted() then CastSpellByName("Seal of Corruption") end
/run if IsUsableSpell("Flash of Light") and UnitBuff("player", "The Art of War") and UnitHealth("Player")/UnitHealthMax("Player")<0.80 then RunMacroText("/cast [@player] Flash of Light") end
/run if IsUsableItem("TRINKET HERE") and GetItemCooldown("TRINKET HERE")==0 and UnitAffectingCombat("player") and IsSpellInRange("Hammer of Justice", "target")==1 then UseItemByName("TRINKET HERE") end
/run if IsUsableItem("TRINKET HERE") and GetItemCooldown("TRINKET HERE")==0 and UnitAffectingCombat("player") and IsSpellInRange("Hammer of Justice", "target")==1 then UseItemByName("TRINKET HERE") end
/run if IsUsableSpell("Judgement of Justice") and GetSpellCooldown("Judgement of Justice")==0 and IsSpellInRange("Judgement of Justice", "target")==1 and UnitPlayerControlled("target") then CastSpellByName("Judgement of Justice") end
/run if IsUsableSpell("Judgement of Wisdom") and GetSpellCooldown("Judgement of Wisdom")==0 and IsSpellInRange("Judgement of Wisdom", "target")==1 and not UnitPlayerControlled("target") then CastSpellByName("Judgement of Wisdom") end
/run b={UnitCreatureType("target")} if (b[1]=="Undead" or b[1]=="Demon") and IsUsableSpell("Holy Wrath") and GetSpellCooldown("Holy Wrath")==0 and IsSpellInRange("Crusader Strike", "target")==1 then CastSpellByName("Holy Wrath") end
/run if IsUsableSpell("Crusader Strike") and GetSpellCooldown("Crusader Strike")==0 and IsSpellInRange("Crusader Strike", "target")==1 then CastSpellByName("Crusader Strike") end
/run if IsUsableSpell("Divine Storm") and GetSpellCooldown("Divine Storm")==0 and IsSpellInRange("Crusader Strike", "target")==1 then CastSpellByName("Divine Storm") end
/run if IsUsableSpell("Exorcism") and UnitBuff("player", "The Art of War") and GetSpellCooldown("Exorcism")==0 and IsSpellInRange("Exorcism", "target")==1 then CastSpellByName("Exorcism") end
/run if IsUsableSpell("Hand of Reckoning") and GetSpellCooldown("Hand of Reckoning")==0 and IsSpellInRange("Hand of Reckoning", "target")==1 and not UnitAffectingCombat("target") and not UnitPlayerControlled("target") then CastSpellByName("Hand of Reckoning") end
/run if IsMounted() and not UnitBuff("player", "Crusader Aura") then CastSpellByName("Crusader Aura") elseif not IsMounted() and not UnitBuff("player", "Retribution Aura") and not (UnitCastingInfo("player") or UnitChannelInfo("player")) then CastSpellByName("Retribution Aura") end
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
/startattack [exists,harm,nodead]
Logic
1. Lay on Hands if below 20% health
2. Hammer of Wrath if target below 20% health
3. Interrupt spells being cast/channeld with Arcane Torrent or Hammer of Justice will not burn both cooldowns thanks to Viral Fly-by!
4. Cleanse Magic, Poison or Disease on you
5. Hammer of Justice if PvP target
6. Avenging Wrath if PvP target and in melee range
7. Divine Plea if below 75% mana
8. Sacred Shield if below 60% health
9. Buff with Greater Blessing of Might, not when on mount
10. Buff with Seal of Corruption, not when on mount
11. Flash of Light if below 80% health and has The Art of War buff
12. Trinkets if within 10 yards from target, you have to edit trinkets yourself
13. Judgement of Justice if PvP target else Judgement of Wisdom
14. Holy Wrath if undead or demon and in melee range
15. Crusader Strike
16. Divine Storm if in melee range
17. Exorcism if has The Art of War buff
18. Hand of Reckoning if target is not in combat and not a player, use this to pull mobs
19. Crusader Aura if mounted else Retribution Aura
Change all instance of "TRINKET HERE" to your trinkets else just remove it
Have fun!