Priest Macros
Cure Disease
Cure Disease on target if friendly, else Cure Disease oneself
/run if UnitIsFriend("player","target") then CastSpellByName("Cure Disease") else CastSpellByName("Cure Disease",1) end
Dismount
Dismount, Power Word: Shield
/run CastSpellByName("Power Word: Shield") /run local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Mount"))then CancelPlayerBuff(g(i))end i=i+1 end
Flash Heal
Self Flash Heal or Flash Heal player target
/run if UnitIsFriend ("player", "target") then CastSpellByName("Flash Heal") else CastSpellByName("Flash Heal",1) end
Flash Heal on mouse focused target
/run i=(GetMouseFocus().unit) if i then CastSpellByName("Flash Heal") SpellTargetUnit(i) else CastSpellByName("Flash Heal") end
Heal
Self Heal or Heal player target
/run if UnitIsFriend ("player", "target") then CastSpellByName("Heal") else CastSpellByName("Heal",1) end
Heal on mouse focused target
/run i=(GetMouseFocus().unit) if i then CastSpellByName("Heal") SpellTargetUnit(i) else CastSpellByName("Heal") end
Inner Fire
Inner Fire if missing, else Power Word: Fortitude
/run local z=0 for i=1,32 do t=UnitBuff("player",i) if (t and strfind(t,"InnerFire")) then z=1 break end end if z==1 then CastSpellByName("Power Word: Fortitude") else CastSpellByName("Inner Fire")end
Inner Focus
Inner Focus + Power Word: Shield. Uses getspellcooldown to track if inner focus is ready
/run local c,s=CastSpellByName,"Inner Focus";local i=nil;for j=1,180 do local n=GetSpellName(j,BOOKTYPE_SPELL);if n and strfind(n,s) then i=j;break;end end if i then if GetSpellCooldown(i,BOOKTYPE_SPELL)<1 then c(s)else c("Power Word: Shield")end end
Mana Burn
Mana Burn if target have more then 200 mana else it Mind Blast them
/run if UnitPowerType("target")==0 and UnitMana("target")>200 then CastSpellByName("Mana Burn") else CastSpellByName("Mind Blast") end
Melee weaving
Shoot (Mouse wheel up)
/run GGUseAction=GGUseAction or UseAction;UseAction=function(id,a,b)if not IsCurrentAction(id)and not IsAutoRepeatAction(id)then GGUseAction(id,a,b)end end CastSpellByName("Shoot") UIErrorsFrame:Hide()
Attack (Mouse wheel down)
/run GGUseAction=GGUseAction or UseAction;UseAction=function(id,a,b)if not IsCurrentAction(id)and not IsAutoRepeatAction(id)then GGUseAction(id,a,b)end end if CheckInteractDistance("target", 3) then CastSpellByName("Attack") end UIErrorsFrame:Hide()
Mind Control
Mind Control target, then use his attack and spells
/run if not CastingBarFrame.channeling then CastSpellByName("Mind Control");end CastPetAction(1);CastPetAction(2);CastPetAction(3);
Cancel Mind Control
/run local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Shadow_ShadowWordDominate"))then CancelPlayerBuff(g(i))end i=i+1 end
Mind Flay
Using Mind Flay repeatedly is a DPS loss because of the way the spell works, so you need this complicated macro to gain an extra tick of the spell
/run local f=CnlSpam if not f then f=CreateFrame("Frame")local s,r="SPELLCAST_CHANNEL_ST",f.RegisterEvent r(f,s.."ART")r(f,s.."OP")f:SetScript("OnEvent",function()this.c=event~=s.."OP"end)CnlSpam=f end if not f.c then CastSpellByName("Mind Flay")end
Power infusion
Cast power infusion, whispers a tell to the target notifying them
/cast Power Infusion /run if UnitExists"target"then SendChatMessage("PI on YOU!! 20% spellpower for 15secs","WHISPER",nil,UnitName"target")end
Power Word: Fortitude
Self buff Power Word: Fortitude, Divine Spirit, else Inner Fire
/run c=CastSpellByName function b(k)for i=1,16 do if strfind(tostring(UnitBuff("player",i)),k)then return 1 end end end if not b("Fortitude")then c("Power Word: Fortitude",1)elseif not b("Spirit")then c("Divine Spirit",1)else c("Inner Fire")end
Buff target Power Word: Fortitude, Divine Spirit, else Shadow Protection
/run c=CastSpellByName function b(k)for i=1,16 do if strfind(tostring(UnitBuff("target",i)),k)then return 1 end end end if not b("Fortitude")then c("Power Word: Fortitude")elseif not b("Spirit")then c("Divine Spirit")else c("Shadow Protection")end
Power word: Shield
Shield target / self
/run SpellStopCasting() if UnitIsPlayer ("target") then CastSpellByName("Power word: Shield") else CastSpellByName("Power word: Shield",1) end UIErrorsFrame:Hide()
Renew
Renew target if the target does not have Renew
/run function b(k)for i=1,32 do if strfind(tostring(UnitBuff("target",i)),k)then return 1 end end end if not b("Renew") then CastSpellByName("Renew")end
Ressurection
simply says who u res
/run if UnitIsDeadOrGhost("target") then CastSpellByName("Resurrection"); SendChatMessage("Return to us, %t.","SAY"); end
Shackle
Says what u shackle
/run CastSpellByName("Shackle Undead"); /run if UnitCreatureType("target") == "Undead" then SendChatMessage(">>> Shackling %t, leave it be.","SAY"); end
Shackle if undead, else Mind Soothe
/run if UnitCreatureType("target")=="Undead" then CastSpellByName("Shackle Undead") else CastSpellByName("Mind Soothe")end
Shadow Word: Pain
Cast Shadow Word: Pain if it's not already on the target
/run local i,x=1,0 while UnitDebuff("target",i) do if UnitDebuff("target",i)=="Interface\\Icons\\Spell_Shadow_ShadowWordPain" then x=1 end i=i+1 end if x==0 then CastSpellByName("Shadow Word: Pain")end
Shadow Word: Pain, else Mind Blast
/run local i,x=1,0 while UnitDebuff("target",i) do if UnitDebuff("target",i)=="Interface\\Icons\\Spell_Shadow_ShadowWordPain" then x=1 end i=i+1 end if x==0 then CastSpellByName("Shadow Word: Pain")else CastSpellByName("Mind Blast")end
Shadowform
Cancel Shadowform
/run local i=0 g=GetPlayerBuff while not(g(i)==-1) do if(strfind(GetPlayerBuffTexture(g(i)), "Shadowform")) then CancelPlayerBuff(g(i)) end i=i+1 end
Cancel Shadowform, Flash Heal self
/run local i=0 g=GetPlayerBuff while not(g(i)==-1) do if(strfind(GetPlayerBuffTexture(g(i)), "Shadowform")) then CancelPlayerBuff(g(i)) end i=i+1 end CastSpellByName("Flash Heal",1)
Buff Shadowform /Inner Fire
/run z=false for i=1,16,1 do db=UnitBuff("player",i) if(db~=nil and string.find(db,"Shadowform")) then z=true end end if z then CastSpellByName("Inner Fire") else CastSpellByName("Shadowform") end
Shoot
Start wand auto shooting
/run for i=1,120 do if IsAutoRepeatAction(i) then return end end CastSpellByName("Shoot")
Starshards
Spammable Starshards
/run if not CastingBarFrame.channeling then CastSpellByName("Starshards") end
Weapon Oil
Enchant Brilliant Mana Oil on weapon
/run for b=0,4 do for s=1,18 do local i=GetContainerItemLink if not(i(b,s)==nil)then if strfind(i(b,s), "Brilliant Mana Oil")then UseContainerItem(b,s)PickupInventoryItem(16)ReplaceEnchant()ClearCursor()end end end end
Enchant Brilliant Wizard Oil on weapon
/run for b=0,4 do for s=1,18 do local i=GetContainerItemLink if not(i(b,s)==nil)then if strfind(i(b,s), "Brilliant Wizard Oil")then UseContainerItem(b,s)PickupInventoryItem(16)ReplaceEnchant()end end end end