Advanced Macro Guide for Classic WoW. Series; 3/9|Priest|

KPI

Vengeful Gladiator
Hello, I will be starting a Series of guides that will focus on Advanced Class Specific Macros.
*This Guide is for the simplified basic users, who may not know the capability of their class in classic WoW and focuses on turning you into a Rank14 Grand Marshal/High Warlord from a Basic level 10 Boar Slaying Dwarf.
Advanced macro guide..png

advanced-macro-guide-png.12932

After placing the macro you can reference it in other macros with the following:

1|
Code:
/run UseAction(37)
2|
Code:
/run UseAction(37) CastSpellByName("Regrowth(Rank 8)")

*Using Trinkets / Inventory Items
Vanilla doesn’t have support for /use command etc. that exists in retail unless you use an addon for it. To use equipment with right click functionality you need to know the slotID.
This example will use the trinket in your top slot:

Code:
/run UseInventoryItem(13)
inventoryslots.jpg

inventoryslots-jpg.12933

The command for using an item in your first bag slot (for example a bandage) on yourself is the following:
Code:
/run UseContainerItem(1, 1, 1)
UseContainerItem(bagID, slotNumber, UseOnSelf?)
bagid-png.12934

slotnumber-png.12935

bagid.png

slotnumber.png

Bandage self with Autoselfcasting disabled

This macro works without any addons and you can have the bandage placed anywhere in your bags.

It looks for items with the word “Bandage” in your bags starting in bag 0 so if the macro uses the wrong bandage before the Heavy Runecloth, move Heavy Runecloth into bag 0 (your backpack). Here is a list with bandages it should work with:

bandage-png.12936

It works with autoselfcasting disabled in options.
Auto Self Cast with the interface option disabled
autoselfcastdisabled-jpg.12937

bandage.png

Code:
/run TargetUnit("player")function u(n)for b=0,4 do for s=1,GetContainerNumSlots(b)do a=GetContainerItemLink(b,s)if a then if string.find(a,n)then UseContainerItem(b,s,1)return end end end end end u("Bandage")TargetLastTarget()

Priest:

Cast renew on targets that do not have renew yet (KEY!):
Code:
/script --CastSpellByName("Renew")

/script local b = 1; for j=0,15 do a = UnitBuff("target", j); if (a and string.find(a, "Renew")) then b = nil; break; end; end; if ( then CastSpellByName("Renew"); end;

Dispel magic on yourself while targeting others. (2x)
Code:
/script CastSpellByName("Dispel Magic",1)

/script TargetUnit("player"); CastSpellByName("Dispel Magic"); TargetLastTarget()

Shadow Priest Mind flay spammable macro
This macro will cast Mind Flay only if your current target is not already a victim to the spell. That way you can spam the spell without accidentally interrupting yourself. There is a limitation to this that you should know about: If you are 2 or more shadow priests in the same group and if one is already casting mind flay on your target, you will not be able to cast it at the same time.
Code:
/run m=0 for i=1,40 do if(strfind(tostring(UnitDebuff("target",i)),"Spell_Shadow_SiphonMana"))then m=1 end end if m==0 then CastSpellByName("Mind Flay(Rank 6)") end

Mouse Over Healing Macros
Code:
/cast [target=mouseover] Flash Heal

Code:
/cast [target=mouseover] Greater Heal

Code:
/cast [target=mouseover] Renew

Code:
/cast [target=mouseover] Circle of Healing

Code:
/cast [target=mouseover] Dispel Magic

*If anyone has anything to add please post below and I will add to Official edit.
 
Last edited:
the mouseover macros are strict the way you mentioned them
it should :
#showtooltip
/use [@mouseover,exists][]Spell

basically all does this is make it feel more natrual. so your able to heal yourself when not mousing over anyone
otherwise you'll have to mouseover your profile. especially frustrating when your not in a group and have the raid frames to help

make sure to macro your old rank spells to pad healing. ideally you want the lower rank and the highest rank for each heal
 
Hello, I will be starting a Series of guides that will focus on Advanced Class Specific Macros.
*This Guide is for the simplified basic users, who may not know the capability of their class in classic WoW and focuses on turning you into a Rank14 Grand Marshal/High Warlord from a Basic level 10 Boar Slaying Dwarf.
View attachment 12966
advanced-macro-guide-png.12932

After placing the macro you can reference it in other macros with the following:

1|
Code:
/run UseAction(37)
2|
Code:
/run UseAction(37) CastSpellByName("Regrowth(Rank 8)")

*Using Trinkets / Inventory Items
Vanilla doesn’t have support for /use command etc. that exists in retail unless you use an addon for it. To use equipment with right click functionality you need to know the slotID.
This example will use the trinket in your top slot:

Code:
/run UseInventoryItem(13)
View attachment 12967
inventoryslots-jpg.12933

The command for using an item in your first bag slot (for example a bandage) on yourself is the following:
Code:
/run UseContainerItem(1, 1, 1)
UseContainerItem(bagID, slotNumber, UseOnSelf?)
bagid-png.12934

slotnumber-png.12935

View attachment 12968
View attachment 12969
Bandage self with Autoselfcasting disabled

This macro works without any addons and you can have the bandage placed anywhere in your bags.

It looks for items with the word “Bandage” in your bags starting in bag 0 so if the macro uses the wrong bandage before the Heavy Runecloth, move Heavy Runecloth into bag 0 (your backpack). Here is a list with bandages it should work with:

bandage-png.12936

It works with autoselfcasting disabled in options.
Auto Self Cast with the interface option disabled
autoselfcastdisabled-jpg.12937

View attachment 12970
Code:
/run TargetUnit("player")function u(n)for b=0,4 do for s=1,GetContainerNumSlots(b)do a=GetContainerItemLink(b,s)if a then if string.find(a,n)then UseContainerItem(b,s,1)return end end end end end u("Bandage")TargetLastTarget()

Priest:

Cast renew on targets that do not have renew yet (KEY!):
Code:
/script --CastSpellByName("Renew")

/script local b = 1; for j=0,15 do a = UnitBuff("target", j); if (a and string.find(a, "Renew")) then b = nil; break; end; end; if ( then CastSpellByName("Renew"); end;

Dispel magic on yourself while targeting others. (2x)
Code:
/script CastSpellByName("Dispel Magic",1)

/script TargetUnit("player"); CastSpellByName("Dispel Magic"); TargetLastTarget()

Shadow Priest Mind flay spammable macro
This macro will cast Mind Flay only if your current target is not already a victim to the spell. That way you can spam the spell without accidentally interrupting yourself. There is a limitation to this that you should know about: If you are 2 or more shadow priests in the same group and if one is already casting mind flay on your target, you will not be able to cast it at the same time.
Code:
/run m=0 for i=1,40 do if(strfind(tostring(UnitDebuff("target",i)),"Spell_Shadow_SiphonMana"))then m=1 end end if m==0 then CastSpellByName("Mind Flay(Rank 6)") end

Mouse Over Healing Macros
Code:
/cast [target=mouseover] Flash Heal

Code:
/cast [target=mouseover] Greater Heal

Code:
/cast [target=mouseover] Renew

Code:
/cast [target=mouseover] Circle of Healing

Code:
/cast [target=mouseover] Dispel Magic

*If anyone has anything to add please post below and I will add to Official edit.

Tnx for the info brother but one thing I'm majorly struggling with is how to find the syntax to do things in /run commands like if statements with = comparisons.

I'm trying to come up with a macro that doesn't violate wow's /scripting by coming up with a Hunter Stings macro.
-Check if the target is warrior or rogue. If so, cast Serpent Sting else cast Viper Sting.

Seems easy enough, I just don't know where to learn about the syntax that is allowed in /run commands.
 

Users who are viewing this thread

Top