Priest Specific Macro Collection

Post Reply
Ihavenoclothes
Posts: 7
Likes: 1 time

Priest Specific Macro Collection

Post by Ihavenoclothes » Fri Feb 16, 2024 2:15 pm

Hello Turtles, I've found several macros that I use on my Priest from various places. Just putting together a collection of these in a post that someone else may find.

-- Self-Buffs

/script if not buffed("Inner Fire", 'player') then CastSpellByName("Inner Fire") else if not buffed("Power Word: Fortitude", 'player') then CastSpellByName("Power Word: Fortitude",1) end;end

--Smite

/script if not buffed("Smite", 'target') then CastSpellByName("Smite") end

--Shoot (Wand)

/script if (UnitName('target')==nil) then TargetNearestEnemy() else if not IsAutoRepeatAction(12) then CastSpellByName("Shoot") end;end

Drubarrymooer
Posts: 1136
Has liked: 36 times
Likes: 50 times

Re: Priest Specific Macro Collection

Post by Drubarrymooer » Fri Feb 16, 2024 3:40 pm

Credit to Itako who gave me this one for shackling targets.

/cast Shackle Undead(Rank 3)
/run SetRaidTarget("target", 6)

Swap the last number of the macro for your mark:
8 = Skull, 7 = Cross, 6 = Square, 5 = Moon, 4 = Triangle, 3 = Diamond, 2 = Circle, 1 = Star

Credit to Magusar who gave me a spammable mindflay macro.

/run if pfUI.castbar.player:GetAlpha() ~= 1 then CastSpellByName("Mind Flay") end
#showtooltip Mind Flay

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Sat Feb 17, 2024 6:12 am

-=Inner Focus + Flash Heal + Heal=-
Rank based on target level, target health, remaining mana, and active Inner Focus. With ALT held down, Inner Focus is used.
/script local UL,UM,NS,UT,AH=UnitLevel,UnitMana;local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Inner Focus";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function BIF() return buffed("Inner Focus")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;AH=UnitHealthMax(UT)-UnitHealth(UT);if not IsAltKeyDown() or BIF() or not GotSpell() then if UnitHealth(UT)>(UnitHealthMax(UT)*0.25) then if UL("player")>59 and ((UM("player")>709) or BIF()) and AH>1966 and GotSpell("Greater Heal","Rank 5") then CastSpellByName("Greater Heal(Rank 5)");else if UL("player")>57 and ((UM("player")>654) or BIF()) and AH>1798 and GotSpell("Greater Heal","Rank 4") then CastSpellByName("Greater Heal(Rank 4)");else if UL("player")>51 and ((UM("player")>544) or BIF()) and AH>1437 and GotSpell("Greater Heal","Rank 3") then CastSpellByName("Greater Heal(Rank 3)");else if UL("player")>45 and ((UM("player")>454) or BIF()) and AH>1149 and GotSpell("Greater Heal","Rank 2") then CastSpellByName("Greater Heal(Rank 2)");else if UL("player")>39 and ((UM("player")>369) or BIF()) and AH>899 and GotSpell("Greater Heal","Rank 1") then CastSpellByName("Greater Heal(Rank 1)");else if UL("player")>33 and ((UM("player")>304) or BIF()) and AH>712 and GotSpell("Heal","Rank 4") then CastSpellByName("Heal(Rank 4)");else if UL("player")>27 and ((UM("player")>254) or BIF()) and AH>566 and GotSpell("Heal","Rank 3") then CastSpellByName("Heal(Rank 3)");else if UL("player")>21 and ((UM("player")>204) or BIF()) and AH>429 and GotSpell("Heal","Rank 2") then CastSpellByName("Heal(Rank 2)");else if UL("player")>15 and ((UM("player")>154) or BIF()) and AH>295 and GotSpell("Heal","Rank 1") then CastSpellByName("Heal(Rank 1)");else if UL("player")>9 and ((UM("player")>74) or BIF()) and AH>135 and GotSpell("Lesser Heal","Rank 3") then CastSpellByName("Lesser Heal(Rank 3)");else if UL("player")>3 and ((UM("player")>44) or BIF()) and AH>71 and GotSpell("Lesser Heal","Rank 2") then CastSpellByName("Lesser Heal(Rank 2)");else if UL("player")>0 and ((UM("player")>29) or BIF()) and AH>46 and GotSpell("Lesser Heal","Rank 1") then CastSpellByName("Lesser Heal(Rank 1)");else CastSpellByName("Lesser Heal(Rank 1)");end;end;end;end;end;end;end;end;end;end;end;end;else if UL("player")>55 and ((UM("player")>379) or BIF()) and AH>812 and GotSpell("Flash Heal","Rank 7") then CastSpellByName("Flash Heal(Rank 7)");else if UL("player")>49 and ((UM("player")>314) or BIF()) and AH>644 and GotSpell("Flash Heal","Rank 6") then CastSpellByName("Flash Heal(Rank 6)");else if UL("player")>44 and ((UM("player")>264) or BIF()) and AH>518 and GotSpell("Flash Heal","Rank 5") then CastSpellByName("Flash Heal(Rank 5)");else if UL("player")>37 and ((UM("player")>214) or BIF()) and AH>400 and GotSpell("Flash Heal","Rank 4") then CastSpellByName("Flash Heal(Rank 4)");else if UL("player")>31 and ((UM("player")>157) or BIF()) and AH>327 and GotSpell("Flash Heal","Rank 3") then CastSpellByName("Flash Heal(Rank 3)");else if UL("player")>25 and ((UM("player")>154) or BIF()) and AH>258 and GotSpell("Flash Heal","Rank 2") then CastSpellByName("Flash Heal(Rank 2)");else if UL("player")>19 and ((UM("player")>124) or BIF()) and AH>193 and GotSpell("Flash Heal","Rank 1") then CastSpellByName("Flash Heal(Rank 1)");else CastSpellByName("Lesser Heal(Rank 1)");end;end;end;end;end;end;end;end;else CastSpellByName("Inner Focus");end;
Alternative
/script local UL,UM,NS,UT,AH=UnitLevel,UnitMana;local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Inner Focus";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function BIF() return buffed("Inner Focus")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;AH=UnitHealthMax(UT)-UnitHealth(UT);if not IsAltKeyDown() or BIF() or not GotSpell() then if UnitHealth(UT)<(UnitHealthMax(UT)*0.25) then if UL("player")>55 and ((UM("player")>379) or BIF()) and AH>812 and GotSpell("Flash Heal","Rank 7") then NS="Flash Heal(Rank 7)";else if UL("player")>49 and ((UM("player")>314) or BIF()) and AH>644 and GotSpell("Flash Heal","Rank 6") then NS="Flash Heal(Rank 6)";else if UL("player")>44 and ((UM("player")>264) or BIF()) and AH>518 and GotSpell("Flash Heal","Rank 5") then NS="Flash Heal(Rank 5)";else if UL("player")>37 and ((UM("player")>214) or BIF()) and AH>400 and GotSpell("Flash Heal","Rank 4") then NS="Flash Heal(Rank 4)";else if UL("player")>31 and ((UM("player")>157) or BIF()) and AH>327 and GotSpell("Flash Heal","Rank 3") then NS="Flash Heal(Rank 3)";else if UL("player")>25 and ((UM("player")>154) or BIF()) and AH>258 and GotSpell("Flash Heal","Rank 2") then NS="Flash Heal(Rank 2)";else if UL("player")>19 and ((UM("player")>124) or BIF()) and AH>193 and GotSpell("Flash Heal","Rank 1") then NS="Flash Heal(Rank 1)";else NS="Lesser Heal(Rank 1)";end;end;end;end;end;end;end;else if UL("player")>59 and ((UM("player")>709) or BIF()) and AH>1966 and GotSpell("Greater Heal","Rank 5") then NS="Greater Heal(Rank 5)";else if UL("player")>57 and ((UM("player")>654) or BIF()) and AH>1798 and GotSpell("Greater Heal","Rank 4") then NS="Greater Heal(Rank 4)";else if UL("player")>51 and ((UM("player")>544) or BIF()) and AH>1437 and GotSpell("Greater Heal","Rank 3") then NS="Greater Heal(Rank 3)";else if UL("player")>45 and ((UM("player")>454) or BIF()) and AH>1149 and GotSpell("Greater Heal","Rank 2") then NS="Greater Heal(Rank 2)";else if UL("player")>39 and ((UM("player")>369) or BIF()) and AH>899 and GotSpell("Greater Heal","Rank 1") then NS="Greater Heal(Rank 1)";else if UL("player")>33 and ((UM("player")>304) or BIF()) and AH>712 and GotSpell("Heal","Rank 4") then NS="Heal(Rank 4)";else if UL("player")>27 and ((UM("player")>254) or BIF()) and AH>566 and GotSpell("Heal","Rank 3") then NS="Heal(Rank 3)";else if UL("player")>21 and ((UM("player")>204) or BIF()) and AH>429 and GotSpell("Heal","Rank 2") then NS="Heal(Rank 2)";else if UL("player")>15 and ((UM("player")>154) or BIF()) and AH>295 and GotSpell("Heal","Rank 1") then NS="Heal(Rank 1)";else if UL("player")>9 and ((UM("player")>74) or BIF()) and AH>135 and GotSpell("Lesser Heal","Rank 3") then NS="Lesser Heal(Rank 3)";else if UL("player")>3 and ((UM("player")>44) or BIF()) and AH>71 and GotSpell("Lesser Heal","Rank 2") then NS="Lesser Heal(Rank 2)";else if UL("player")>0 and ((UM("player")>29) or BIF()) and AH>46 and GotSpell("Lesser Heal","Rank 1") then NS="Lesser Heal(Rank 1)";else NS="Lesser Heal(Rank 1)";end;end;end;end;end;end;end;end;end;end;end;end;end;CastSpellByName(NS);else CastSpellByName("Inner Focus");end;
Last edited by Ulukay on Tue Nov 05, 2024 12:43 am, edited 3 times in total.

Moonstorm
Posts: 2

Re: Priest Specific Macro Collection

Post by Moonstorm » Wed Apr 03, 2024 10:31 am

The game in its original form did not allow for a priest to target other groups with Prayer of Healing, such a feature was only added later. Here is how to circumvent this limitation - aside from the one character slot in a group you're swapping into. This solution does not leverage empty slots in groups. Though the ability to switch between groups on the fly can be useful to other classes too, like hunters, shamans and druids, for priests it's proven to be useful when dealing with situations in which there are not an awful lot of healers to go around and a lot of incoming group damage.

Requires Supermacro add-on. Recommended to be used in a culture in which people are not disturbed by raid frames switching around. This can be achieved by using class-based raid frames or unitframe add-ons that allow the the frames to be frozen regardless of changes. Note that there may be unexpected swaps if the size of the raid group changes. The current solution switches you to the bottom-most slot shown to you in a given group.

Make an empty macro called "Back" and place it in action button slot 57. The main macro will write over the "Back" macro each time you switch yourself around. If you use a different one, remember to change the macro itself accordingly. Place the macro below into action button slot 56.

/script tarName = UnitName("target") n = GetNumRaidMembers() for i=n,1,-1 do na, rank, subgroup = GetRaidRosterInfo(i) if na == tarName then do for o=n,1,-1 do local nam, rankk, sg = GetRaidRosterInfo(o) if subgroup == sg then do if nam ~= tarName then do SwapRaidSubgroup(o,n) local macroID = EditMacro(2,nil,nil,"/script PickupAction(56) PlaceAction(57) PlaceAction(56); SwapRaidSubgroup("..o..","..n..");",1); break end end end end end end end end PickupAction(56) PlaceAction(57) PlaceAction(56);

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:16 am

-=Power Word:Shield=-
Rank based on target level, remaining mana, and active Inner Focus
/script local UL,UM,UT=UnitLevel,UnitMana;local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Inner Focus";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function GotDebuff(name,target) if UnitExists("target") then if UnitIsEnemy("target","player") then target = "player"; else target = "target";end; else target = "player" end;local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitDebuff(target,ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function BIF() return buffed("Inner Focus")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;if not IsAltKeyDown() or BIF() or not GotSpell() then if not GotDebuff("Spell_Holy_AshesToAshes") then if UL("player")>59 and UL(UT)>53 and (UM("player")>500 or BIF()) and GotSpell("Power Word: Shield","Rank 10") then CastSpellByName("Power Word: Shield(Rank 10)"); else if UL("player")>53 and UL(UT)>47 and (UM("player")>382 or BIF()) and GotSpell("Power Word: Shield","Rank 9") then CastSpellByName("Power Word: Shield(Rank 9)"); else if UL("player")>47 and UL(UT)>41 and (UM("player")>355 or BIF()) and GotSpell("Power Word: Shield","Rank 8") then CastSpellByName("Power Word: Shield(Rank 8)"); else if UL("player")>41 and UL(UT)>35 and (UM("player")>300 or BIF()) and GotSpell("Power Word: Shield","Rank 7") then CastSpellByName("Power Word: Shield(Rank 7)"); else if UL("player")>35 and UL(UT)>29 and (UM("player")>250 or BIF()) and GotSpell("Power Word: Shield","Rank 6") then CastSpellByName("Power Word: Shield(Rank 6)"); else if UL("player")>29 and UL(UT)>23 and (UM("player")>210 or BIF()) and GotSpell("Power Word: Shield","Rank 5") then CastSpellByName("Power Word: Shield(Rank 5)"); else if UL("player")>23 and UL(UT)>17 and (UM("player")>175 or BIF()) and GotSpell("Power Word: Shield","Rank 4") then CastSpellByName("Power Word: Shield(Rank 4)"); else if UL("player")>17 and UL(UT)>11 and (UM("player")>130 or BIF()) and GotSpell("Power Word: Shield","Rank 3") then CastSpellByName("Power Word: Shield(Rank 3)"); else if UL("player")>11 and UL(UT)>5 and (UM("player")>80 or BIF()) and GotSpell("Power Word: Shield","Rank 2") then CastSpellByName("Power Word: Shield(Rank 2)"); else if UL("player")>5 and UL(UT)>0 and (UM("player")>45 or BIF()) and GotSpell("Power Word: Shield","Rank 1") then CastSpellByName("Power Word: Shield(Rank 1)"); end;end;end;end;end;end;end;end;end;end;end;else CastSpellByName("Inner Focus");end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:20 am

-=Mind Blast+Smite=-
/script local ix,SN,SR=192 while(ix>0) do SN,SR=GetSpellName(ix,"spell") if SN=="Mind Blast" then if GetSpellCooldown(ix,"spell")==0 then CastSpellByName("Mind Blast");ix=-1;else ix=0;end;else ix=ix-1;end;end;if ix==0 then ix=192;while(ix>0) do SN,SR=GetSpellName(ix,"spell") if SN=="Smite" then if GetSpellCooldown(ix,"spell")==0 then CastSpellByName("Smite");end;ix=-1;else ix=ix-1;end;end;end;
-=Mind Blast+Smite=- When the Searing Light buff is active, Smite is used
/script local ix;local function GotBuff(name,target) local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff("player",ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function ActSpell(spell,rank,sw) local ix,spellName,spellRank=192;while(ix>0) do if ix==0 then return nil;else spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if sw==0 then return ix;end;if sw==1 then return GetSpellCooldown(ix,"spell");end;if sw==nil then if GetSpellCooldown(ix,"spell")==0 then CastSpell(ix,"spell");return ix;end;end;end;ix=ix-1;end;end;end;function Attack_Actions() if not GotBuff("Spell_Holy_SearingLightPriest","player") and ActSpell("Mind Blast",nil,1)==0 then CastSpellByName("Mind Blast");else CastSpellByName("Smite");end;end;Attack_Actions()

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:24 am

-=Renew=- Rank based on target level, target health, remaining mana, and active Inner Focus
/script local UL,UM,NS,UT,AH=UnitLevel,UnitMana,"Renew";local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Inner Focus";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function BIF() return buffed("Inner Focus")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;local function inCombat() return UnitAffectingCombat(UT);end;AH=UnitHealthMax(UT)-UnitHealth(UT);if not IsAltKeyDown() or BIF() or not GotSpell() then if UL("player")>59 and UL(UT)>55 and (UM("player")>409 or BIF()) and (AH>970 or inCombat()) and GotSpell("Renew","Rank 10") then CastSpellByName("Renew(Rank 10)"); else if UL("player")>55 and UL(UT)>49 and (UM("player")>364 or BIF()) and (AH>810 or inCombat()) and GotSpell("Renew","Rank 9") then CastSpellByName("Renew(Rank 9)"); else if UL("player")>49 and UL(UT)>44 and (UM("player")>304 or BIF()) and (AH>650 or inCombat()) and GotSpell("Renew","Rank 8") then CastSpellByName("Renew(Rank 8)"); else if UL("player")>43 and UL(UT)>37 and (UM("player")>249 or BIF()) and (AH>510 or inCombat()) and GotSpell("Renew","Rank 7") then CastSpellByName("Renew(Rank 7)"); else if UL("player")>37 and UL(UT)>31 and (UM("player")>204 or BIF()) and (AH>400 or inCombat()) and GotSpell("Renew","Rank 6") then CastSpellByName("Renew(Rank 6)"); else if UL("player")>31 and UL(UT)>25 and (UM("player")>169 or BIF()) and (AH>315 or inCombat()) and GotSpell("Renew","Rank 5") then CastSpellByName("Renew(Rank 5)"); else if UL("player")>25 and UL(UT)>19 and (UM("player")>139 or BIF()) and (AH>245 or inCombat()) and GotSpell("Renew","Rank 4") then CastSpellByName("Renew(Rank 4)"); else if UL("player")>19 and UL(UT)>13 and (UM("player")>104 or BIF()) and (AH>175 or inCombat()) and GotSpell("Renew","Rank 3") then CastSpellByName("Renew(Rank 3)"); else if UL("player")>13 and UL(UT)>7 and (UM("player")>64 or BIF()) and (AH>100 or inCombat()) and GotSpell("Renew","Rank 2") then CastSpellByName("Renew(Rank 2)"); else if UL("player")>7 and UL(UT)>0 and (UM("player")>29 or BIF()) and AH>45 and GotSpell("Renew","Rank 1") then CastSpellByName("Renew(Rank 1)"); else CastSpellByName("Renew(Rank 1)");end;end;end;end;end;end;end;end;end;end;else CastSpellByName("Inner Focus");end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:27 am

-=Smite+Sun's Embrace=- Not sure of its accuracy!
Uses Sun's Embrace when low on mana and selects Smite rank based on Sun's Embrace and remaining mana to continue attacking when low on mana.
/script local ix,SE,Rank,spellName,spellRank;local function ActSpell(spell,rank,sw) ix=192;while(ix>0) do if ix==0 then return nil;else spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if sw==0 then return GetSpellCooldown(ix,"spell");end;if sw==1 then if GetSpellCooldown(ix,"spell")==0 then CastSpell(ix,'spell');return ix;end;end;if sw==nil then return ix;end;end;ix=ix-1;end;end;end;ix,SE=192,0;while(ix>0) do spellName,spellRank=GetSpellName(ix,"spell");if buffed("Sun's Embrace")=="buff" then if spellName=="Sun's Embrace" and spellRank=="Rank 4" then SE=150;break;end;if spellName=="Sun's Embrace" and spellRank=="Rank 3" then SE=100;break;end;if spellName=="Sun's Embrace" and spellRank=="Rank 2" then SE=50;break;end;if spellName=="Sun's Embrace" and spellRank=="Rank 1" then SE=25;break;end;ix=ix-1;else if spellName=="Sun's Embrace" then if GetSpellCooldown(ix,"spell")~=0 then SE=-1;end;break;end;end;ix=ix-1;end;Rank=9;if Rank==9 and UnitLevel("player")>=60 then if ActSpell("Smite","Rank 9") then if UnitMana("player")>=300-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 9)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==8 and UnitLevel("player")>=54 then if ActSpell("Smite","Rank 8") then if UnitMana("player")>=280-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 8)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==7 and UnitLevel("player")>=46 then if ActSpell("Smite","Rank 7") then if UnitMana("player")>=230-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 7)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==6 and UnitLevel("player")>=38 then if ActSpell("Smite","Rank 6") then if UnitMana("player")>=185-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 6)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==5 and UnitLevel("player")>=30 then if ActSpell("Smite","Rank 5") then if UnitMana("player")>=140-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 5)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==4 and UnitLevel("player")>=22 then if ActSpell("Smite","Rank 4") then if UnitMana("player")>=95-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 4)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==3 and UnitLevel("player")>=14 then if ActSpell("Smite","Rank 3") then if UnitMana("player")>=60-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 3)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==2 and UnitLevel("player")>=6 then if ActSpell("Smite","Rank 2") then if UnitMana("player")>=30-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 2)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;if Rank==1 and UnitLevel("player")>=1 then if ActSpell("Smite","Rank 1") then if UnitMana("player")>=20-SE or buffed("Inner Focus")=="buff" then CastSpellByName("Smite(Rank 1)");else if SE==0 then ActSpell("Sun's Embrace",nil,1);else Rank=Rank-1;end;end;end;else Rank=Rank-1;end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:29 am

-=Holy Nova+Sun's Embrace=- Not sure of its accuracy!
/script local function ActSpell(spell,rank,sw) local ix=192;while(ix>0) do if ix==0 then return nil;else local spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if rank==nil then rank=spellRank; end;if sw==nil then return GetSpellCooldown(ix,"spell"); end;if sw==0 then if GetSpellCooldown(ix,"spell")==0 then CastSpellByName(spellName.."("..rank..")",nil); return ix; end;end;if sw==1 then if GetSpellCooldown(ix,"spell")==0 then CastSpellByName(spellName.."("..rank..")",1); return ix; end;end;end;ix=ix-1;end;end;end;if ActSpell("Sun's Embrace")>0 then CastSpellByName("Holy Nova",0);else CastSpellByName("Sun's Embrace");end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:30 am

-=dark elf Multiattack=- Attack+(Bow+Searing Shot)+Pain Spike+Chastise
For proper operation, you need to place the [Attak] and [Auto Shot] icons on the quick access panel.
/script local ix;local function melee() if UnitExists("target") then return CheckInteractDistance("target",2);end;end;local function ranged() if UnitExists("target") then return not melee();end;end;local function GotBuff(name,target) local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff("player",ix);if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function ActSpell(spell,rank,sw) local ix,spellName,spellRank=192;while(ix>0) do if ix==0 then return nil;else spellName,spellRank=GetSpellName(ix,"spell");if spellName==spell and (spellRank==rank or rank==nil) then if sw==0 then return ix;end;if sw==1 then return GetSpellCooldown(ix,"spell");end;if sw==nil then if GetSpellCooldown(ix,"spell")==0 then CastSpell(ix,"spell");return ix;end;end;end;ix=ix-1;end;end;end;function Attack_Actions() if UnitCanAttack("player","target")==nil or UnitHealth("target")<=0 then TargetNearestEnemy();end;if GotBuff("Spell_Holy_SearingLightPriest","player") and ActSpell("Smite",nil,1)==0 then local S="Smite";CastSpellByName(S);end;if UnitCanAttack("player","target") then local UH=UnitHealth("target");if UH<=378 and ActSpell("Pain Spike","Rank 4",1) then ActSpell("Pain Spike","Rank 4")else if UH<=240 and ActSpell("Pain Spike","Rank 3",1) then ActSpell("Pain Spike","Rank 3")else if UH<=172 and ActSpell("Pain Spike","Rank 2",1) then ActSpell("Pain Spike","Rank 2")else if UH<=85 and ActSpell("Pain Spike","Rank 1",1) then ActSpell("Pain Spike","Rank 1")end;end;end;end;end;if ranged() then local _,_,link=string.find(GetInventoryItemLink("player", 18),"(item:%d+:%d+:%d+:%d+)")local _,_,_,_,_,itemtype,_,_,itemTexture=GetItemInfo(link);if itemtype == "Bows" then local sw=1;for ix=1,96 do if itemTexture==GetActionTexture(ix) then if IsAutoRepeatAction(ix) then sw=0;end;break;end;end; if sw==1 then CastSpellByName("Auto Shot");return;end;ActSpell("Searing Shot")end;if itemtype == "Wands" then local x,s,a;for x=1,99 do if IsAttackAction(x)then a=x;end;if GetSpellName(x,"spell")=="Shoot" then s=x;end;end;if not IsCurrentAction(a) then AttackTarget()else if GetSpellCooldown(s,"spell")==0 then CastSpellByName("Shoot","spell")end;end;end;end;if melee() then for ix=1,96 do if IsAttackAction(ix) then if not IsCurrentAction(ix) then CastSpellByName("Attack");end;break;end;end;end;if UnitCanAttack("player","target") then ActSpell("Chastise")end;end;Attack_Actions()
Last edited by Ulukay on Fri Nov 29, 2024 11:37 am, edited 7 times in total.

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Priest Specific Macro Collection

Post by Ulukay » Tue Nov 05, 2024 12:36 am

👆🏻 Posted at the request of vick_dagina, all complaints to him turtle_tongue

vick_dagina
Posts: 4
Has liked: 5 times

Re: Priest Specific Macro Collection

Post by vick_dagina » Tue Nov 05, 2024 2:24 pm

Ulukay wrote: Tue Nov 05, 2024 12:36 am 👆🏻 Posted at the request of vick_dagina, all complaints to him turtle_tongue
YEP satisfied_turtle

Post Reply