Useful Mage Marcos for WoW Vanilla (Client 1.12.1)

WoW Vanilla Mage
WoW Vanilla Mage

Here you can find very useful marcos for mages. All Marcos for the WoW Vanilla Client 1.12.1

Vanilla Macros for Arcane Explosion

Low rank Arcane Explosion, max rank if Clearcasting

/run SpellStopCasting() local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Shadow_ManaBurn" then x=1 end i=i+1 end if x==1 then CastSpellByName("Arcane Explosion")else CastSpellByName("Arcane Explosion(Rank 1)")end

Low rank arcane explosion, max rank if combat

/run if not UnitAffectingCombat("player") then CastSpellByName("Arcane Explosion(Rank 1)") else CastSpellByName("Arcane Explosion") end

 

Vanilla Macros for Arcane Intellect

Arcane Intellect on mouseover target

/run pt='mouseover' t='target' p='player' s='Arcane Intellect' if UnitExists(pt) and UnitIsFriend(p, pt) then TargetUnit(pt) CastSpellByName(s) TargetLastTarget() elseif UnitExists(t) then CastSpellByName(s) else CastSpellByName(s) end

Arcane Intellect on mouseover party frames

/run s='Arcane Intellect' f=GetMouseFocus():GetName() t="party"..string.gsub(f, "PartyMemberFrame", "") if UnitExists(t) then TargetUnit(t) CastSpellByName(s) TargetLastTarget() else CastSpellByName(s) end

 

Vanilla Macros for Arcane Missiles

Spammable Arcane Missiles

/script if not CastingBarFrame.channeling then CastSpellByName("Arcane Missiles") end

Spammable Arcane Missiles

/run if(CastingBarFrame.casting ~= 1 and CastingBarFrame.channeling ~= 1) then CastSpellByName("Arcane Missiles"); end;

Throw rank 1 unless clear casting is active then cast max rank

/run local i = 1 while UnitBuff("player", i) do if UnitBuff("player", i) == "Interface\\Icons\\Spell_Shadow_ManaBurn" then return CastSpellByName"Arcane Missiles" end i = i + 1 end CastSpellByName"Arcane Missiles(Rank 1)"

 

Vanilla Macros for Blink

Cancel Ice Block, then Blink

/run local z=0 for i=1,27 do t=UnitBuff("player",i) if (t and string.find(t,"Frost")) then z=1 break end end if z==1 then CastSpellByName("Ice Block")end
/cast Blink

Cancel Ice Block, then Blink

/script local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Frost_Frost"))then CancelPlayerBuff(g(i))end i=i+1 end CastSpellByName("Blink")

Ice Block, else cancel Ice Block, then Blink

/cast Ice Block
/cast Blink

 

Vanilla Macros for Blizzard

Spammable Blizzard

/run if not SpellIsTargeting() and not CastingBarFrame.channeling then CastSpellByName("Blizzard")end

Blizzard

/run local s=SpellIsTargeting if not (s()) then CastSpellByName("Blizzard") end

Cast rank 1 if out of combat, else cast max rank

/run if not UnitAffectingCombat("player") then CastSpellByName("Blizzard(Rank 1)") else CastSpellByName("Blizzard") end

 

Vanilla Macros for 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

 

Vanilla Macros for cast on Level

 

Arcane Intellect:

/run a="Arcane Intellect" b={1,4,18,32,47} c="target" d="(Rank " e=CastSpellByName if (UnitLevel(c) ~= nil and UnitIsFriend("player",c)) then for i=5,1,-1 do if (UnitLevel(c) >= b) then e(a..d..i..")") return end end else e(a,1) end

/run local a,b,c,d,e,u="Arcane Intellect",{1,4,18,32,47},"target","(Rank ",CastSpellByName,UnitLevel if u(c)~=nil and UnitIsFriend("player",c)then for i=5,1,-1 do if(u(c)>=b)then e(a..d..i..")")return end end else e(a,1) end
/run UIErrorsFrame:Hide()


Conjure Water:

/run a="Conjure Water" b={1,5,15,25,35,45,55} c="target" d="(Rank " e=CastSpellByName if (UnitLevel(c) ~= nil and UnitIsFriend("player",c)) then for i=7,1,-1 do if (UnitLevel(c) >= b) then e(a..d..i..")") return end end else e(a,1) end

Conjure Food:

/run a="Conjure Food" b={1,5,15,25,35,45,55} c="target" d="(Rank " e=CastSpellByName if (UnitLevel(c) ~= nil and UnitIsFriend("player",c)) then for i=7,1,-1 do if (UnitLevel(c) >= b) then e(a..d..i..")") return end end else e(a,1) end

If you just have 45 water/food change it to
b={1,5,15,25,35,45}
i=6,1,-1

 

Castsequence macro for buffing

/run local _gspells = { "Ice Armor", "Dampen Magic", "Arcane Intellect"} if GetSpellCooldown(4,"BOOKTYPE_SPELL")==0 then _gi=_gi and _gi > 0 and _gi or 1 CastSpellByName(_gspells[_gi]) _gi = math.mod(1+_gi, 1+table.getn(_gspells))end

 

Vanilla Macros for Dismount

Dismount, Blink (put mount in action slot 60)

/script SpellStopCasting()
/script CastSpellByName("Blink")
/run i=1 while UnitBuff("player",i) do if string.find(UnitBuff("player",i),"Mount") then UseAction(60)end i=i+1 end


Dismount, Sheep

/run CastSpellByName("Polymorph")
/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

 

Vanilla Macros for Evocation Ice Barrier

Use evocation if mana is low, and keeping ice barrier up

/run if UnitMana("player")< 500 then CastSpellByName("Evocation")end local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Ice_Lament" then x=1 end i=i+1 end if x==0 then CastSpellByName("Ice Barrier")end

 
Ice Barrier, Mana Shield

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Ice_Lament" then x=1 end i=i+1 end if x==0 then CastSpellByName("Ice Barrier")else CastSpellByName("Mana Shield")end

 
Spammable Evocation

/script if not CastingBarFrame.channeling then CastSpellByName("Evocation"); end ;

 

Vanilla Macros for Frostbolt

Cast Frostbolt rank 1 if shift key, else max rank

/script if IsShiftKeyDown() then CastSpellByName("Frostbolt (Rank 1)") else CastSpellByName("Frostbolt") end

 

Vanilla Macros for Ice Block

StopCasting, then Ice Block

/run SpellStopCasting() local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Frost_Frost" then x=1 end i=i+1 end if x==0 then CastSpellByName("Ice Block")end

Spammable Ice Block

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Frost_Frost" then x=1 end i=i+1 end if x==0 then CastSpellByName("Ice Block")end

Ice Block, else cancel Ice Block

/run local i,a,sn sn="Ice Block" i=0 while a~=sn do i=i+1 a=GetSpellName(i,"spell")end if ({GetSpellCooldown(i,"spell")})[3]~=0 == not IsShiftKeyDown() then CastSpellByName(sn)end

Cold Snap if Ice Block on cooldown, else Ice Block (put Ice Block in action slot 40)

/run enable = GetActionCooldown(40) if enable==0 then CastSpellByName("Ice Block") else CastSpellByName("Cold Snap")end

 

Vanilla Macros for Polymorph

Mouseover Polymorph without changing target

/run c=CastSpellByName s="Polymorph(Rank 4)" if UnitExists("mouseover") then TargetUnit("mouseover") c(s) TargetLastTarget() else c(s) end

You can replace s=”mySpellName(Rank X)” with any other spell of you’re choice.

Polymorph turtle:   

/run c=CastSpellByName s="Polymorph: Turtle" if UnitExists("mouseover") then TargetUnit("mouseover") c(s) TargetLastTarget() else c(s) end

Alternative less compact version if you want it to register cooldowns etc using Addons like Bongos.   

/run if UnitExists("mouseover") then TargetUnit("mouseover") CastSpellByName("Polymorph(Rank 4)") TargetLastTarget() else CastSpellByName("Polymorph(Rank 4)") end

Sheep controlled teammates (BWL Nefarian, ZG Hakkar)

/run local n,p,i,t=4,"party";if UnitInRaid("player") then n=40;p="raid";end;for i=1,n do t=p..i ;if UnitCanAttack("player",t) then TargetUnit(t);CastSpellByName("Polymorph");SendChatMessage("%t is controlled, I changed him to sheep~",p);break;end;end

Polymorph rank 1 if target is player controlled, else max rank

/run if UnitPlayerControlled("target") then CastSpellByName("Polymorph(Rank 1)")else CastSpellByName("Polymorph")end

Casts polymorph, and searches through the party and raid for anyone who is targeting what you are going to polymorph, and whispering them to change targets.

/cast Polymorph
/run n,s=UnitName,UnitIsUnit;y,p,r,t="player","raid","party","target";for i=1,40 do a=((n(r..i)and r..i)or(n(p..i) and p..i)or nil);z=a and(not s(a,y)) and s(a..t,t) and SendChatMessage("Sheeping your: "..n(t),"WHISPER",nil,n(a))end

 

Vanilla Macros for Slow Fall

Buff Slow Fall, or cancel buff

/script CastSpellByName("Slow Fall")
/script local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Magic_FeatherFall"))then CancelPlayerBuff(g(i))end i=i+1 end

 

Vanilla Macros for Wand

Shoot (wand)

/run if not CastingBarFrame.casting then CastSpellByName("Shoot")end UIErrorsFrame:Hide()


Prevent toggling of wand/autoattack

/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
/cast Shoot

 

Vanilla Macros for trade Water

This macro will open trade, put in two stacks of water, and accept trade in 1 button(click it few times)

/run for b=0,4 do for s=1,GetContainerNumSlots(b,s) do local n=GetContainerItemLink(b,s) if n and string.find(n,"Conjured Crystal Water") then PickupContainerItem(b,s); DropItemOnUnit("target"); AcceptTrade(); break; end; end; end;

 

Related Articles


©allstats.info

Data privacy

Imprint

Contact
We use cookies

This website uses cookies to provide you with the best possible functionality.

OK I refuse cookies