The "exploit" in this is that you have to use
LuaNinja to take off the script blocks from Blizzard.
1. Download
LuaNinja
2. Make sure your directory to get to WoW on a private server is still C:\Users\Public\Games\World of Warcraft\WoW.exe
3. Download
SuperDuperMacro (AddOn which allows you to exceed the macro character limit)
4. Get on your pally and make your talent build:
Talent Calculator - World of Warcraft
and add the following talents (VIP Only - if you're not VIP, you still probably need the following talents, you'll just have to compromise other talents -- do not compromise any learned spells through talents on this build, though):
RETRIBUTION
3rd Col -- Vindication 1/2, Conviction 5/5, Pursuit of Justice 2/2
4th Col -- Eye for an Eye 2/2
5. Please note: I copied the following macro from
Viral Fly-by's Macro Library
Type /sdm and create a new macro. Copy and paste the following:
Code:
/startattack
/run vUseHolyWrath=true
/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(vJoL)~="function" then vJoL=function() if GetSpellCooldown("Judgement of Light")==0 and IsUsableSpell("Judgement of Light") and IsSpellInRange("Judgement of Light","target") then CastSpellByName("Judgement of Light") end end end;
/run if type(vHotR)~="function" then vHotR=function() if GetSpellCooldown("Hammer of the Righteous")==0 and IsUsableSpell("Hammer of the Righteous") and IsSpellInRange("Hammer of the Righteous","target") then CastSpellByName("Hammer of the Righteous") end end end;
/run if type(vHoW)~="function" then vHoW=function() if GetSpellCooldown("Hammer of Wrath")==0 and IsUsableSpell("Hammer of Wrath") and IsSpellInRange("Hammer of Wrath","target") and UnitHealth("target")/UnitHealthMax("target")<0.2 then CastSpellByName("Hammer of Wrath") end end end;
/run if type(vCS)~="function" then vCS=function() if GetSpellCooldown("Crusader Strike")==0 and IsUsableSpell("Crusader Strike") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Crusader Strike") end end end;
/run if type(vDS)~="function" then vDS=function() if GetSpellCooldown("Divine Storm")==0 and IsUsableSpell("Divine Storm") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Divine Storm") end end end;
/run if type(vCons)~="function" then vCons=function() if GetSpellCooldown("Consecration")==0 and IsUsableSpell("Consecration") and IsSpellInRange("Crusader Strike","target") then CastSpellByName("Consecration") end end end;
/run if type(vExo)~="function" then vExo=function() if UnitBuff("player", "The Art of War") and GetSpellCooldown("Exorcism")==0 and IsUsableSpell("Exorcism") and IsSpellInRange("Exorcism","target") then CastSpellByName("Exorcism") end end end;
/run if type(vHWrath)~="function" then vHWrath=function() if vUseHolyWrath and GetSpellCooldown("Holy Wrath")==0 and IsUsableSpell("Holy Wrath") and IsSpellInRange("Hammer of the Righteous","target") then CastSpellByName("Holy Wrath") end end end;
/run if type(vPlea)~="function" then vPlea=function(m) if GetSpellCooldown("Divine Plea")==0 and UnitPower("player")/UnitPowerMax("player")<=m then CastSpellByName("Divine Plea") end end end;
/run if UnitHealth("player")/UnitHealthMax("player")<0.10 and GetSpellCooldown("Divine Shield")==0 and IsUsableSpell("Divine Shield") then SpellStopCasting() CastSpellByName("Divine Shield") end;
/run if (vRetInt==nil or GetTime()-vRetInt>1) and (UnitCastingInfo("target") or UnitChannelInfo("target")) then if IsUsableSpell("Hammer of Justice") and GetSpellCooldown("Hammer of Justice")==0 and IsSpellInRange("Hammer of Justice", "target")==1 then SpellStopCasting() CastSpellByName("Hammer of Justice") vRetInt=GetTime() elseif IsUsableSpell("Arcane Torrent") and GetSpellCooldown("Arcane Torrent")==0 and IsSpellInRange("Hammer of the Righteous", "target")==1 then SpellStopCasting() CastSpellByName("Arcane Torrent") vRetInt=GetTime() end end
/run local s=GetUnitSpeed("player"); if GetSpellCooldown("Hand of Freedom")==0 and s>0 and s<7 then RunMacroText("/cast [@player] Hand of Freedom") end;
/run vPlea(0.20)
/run if UnitAffectingCombat("player") and UnitHealth("target")>200000 and GetSpellCooldown("Avenging Wrath")==0 and IsUsableSpell("Avenging Wrath") and IsSpellInRange("Crusader Strike","target") then if UnitBuff("player","Seal of Corruption") or UnitBuff("player","Seal of Vengeance") then local i=1 while(i<=40)do local a={UnitDebuff("target",i)}; if (a[1]=="Holy Vengeance" or a[1]=="Blood Corruption") and a[8]=="player" and a[4]==5 then break else i=i+1 end end; if i<=40 then CastSpellByName("Avenging Wrath") end else CastSpellByName("Avenging Wrath") end end
/run if vRet==0 then vHoW() vJoL() vHotR() vCons() vExo() vHWrath() vPlea(0.70) end
/run if vRet==1 then vJoL() vHoW() vHotR() Cons() vExo() vHWrath() vPlea(0.70) end
/run if vRet==2 then vJoL() vHotR() vHoW() vCons() vExo() vHWrath() vPlea(0.70) end
/run if vRet==3 then vJoL() vHotR() vHoW() vCons() vExo() vHWrath() vPlea(0.70) end
/run local f=0; for i=1,40 do local d={UnitBuff("player",i)}; if d[1]=="Sacred Shield" and d[8]=="player" then f=1 break end end; if f==0 then RunMacroText("/cast [@player] Sacred Shield") end;
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
Originally Posted by
Viral Fly-by
The Overall Logic:
- If you are under 10% health and Divine Shield is available, then stop casting and Divine Shield.
- If you have at least 25K threat and either have pulled aggro or above 90% of aggro threat, then Hand of Salvation.
- If the target is casting and either Hammer of Justice, Arcane Torrent, or Holy Wrath are available, then interrupt.
- If you are under 20% mana and Divine Plea is available, then Divine Plea.
- If you are moving, are slowed, and Hand of Freedom is available, then Hand of Freedom.
- If your target has more 200K hp and is in melee range and Avenging Wrath is ready...
- If you have Seal of Corruption/Vengeance on and the debuff is fully stacked to 5, then Avenging Wrath.
- Else (some other Seal) Avenging Wrath.
- Use the highest priority DPS skill that is off cooldown and in range.
- If below 70% mana and Divine Plea is available, then Divine Plea.
- If your Sacred Shield is not on you, Sacred Shield yourself.
6. Go to LuaNinja's LoaderGui and open the process list to WoW, then under module:
Inject
for path, click the ... and click LuaNinja
for export, type in: Initialize