Priest Specific Macro Collection

Post Reply
Ihavenoclothes
Posts: 7

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: 862

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: 56

Re: Priest Specific Macro Collection

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

-=Inner Focus + Flash Heal + Heal=-
/script local UL,UM,NS,UT,AH=UnitLevel,UnitMana,"Healing Wave";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;

Moonstorm
Posts: 1

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);

Post Reply