Hey,
Viral-Fly-By's old Holy Paladin macro worked like a beast pre-Cata, and I can't get it to work like it used to. Not sure if something is broken with the macro now that it's Cata, or perhaps NA (NoAddiction) somehow changed something and is restricting the macro...
But anyways, my request is that someone or people help convert this macro to a working one which uses all the same functions as this macro. In turn, I will share my PERSONAL 100% WORKING RETRIBUTION PALADIN MACRO. Only three people currently have it, but I've personally coded it from the ground up, using examples from other fine people and building upon it. Right now, I'm ranked on World of Logs at least 4-5 times now in current normal modes. In raids, I'm always #1-#3 spot, and I have to compete with a MM Hunter, Destro Lock, Fire Mage, Assassin Rogue, Enhance Shammy, etc. This macro WILL make you top tier, no problem.In iLvl 362 gear, I'm easily capable of pulling 18k-22k DPS, burst is 24k-27k DPS. It will Salv yourself as well, but does not use any major CDs, you use them yourself.
So, if anyone wants to take it upon themselves to help make this work, you'll get my RET MACRO in return.
[code]#showtooltip Seal of Insight
#VARIABLES
/run vFoL=3000; vHS=6000; vHL=8000; vHOPhp=0.2; vHOPmana=18000; vDFavor=0.2; vIllumNum=0.2; vIllumDmg=5000;
#RAID OR GROUP
/run vGroup="raid"; vNPS=1; vNPE=GetNumRaidMembers(); if vNPE==0 then vGroup="party"; vNPS=0; vNPE=GetNumPartyMembers() end;
#DIVINE SHIELD [Sub 10% Health]
/run if UnitHealth("player")/UnitHealthMax("player")<0.10 and GetSpellCooldown("Divine Shield")==0 and IsUsableSpell("Divine Shield") then SpellStopCasting() CastSpellByName("Divine Shield") end;
#DIVINE PLEA [Sub 50% Mana]
/run if GetSpellCooldown("Divine Plea")==0 and UnitPower("player")/UnitPowerMax("player")<=0.50 then CastSpellByName("Divine Plea") end;
#BEACON OF LIGHT [FOCUS]
/run local f=0; if UnitExists("focus") and UnitInRange("focus")==1 and UnitIsDeadOrGhost("focus")~=1 then for i=1,40 do local d={UnitBuff("focus",i)}; if d[1]=="Beacon of Light" and d[8]=="player" and d[7]-GetTime()>=3 then f=1; break end end if f==0 then RunMacroText("/cast [@focus] Beacon of Light") end end;
#DIVINE ILLUMINATION
/run local a,n,d=0,0,0; for i=vNPS,vNPE do local tt="player"; if i>0 then tt=vGroup..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then a=UnitHealthMax(tt)-UnitHealth(tt) end; if a>1000 then n=n+1 d=d+a end end; if n>(vNPE*vIllumNum) and d/n>vIllumDmg and GetSpellCooldown("Divine Illumination")==0 then CastSpellByName("Divine Illumination") end;
#HEALING LOGIC
/run local e,n,h,hm=UnitExists,UnitName,UnitHealth,UnitHealthMax; local f,w,fh,m="focus","focus",0,0; if e(f) then fh=hm(f)-h(f) end; for i=vNPS,vNPE do local a,tt=0,"player"; if i>0 then tt=vGroup..i end; if n(tt)~=n(f) then a=hm(tt)-h(tt) end; if a>m and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then m=a w=tt end end; if fh>2*m then m=fh end; if m>0 then vHealTarget=w vHealDmg=m else vHealTarget=nil vHealDmg=0 end
#HEALS AND MISC
/run local w,m=vHealTarget,vHealDmg; if w~=nil then local n,cd,ud,sp=UnitName,GetSpellCooldown,UnitDebuff,GetUnitSpeed("player"); local p=UnitHealth(w)/UnitHealthMax(w); local s=nil; if n(w)~=n("player") and p<vHOPhp and IsSpellInRange("Hand of Protection",w)==1 and UnitPowerMax(w)>vHOPmana and cd("Hand of Protection")==0 and UnitAffectingCombat(w)==1 and not ud(w,"Forbearance") and not ud(w,"Ice Block") then s="Hand of Protection" else if p<vDFavor and cd("Divine Favor")==0 then CastSpellByName("Divine Favor") end if cd("Holy Shock")==0 and (m>=vHS or (sp>0 and m>=vFoL)) then s="Holy Shock" elseif sp>0 and m>=vFoL and UnitBuff("player","Infusion of Light") then s="Flash of Light" elseif sp==0 then if m>=vHL then s="Holy Light" elseif m>=vFoL then s="Flash of Light" end end end; if s~=nil then RunMacroText("/cast [@"..w.."] "..s) end end
#JUDGEMENT
/run if UnitExists("focustarget") and UnitInRange("focus")==1 and UnitAffectingCombat("focus")==1 and GetSpellCooldown("Judgement of Light") == 0 then RunMacroText("/cast [@focustarget] Judgement of Light") end;
#SACRED SHIELD [DON'T NEED THIS ANYMORE.]
/run local f=0; if UnitExists("focus") and UnitInRange("focus")==1 and UnitIsDeadOrGhost("focus")~=1 then for i=1,40 do local d={UnitBuff("focus",i)}; if d[1]=="Sacred Shield" and d[8]=="player" and d[7]-GetTime()>=3 then f=1; break end end if f==0 then RunMacroText("/cast [@focus] Sacred Shield") end end;
#CLEANSE RAID/PARTY [OPTIONAL]
/run local w=nil; local m=0; for i=vNPS,vNPE do local tt="player"; if i>0 then tt=vGroup..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do local d={UnitDebuff(tt,j)}; if (d[5]=="Magic" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Cleanse") end;
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN")
/script CombatLogClearEntries()[code]
The Overall Logic:
1. If you are under 10% health and Divine Shield is available, then stop casting and Divine Shield.
2. If you are under 50% mana and Divine Plea is available, then Divine Plea.
3. If you have a focus in range and your Beacon of Light is either not present or has 3 seconds or less remaining, then Beacon of Light your focus.
4. If at least 20% of the party/raid have taken at least 1000 damage and the average damage per person is over 5000, use Divine Illumination if available.
5. If a party/raid member needs healing, heal them.
6. If your focus is in range and has a target and Judgement of Light is ready, then Judge your focus's target.
7. If your you have a focus in range and Sacred Shield is either not present or has 3 seconds or less remaining, then Sacred Shield your focus.
8. If a party/raid member has a debuff, Cleanse.
The Healing Logic:
1. If the target is below 20% hp, within 30yds, is a caster (max power > 18K), and doesn't have Forbearance, then Hand of Protection.
2. If the target is under 10% hp and Divine Favor is available, then Divine Favor for the heal.
3. If Holy Shock is ready and the target needs 6000 or more healing, then Holy Shock.
4. If target needs 8000 or more healing, then Holy Light.
5. If target needs 3000 or more healing, then Flash of Light.
6. If no target needs at least 3000 healing, do nothing.
Customization:
There are 8 variables at the beginning of the 1st line. These control which spell is chosen for which situation and should be adjusted for how big your heals hit.
1. vFoL: The minimum damage taken to be healed by a Flash of Light (3000 in code above).
2. vHS: The minimum damage taken to be healed by Holy Shock (6000 in code above).
3. vHL: The minimum damage taken to be healed by Holy Light (8000 in code above).
4. vHOPhp: The percentage health at which Hand of Protection will be used on a caster (0.20 for 20% in code above).
5. vHOPmana: The amount of "max power" a target must have to be considered for Hand of Protection (18000 in code above).
6. vDFavor: The percentage health at which Divine Favor will be used for the next heal (0.1 for 10% in code above).
7. vIllumNum: The percentage of party/raid members that must have taken damage to trigger use of Divine Illumination (0.2 for 20% in code above).
8. vIllumDmg: The average per-person damage taken that must exist to trigger use of Divine Illumination (5000 in code above).
---------- Post added at 04:12 AM ---------- Previous post was at 04:09 AM ----------
This is what I'd preferably would want the macro do in terms of logic!
Overall Logic:
1. If you don't have Seal of Insight on you, then Seal of Insight.
2. If you are under 10% health and Divine Shield is available, then stop casting and Divine Shield.
3. If you are under 10% health and Divine Shield is NOT available, use Healthstone.
4. If you are under 50% health and Divine Protection is available, then stop casting and Divine Protection.
5. If you are under 50% mana and Divine Plea is available, then Divine Plea.
6. If you are under the effect of Divine Plea, then Avenging Wrath.
7. If you are under the effect of Avenging Wrath, then use trinket (1st slot, then 2nd slot).
8. If you have a focus and your Beacon of Light is either not present or has 3 seconds or less remaining, then Beacon of Light your focus. (NOTE: Beacon of Light target only receives 50% of healing, not 100%!)
9. If you have a focus in range (30 yrds) and focus has taken damage to reduce health below 10% then Hand of Sacrifice your focus if available.
10. If a party/raid member that is below 150k health and has 100% threat from boss, then Hand of Salvation if available.
11. If a party/raid member's speed is below normal running speed, and NOT backpeddling, then Hand of Freedom if available.
12. If at least 20% of the party/raid have taken at least 10000 damage and the average damage per person is over 5000 and Holy Power is >2 or =3, use Light of Dawn.
13. If at least 40% of the party/raid have taken at least 25000 damage and the average damage per person is over 15000, use Holy Radiance if available.
14. If at least 60% of the party/raid have taken at least 50000 damage and the average damage per person is over 35000, use Divine Favor if available.
15. If at least 100% of the party/raid have taken at least 90000 damage and the average damage per person is over 50000, use Guardian of Ancient Kings if available.
16. If a party/raid member needs healing, heal them.
17. If your focus is in range and has a target and Judgement is ready, then Judge your focus's target.
The Healing Logic:
1. If the target is below 20% hp, within 30yds, is a caster (max power > 75K), and doesn't have Forbearance, then Hand of Protection.
2. If Holy Shock is ready and the target needs 10000 or more healing and caster is or is not moving, then Holy Shock.
3. If target needs 35000 or more healing [and mana is above 50%?], then Divine Light. (This is used for periods of heavy damage, semi mana efficient.)
4. If target needs 15000 or more healing [and mana is above 10%?], then Holy Light. (This is used as filler, mana efficient and heals in 2 seconds.)
5. If target needs 25000 or more healing [and mana is above 75%?], then Flash of Light. (This is used for when target suddenly falls below a certain threshold, and needs to be topped off to a certain point. 1.5 second cast time. NOT mana efficient. Do not spam.)
6. If target needs 20000 or more healing [and mana is above 5%?] and caster is or is not moving and Holy Power is >2 or =3 then cast Word of Glory.
7. If no target needs at least 5000 healing, do nothing.
Customization:
There are variables at the beginning of the 1st line. These control which spell is chosen for which situation and should be adjusted for how big your heals hit.
1. vHS: The minimum damage taken to be healed by Holy Shock (10000 in code above).
2. vHL: The minimum damage taken to be healed by Holy Light (15000 in code above).
3. vDL: The minimum damage taken to be healed by Divine Light (35000 in code above).
4. vFoL: The minimum damage taken to be healed by a Flash of Light (25000 in code above).
5. vHOPhp: The percentage health at which Hand of Protection will be used on a caster (0.20 for 20% in code above).
6. vHOPmana: The amount of "max power" a target must have to be considered for Hand of Protection (75000 in code above).
7. vLoD: The percentage of party/raid members that must have taken damage to trigger use of Light of Dawn (0.2 for 20% in code above).
8. vLoDDmg: The average per-person damage taken that must exist to trigger use of Light of Dawn (5000 in code above).
9. vHR: The percentage of party/raid members that must have taken damage to trigger use of Holy Radiance (0.4 for 40% in code above).
10. vHRDmg: The average per-person damage taken that must exist to trigger use of Holy Radiance (15000 in code above).
11. vDFavor: The percentage of party/raid members that must have taken damage to trigger use of Divine Favor (0.6 for 60% in code above).
12. vDFavorDmg: The average per-person damage taken that must exist to trigger use of Divine Favor (35000 in code above).
13. vGoAK: The percentage of party/raid members that must have taken damage to trigger use of Guardian of Ancient Kings (1 for 100% in code above).
14. vGoAKDmg: The average per-person damage taken that must exist to trigger use of Guardian of Ancient Kings (50000 in code above).