Wizard macro... just one I threw together for my own use.

memset

New member
Joined
Feb 26, 2008
Messages
250
Reaction score
0
Points
0
Here is a wizard macro that I threw together with the help of Villageidiot just for my own personal use... nothing special about it. It'll auto-assist main tank and essentially chain nuke. Uses a "mana weave" type spell, waits for the proc, then uses a big nuke. My wizzy is lvl 79, so the spells are NOT up to date with the latest... they ARE easily configured though.

It's not perfect I'm sure, but it's a good base for some... feel free to modify it to suit your needs or just use it. Will auto-harvest too.. and uses big nuke for Gift of Radiant Mana procs as well.

Usage: /mac wiz <insert main tank name here>

Code:
|################################################
Sub Main
	| Define your MainTank... this is changeable while the macro is running by having new main tank /tell you: secretphrase (see below)
	/declare MainTank string outer "xxxxx"

	/declare Spell_SNARE string outer "Atol's Spectral Shackles"
	/declare Spell_WEAVE string outer "Mana Weave"
	/declare Spell_BIGNUKE string outer "Ethereal Conflagration"
	/declare Spell_HARVEST string outer "Patient Harvest"

	/declare DoSNAREPercent int outer 60
	/declare DoSNARE bool outer FALSE

	/declare DoHARVESTPercent int outer 30

	/declare Proc_WEAVE string outer "Weave of Power"
	/declare Proc_HARVEST string outer "Patient Harvest"

	/declare DoASSISTPercent int outer 95

	|
	| Don't need to edit below this line!
	|

	| Lets see if a MT was passed as an argument to the macro.
	/if (${Defined[Param0]}) {
		| We have a MT passed, lets use that instead of our default!
		/varset MainTank ${Param0}
	}

	| Check if MQ2Cast plugin is loaded, if it isn't... load it automatically. Thanks VillageIdiot & Unity!
	/if (!${Plugin[MQ2Cast].Name.Equal[mq2cast]}) /squelch /plugin MQ2Cast nocheck

	|################################################
	| START OF LOOP
	/echo Wizzy Macro v1.0 by memset
	/echo MAIN TANK/ASSIST: ${MainTank}
	/echo ASSIST AT: ${DoASSISTPercent}%
	/echo HARVEST PERCENT: ${DoHARVESTPercent}%
	/if (${DoSNARE}) /echo SNARE PERCENT: ${DoSNAREPercent}%

	:start
	/doevents

	| Make sure we're not MOVING (ie: autofollow)...
	/if (${Me.Moving}) /goto :start

	| Make sure our MT is within 100 distance of us before we even attempt to /assist.
	/if (${Spawn[${MainTank}].Distance} > 100 || !${Spawn[${MainTank}].ID}) {
		/goto :start
	}

	| Main tank is within range.
	| Assist MT, see if mob is within range.

	/assist ${MainTank}
	/delay 8

	|################################################
	| Make sure we aren't invis... if we are, don't break it!
	/if (${Me.Invis}) /goto :start

	|################################################
	| Make sure we aren't casting something yet.. if we are, kinda pointless still to continue. Just in case.
	/if (${Me.Casting.ID}) /goto :start

	|################################################
	| Make sure we aren't HARVESTING... if we are and we cast, that'd waste it entirely.
	/if (${Me.Song[${Proc_HARVEST}].Duration.Ticks}) /goto :start

	|################################################
	| See if we need to HARVEST or not.
	/if (${Me.PctMana} <= ${DoHARVESTPercent} && ${Me.SpellReady[${Spell_HARVEST}]}) {
		/casting ${Spell_HARVEST}
		/delay 1s
	}

	|################################################
	| Is our AA harvest ready? Should we use it?
	/if (${Me.PctMana} <= ${DoHARVESTPercent} && ${Me.AltAbilityReady[Harvest of Druzzil]}) {
		/aa act Harvest of Druzzil
		/delay 6s
	}

	|################################################
	| Make sure target is within range.. and that it is an NPC.
	/if (${Target.Distance} > 100 || ${Target.Type.NotEqual[NPC]} || !${Target.ID}) {
		/goto :start
	}

	|################################################
	| OK, target is within range... should we SNARE?
|	/echo DEBUG: ${Target.PctHPs} --- ${Target.Buff[${Spell_SNARE}].Duration.Ticks} --- ${DoSNARE}
	/if (${Target.PctHPs} <= ${DoSNAREPercent} && ${Target.Buff[${Spell_SNARE}].Duration.Ticks} < 1 && ${DoSNARE} && !${Target.Named}) {
		| Yes, we should snare! Mob is at required percent health & is not currently snared.
		/casting ${Spell_SNARE}
		/delay 2s
	}

	|################################################
	| Now we need to decide if we need to NUKE or not. Check the mob's HP percent...
	/if (${Target.PctHPs} > ${DoASSISTPercent}) /goto :start

	|################################################
	| Should we cast BIG nuke? AKA, did our weave spell proc? And make sure our big nuke is ready.
	/if (${Me.Song[${Proc_WEAVE}].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| We proc'd... cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}

	|################################################
	| Ok, well how about a Gift of Radiant Mana proc? We should also cast a big nuke if that proc'd!
	/if (${Me.Song[Gift of Radiant Mana].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| GoRM proc, cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}

	|################################################
	| Is our WEAVE spell ready?
	/if (${Me.SpellReady[${Spell_WEAVE}]}) {
		/casting ${Spell_WEAVE}
		/delay 5s
		/goto :start
	}

	/goto :start
/return
 
Last edited:
updated for auto-sit and GM check!

Made a couple modifications... added a GM check, and also added auto-sit functionality. It will make the wizzy sit basically whenever she isn't nuking.

Code:
|################################################
Sub Main
	| Define your MainTank...
	/declare MainTank string outer "xxxxx"

	/declare Spell_SNARE string outer "Atol's Spectral Shackles"
	/declare Spell_WEAVE string outer "Mana Weave"
	/declare Spell_BIGNUKE string outer "Ethereal Conflagration"
	/declare Spell_HARVEST string outer "Patient Harvest"

	/declare DoSNAREPercent int outer 60
	/declare DoSNARE bool outer FALSE

	/declare DoHARVESTPercent int outer 30

	/declare Proc_WEAVE string outer "Weave of Power"
	/declare Proc_HARVEST string outer "Patient Harvest"

	/declare DoASSISTPercent int outer 95

	|
	| Don't need to edit below this line!
	|

	| Lets see if a MT was passed as an argument to the macro.
	/if (${Defined[Param0]}) {
		| We have a MT passed, lets use that instead of our default!
		/varset MainTank ${Param0}
	}

	| Check if MQ2Cast plugin is loaded, if it isn't... load it automatically. Thanks VillageIdiot & Unity!
	/if (!${Plugin[MQ2Cast].Name.Equal[mq2cast]}) /squelch /plugin MQ2Cast nocheck

	|################################################
	| START OF LOOP
	/echo Wizzy Macro v1.0 by memset
	/echo MAIN TANK/ASSIST: ${MainTank}
	/echo ASSIST AT: ${DoASSISTPercent}%
	/echo HARVEST PERCENT: ${DoHARVESTPercent}%
	/if (${DoSNARE}) /echo SNARE PERCENT: ${DoSNAREPercent}%

	:start
	/doevents

	/call GMCheck

	| Make sure we're not MOVING (ie: autofollow)...
	/if (${Me.Moving}) /goto :start

	| Make sure our MT is within 100 distance of us before we even attempt to /assist.
	/if (${Spawn[${MainTank}].Distance} > 100 || !${Spawn[${MainTank}].ID}) {
		/goto :start
	}

	| Main tank is within range.
	| Assist MT, see if mob is within range.

	/assist ${MainTank}
	/delay 8

	|################################################
	| Make sure we aren't invis... if we are, don't break it!
	/if (${Me.Invis}) /goto :start

	|################################################
	| Make sure we aren't casting something yet.. if we are, kinda pointless still to continue. Just in case.
	/if (${Me.Casting.ID}) /goto :start

	|################################################
	| Make sure we aren't HARVESTING... if we are and we cast, that'd waste it entirely.
	/if (${Me.Song[${Proc_HARVEST}].Duration.Ticks}) /goto :start

	|################################################
	| See if we need to HARVEST or not.
	/if (${Me.PctMana} <= ${DoHARVESTPercent} && ${Me.SpellReady[${Spell_HARVEST}]}) {
		/casting ${Spell_HARVEST}
		/delay 1s
	}

	|################################################
	| Is our AA harvest ready? Should we use it?
	/if (${Me.PctMana} <= ${DoHARVESTPercent} && ${Me.AltAbilityReady[Harvest of Druzzil]}) {
		/aa act Harvest of Druzzil
		/delay 6s
	}

	|################################################
	| Make sure target is within range.. and that it is an NPC.
	/if (${Target.Distance} > 100 || ${Target.Type.NotEqual[NPC]} || !${Target.ID}) {
		/call Meditate
		/goto :start
	}

	|################################################
	| OK, target is within range... should we SNARE?
|	/echo DEBUG: ${Target.PctHPs} --- ${Target.Buff[${Spell_SNARE}].Duration.Ticks} --- ${DoSNARE}
	/if (${Target.PctHPs} <= ${DoSNAREPercent} && ${Target.Buff[${Spell_SNARE}].Duration.Ticks} < 1 && ${DoSNARE} && !${Target.Named}) {
		| Yes, we should snare! Mob is at required percent health & is not currently snared.
		/casting ${Spell_SNARE}
		/delay 2s
	}

	|################################################
	| Now we need to decide if we need to NUKE or not. Check the mob's HP percent...
	/if (${Target.PctHPs} > ${DoASSISTPercent}) /goto :start

	|################################################
	| Should we cast BIG nuke? AKA, did our weave spell proc? And make sure our big nuke is ready.
	/if (${Me.Song[${Proc_WEAVE}].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| We proc'd... cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}

	|################################################
	| Ok, well how about a Gift of Radiant Mana proc? We should also cast a big nuke if that proc'd!
	/if (${Me.Song[Gift of Radiant Mana].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| GoRM proc, cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}

	|################################################
	| Is our WEAVE spell ready?
	/if (${Me.SpellReady[${Spell_WEAVE}]}) {
		/casting ${Spell_WEAVE}
		/delay 5s
		/goto :start
	}

	/goto :start
/return

|################################################
Sub Meditate
	| Are we on a mount?
	/if (${Me.State.NotEqual[MOUNT]} && ${Me.State.NotEqual[SIT]}) /sit
/return

|################################################
Sub GMCheck
	/if (${Spawn[gm].ID}) {
		/echo GM has entered the zone!
		/endmacro
	}
/return
 
I have been using this macro for a couple of weeks, it works out nicely for me. Thank you for this easy to use and simple macro.
 
I added these abilities in to cast just whenever via MQ2Melee, Force of Will basically casts when available, swarm pets if mob is between 88 && 98 HP and Spire will cast if the wizzy detects the ranger's spire buff. That can be altered if you dont have a ranger.

Code:
downshit0=/if (${Me.AltAbilityReady[Call of Xuzl]} && ${Target.PctHPs}>88 && ${Target.PctHPs}<98 && ${Target.Type.Equal[NPC]}) /casting "Call of Xuzl" alt
downshit1=/if (${Me.AltAbilityReady[Force of Will]} && ${Target.PctHPs}>5 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]}) /casting "Force of Will" alt
downshit2=/if (${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]} && ${Me.Buff[Fundament: Third Spire of the Pathfinders].ID} && ${Target.PctHPs}>78 && ${Target.PctHPs}<98) /casting "Fundament: Second Spire of Arcanum" alt
holyshit0=/if (${Me.AltAbilityReady[Call of Xuzl]} && ${Target.PctHPs}>88 && ${Target.PctHPs}<98 && ${Target.Type.Equal[NPC]}) /casting "Call of Xuzl" alt
holyshit1=/if (${Me.AltAbilityReady[Force of Will]} && ${Target.PctHPs}>5 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]}) /casting "Force of Will" alt
holyshit2=/if (${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]} && ${Me.Buff[Fundament: Third Spire of the Pathfinders].ID} && ${Target.PctHPs}>78 && ${Target.PctHPs}<98) /casting "Fundament: Second Spire of Arcanum" alt
 
Here is another version of memset's version i just added a few things.

made it cast pet at 95 %
uses concussion quite a bit to make sure not to steal aggro.
I also took out the weave part and just put in wildmagic spell in it's spot.

changed the harvest around to use newer harvest spell which doesn't show up as a song.

Thanks again memset for starting this.

and yes we are all aware someone else has written another version of this same thing but who cares people like to use different methods all the time.

Code:
|################################################
Sub Main
	| Define your MainTank...
	/declare MainTank string outer "xxxxx"

	/declare Spell_SNARE string outer "Atol's Spectral Shackles"
	/declare Spell_WEAVE string outer "Wildmagic Blast"
	/declare Spell_NUKE string outer "Inizen's Fire Rk. II"
	/declare Spell_BIGNUKE string outer "Ethereal Incineration"
	/declare Spell_HARVEST string outer "Serene Harvest"
	/declare AA_HARVEST string outer "Harvest of Druzzil"
	/declare Spell_PET string outer "Euthanos'Flameblade Rk. II"
	/declare Spell_BONK string outer "Concussive Flash"

	/declare DoSNAREPercent int outer 80
	/declare DoSNARE bool outer TRUE

	/declare DoHARVESTPercent int outer 30

	/declare Proc_WEAVE string outer "Weave of Power"
	/declare Proc_HARVEST string outer "Serene Harvest"

	/declare DoASSISTPercent int outer 90

	|
	| Don't need to edit below this line!
	|

	| Lets see if a MT was passed as an argument to the macro.
	/if (${Defined[Param0]}) {
		| We have a MT passed, lets use that instead of our default!
		/varset MainTank ${Param0}
	}

	| Check if MQ2Cast plugin is loaded, if it isn't... load it automatically. Thanks VillageIdiot & Unity!
	/if (!${Plugin[MQ2Cast].Name.Equal[mq2cast]}) /squelch /plugin MQ2Cast nocheck

	|################################################
	| START OF LOOP
	/echo Wizzy Macro v1.0 by memset
	/echo MAIN TANK/ASSIST: ${MainTank}
	/echo HARVEST PERCENT: ${DoHARVESTPercent}%
	/if (${DoSNARE}) /echo SNARE PERCENT: ${DoSNAREPercent}%

	:start
	/doevents
	/if (${Me.State.NotEqual[SIT]} && !${Target.ID}) /sit
	| Make sure we're not MOVING (ie: autofollow)...
	/if (${Me.Moving}) /goto :start
	| Make sure our MT is within 100 distance of us before we even attempt to /assist.
	/if (${Spawn[${MainTank}].Distance} > 200 || !${Spawn[${MainTank}].ID}) {
		/goto :start
	}
	
	| Main tank is within range.
	| Assist MT, see if mob is within range.

	/assist ${MainTank}
	/delay 8
	

	|################################################
	| Make sure we aren't invis... if we are, don't break it!
	/if (${Me.Invis}) /goto :start

	|################################################
	| Make sure we aren't casting something yet.. if we are, kinda pointless still to continue. Just in case.
	/if (${Me.Casting.ID}) /goto :start
	/if (${Me.Buff[${Proc_HARVEST}].Duration.Ticks}) /goto :start
	

	|################################################
	| See if we need to HARVEST or not.
	/if (${Me.PctMana} <= ${DoHARVESTPercent} && ${Me.SpellReady[${Spell_HARVEST}]}) {
		/casting ${Spell_HARVEST}
		/delay 1s
	}

	|################################################
	| Is our AA harvest ready? Should we use it?
	/if (${Me.PctMana} <=60 && ${Me.AltAbilityReady[Harvest of Druzzil]}) {
		/aa act Harvest of Druzzil
		/delay 6s
	}

	|################################################
	| Make sure target is within range.. and that it is an NPC.
	/if (${Target.Distance} > 200 || ${Target.Type.NotEqual[NPC]} || !${Target.ID}) {
		/goto :start
	}

	|################################################
	| Make sure we aren't HARVESTING... if we are and we cast, that'd waste it entirely.
	/if (${Me.Buff[${Proc_HARVEST}].Duration.Ticks}) /goto :start
	/if (!${Me.Pet.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}<95) {
		/cast 9
		/delay 1s
	}

	|################################################
	| OK, target is within range... should we SNARE?
|	/echo DEBUG: ${Target.PctHPs} --- ${Target.Buff[${Spell_SNARE}].Duration.Ticks} --- ${DoSNARE}
|	/if (${Target.PctHPs} <= ${DoSNAREPercent} && ${Target.Buff[${Spell_SNARE}].Duration.Ticks} < 1 && ${DoSNARE} && !${Target.Named}) {
|		| Yes, we should snare! Mob is at required percent health & is not currently snared.
|		/casting ${Spell_SNARE}
|		/delay 2s
|	}

	|################################################
	| Now we need to decide if we need to NUKE or not. Check the mob's HP percent...
	/if (${Target.PctHPs} > ${DoASSISTPercent}) /goto :start
	/if (${Me.SpellReady[${Spell_BONK}]}) {
		/casting ${Spell_BONK}
		/delay 3s
	}

	|################################################
	| Should we cast BIG nuke? AKA, did our weave spell proc? And make sure our big nuke is ready.
	/if (${Me.Song[${Proc_WEAVE}].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| We proc'd... cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}

	|################################################
	| Ok, well how about a Gift of Radiant Mana proc? We should also cast a big nuke if that proc'd!
	/if (${Me.Song[Gift of Radiant Mana].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| GoRM proc, cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}
	/if (${Me.Song[Gift of Exquisite Radiant Mana].Duration.Ticks} && ${Me.SpellReady[${Spell_BIGNUKE}]}) {
		| GoRM proc, cast a big nuke!
		/casting ${Spell_BIGNUKE}
		/delay 3s
	}


	|################################################
	| Is our WEAVE spell ready?
	/if (${Me.SpellReady[${Spell_WEAVE}]}) {
		/casting ${Spell_WEAVE}
		/delay 1s
	}
	/if (${Me.AltAbilityReady[Force of Will]}) /aa act Force of Will
		

	/if (${Me.SpellReady[${Spell_NUKE}]}) {
		/casting ${Spell_NUKE}
		/delay 5s
		/goto :start
	}

	

	/goto :start
/return
 
What would it look like in the macro if you wanted to use AA snare?
 
Very cool people are finding use for it! I've made some light modifications to the 2nd version I posted, but mostly it's the same thing... and it's worked very nicely for me since I originally made it.

I do encourage people to modify the macro to suit their own needs (or others) to get more enjoyment and satisfaction!

To do an AA snare instead, you'd use something along the lines of /aa act <insert name of snare AA here> ... replacing the /casting line.. and change the /if statement. I'm sure VI or someone could post the modified macro, but if not I'll try to get around to it soon... been really swamped with work and RL lately.
 
and yes we are all aware someone else has written another version of this same thing but who cares people like to use different methods all the time.

Yeah, I honestly didn't even check if another wizard macro existed before mine... I enjoy writing macros and it was fun writing this simple one.

I couldn't get shamanbot to work right at all... spent hours trying to configure it.. and in the end, I still had to use /tells or channels to get it to cast on me. All I wanted was a shaman macro that would keep languor (or listlessness), wild growth rk2, champion, lynx, etc buffs on me at the appropriate times, click shaman epic, auto-slow mobs and patch heal me when/if needed.... I ended up writing my own macro for my shaman from scratch to do exactly that in less time I spent trying to configure shamanbot haha. (Note: I say "me", but there is a maintank variable... just, I'm always the tank :))

Since most seemed to be pretty satisfied with shambot, I never bothered posting it here... but I could if someone wanted a copy of it.
 
What would it look like in the macro if you wanted to use AA snare?
Code:
/if (${Target.PctHPs}<SomeValue && ${Me.AltAbilityReady[SomeAAName]}) /call cast "SomeAAName"
 
forgot to add in a timer / varset for when it lands but its pretty trivial to add that.
 
Tweaked Dev's magebot to fit wiz for hands free nuking similar to this... verified as working on my end just waiting on any tweaks he wants to put out before it goes public since i know shit about programming language... will work with mercs and renews self/group buffage... same basis though where it fires mana weave nuke repeatedly until it gets a gift of mana proc or mana weave recourse then fires the big dog or big mana costing nuke.

Just as heads up my tweak requires group mode no solo.
 
I use the one by Gummy posted here,

http://www.mmobugs.com/forums/everq...uis/6017-mindless-nuke-macro-for-wizards.html

With edits for an 85 wizzy Max AA and some safeguards against dying that involves warp and fade so beware if you use it.

Code:
|-----------------------------|
|---------mindwiz.mac---------|
|-----------------------------|

#include spell_routines.inc

#Event SnareWornOff "Your |${Snare}| spell has worn off#*#"
#Event Summoned "You have been summoned!"
#Event ImHit "#*#YOU for#*#points of damage."

Sub Main

|-------------------------------|
|-- Edit These To Your Liking --|
|-------------------------------|
/declare SelfRune string outer Squamae of the Crystalwing Rk. II
/declare SelfHPBuff string outer Shield of the Crystalwing
/declare SmallNuke string outer Claw of Gorenaire
/declare BigNuke string outer Ethereal Combustion
/declare Concussion string outer Concussive Flash
/declare Harvest string outer Serene Harvest Rk. II
/declare Snare string outer Atol's Spectral Shackles
/declare Flappy string outer E'ci's Icy Familiar
/declare SnareAt int outer 95
/declare NukeAt int outer 80/vie/
/declare ConcussionAfter int outer 2
/declare UseHarvestBelow int outer 70
/declare MedAt int outer 20
/declare ReAssist timer outer 10s
|--------------|
|-- END EDIT --|
|--------------|

/doevents
/call Initialize
/echo Time to NUKE some shit!
/keypress esc

:MainLoop
/doevents
/call CheckHP
/call CheckBuffs
/call CheckAA
/call CheckTarget
/call Nuke
/call Snare
/call CheckHarvest
/call CheckMana
/doevents
/goto :MainLoop

/return

|-------------------------------|
|-- Sub Initialize -------------|
|-------------------------------|
Sub Initialize
/if (!${Target.ID} || ${Target.Type.NotEqual[PC]} || ${Target.ID}==${Me.ID}) {
  /echo Please target the main tank before running the macro
  /end
}
/declare MainTank int outer ${Target.ID}
/declare SRG int outer ${Me.Gem[${SelfRune}]}
/declare SNG int outer ${Me.Gem[${SmallNuke}]}
/declare BNG int outer ${Me.Gem[${BigNuke}]}
/declare CBG int outer ${Me.Gem[${Concussion}]}
/declare SG int outer ${Me.Gem[${Snare}]}
/declare CBC int outer 0
/declare TarID int outer
/declare SIM int outer 0
/declare Snared int outer 0
/if (!${SRG} || !${SNG} || !${BNG} || !${CBG} || !${SG}) /multiline ; /echo Missing A Spell! ; /end
/return

|-------------------------------|
|-- Sub Check Buffs ------------|
|-------------------------------|
Sub CheckBuffs
 /if (!${Me.Buff[${SelfRune}].ID} && ${Me.CurrentMana}>=${Spell[${SelfRune}].Mana} && ${Me.SpellReady[${SelfRune}]}) /call cast "${SelfRune}" gem${SRG}
 /if (!${Me.Buff[${SelfHPBuff}].ID} && ${Me.CurrentMana}>=${Spell[${SelfHPBuff}].Mana} && ${Me.SpellReady[${SelfHPBuff}]}) /call cast "${SelfHPBuff}"
 /if (!${Me.Buff[Cryomancy].ID} && ${Me.AltAbilityReady[Cryomancy]} && !${Me.Casting.ID}) /call cast "Cryomancy" alt
 /if (!${Me.Buff[${Flappy}].ID} && ${Me.AltAbilityReady[${Flappy}]} && !${Me.Casting.ID}) /call cast "${Flappy}" alt
 /if (${Me.Pet.ID}) /pet get lost
/return

|-------------------------------|
|-- Sub Check Target -----------|
|-------------------------------|
Sub CheckTarget
 /if ((!${Target.ID} || ${Target.Type.NotEqual[NPC]} || !${ReAssist}) && ${Spawn[id ${MainTank} radius 300].ID}) {
   /assist ${Spawn[id ${MainTank}]}
   /varset ReAssist ${ReAssist.OriginalValue}
 }
 /if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.ID}!=${TarID}) {
   /varset TarID ${Target.ID}
   /varset CBC 0
   /varset Snared 0
 }

/return

|-------------------------------|
|-- Sub Nuke--------------------|
|-------------------------------|
Sub Nuke
 /doevents
 /if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Volatile Mana Blaze].ID} && ${Me.AltAbilityReady[Volatile Mana Blaze]} && !${Me.Casting.ID} && ${Target.PctHPs}<80 && ${Target.PctHPs}>40) /call cast "Volatile Mana Blaze" alt
 /if (${Target.PctHPs}>80 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Focus of Arcanum]}) /call cast "Focus of Arcanum" alt
 /if (${Target.PctHPs}>80 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]}) /call cast "Fundament: Second Spire of Arcanum" alt
 /if (${Target.PctHPs}<=${NukeAt} && ${Target.ID} && ${Target.Type.Equal[NPC]}) {
    /if (${Me.Song[Gift of Radiant Mana].ID} && ${Me.CurrentMana}>=${Spell[${BigNuke}].Mana} && ${Me.SpellReady[${BigNuke}]} && ${Target.Distance}<=${Spell[${BigNuke}].Range} && ${Target.LineOfSight}) {
      /call cast "${BigNuke}" gem${BNG}
      /varcalc CBC ${CBC}+1
    }
    /if (${Me.CurrentMana}>=${Spell[${SmallNuke}].Mana} && ${Me.SpellReady[${SmallNuke}]} && ${Target.Distance}<=${Spell[${SmallNuke}].Range} && ${Target.LineOfSight} && ${CBC}<${ConcussionAfter}) {
      /call cast "${SmallNuke}" gem${SNG}
      /varcalc CBC ${CBC}+1
    }
    /if (${Me.CurrentMana}>=${Spell[${Concussion}].Mana} && ${Me.SpellReady[${Concussion}]} && ${Target.Distance}<=${Spell[${Concussion}].Range} && ${Target.LineOfSight} && ${CBC}>=${ConcussionAfter}) {
      /call cast "${Concussion}" gem${CBG}
      /varset CBC 0
    }
 }
 
 /return

|-------------------------------|
|-- Sub Snare ------------------|
|-------------------------------|
Sub Snare
  /if (${Target.PctHPs}<=${SnareAt} && ${Target.ID} && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Atol's Shackles]} && ${Snared}==0) /call cast "Atol's Shackles"
  /if (${Macro.Return.Equal[CAST_IMMUNE]} || ${Macro.Return.Equal[CAST_SUCCESS]}) /varset Snared 1		
/return

|-------------------------------|
|-- Sub Check Mana Harvest -----|
|-------------------------------|
Sub CheckHarvest
  /if (${Me.PctMana}<${UseHarvestBelow} && ${Me.AltAbilityReady[Harvest of Druzzil]} && ${Me.State.Equal[STAND]}) {
     /call cast "Harvest of Druzzil" alt
  }
  /if (${Me.PctMana}<${UseHarvestBelow} && ${Me.SpellReady[${Harvest}]} && ${Me.State.Equal[STAND]}) {
     /call cast "${Harvest}"
      /if (${Harvest.Left[7].Equal[Patient]}) {
        /delay 2s ${Me.Song[${Harvest}].ID}
        /delay 1s
        /delay 25s !${Me.Song[${Harvest}].ID}
     } else {
        /delay 10s
     }
  }
/return

|-------------------------------|
|-- Sub Check Mana -------------|
|-------------------------------|
Sub CheckMana
  /if (${Me.Song[Gift of Radiant Mana].ID}) /return
  /if (${Me.PctMana}<${MedAt}) {
    /echo Mana is below ${MedAt}% .. medding up
    :Cycle
    /call CheckHarvest
    /if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]} && ${Me.CombatState.NotEqual[COMBAT]}) /sit
    /if (${Me.PctMana}<100) /goto :Cycle
    /echo Finished medding.
  }
/return

|-------------------------------|
|-- Sub Event Hit --------------|
|-------------------------------|
Sub Event_ImHit
/echo Im being beat up on, do something!!
/if (${Me.PctHPs}<70) /potionbelt activate 2
	
 /if (${Me.PctHPs}<30) {
	/fade
	/delay 60s
	}
	
 /if (${Me.PctHPs}<15) {
	/warp s
	/end
	}
/return

|-------------------------------|
|-- Sub Check AA  --------------|
|-------------------------------|
Sub CheckAA

/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Silent Casting].ID} && ${Me.AltAbilityReady[Silent Casting]} && !${Me.Casting.ID} && ${Target.PctHPs}>85 && ${Target.PctHPs}<98) /call cast "Silent Casting" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Arcane Whisper].ID} && ${Me.AltAbilityReady[Arcane Whisper]} && !${Me.Casting.ID} && ${Target.PctHPs}<30) /call cast "Arcane Whisper" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Call of Xuzl].ID} && ${Me.AltAbilityReady[Call of Xuzl]} && !${Me.Casting.ID} && ${Target.PctHPs}>90 && ${Target.PctHPs}<95) /call cast "Call of Xuzl" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Force of Will].ID} && ${Me.AltAbilityReady[Force of Will]} && !${Me.Casting.ID} && ${Target.PctHPs}<70 && ${Target.PctHPs}<99) /call cast "Force of Will" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Mind Crash].ID} && ${Me.AltAbilityReady[Mind Crash]} && !${Me.Casting.ID} && ${Target.PctHPs}<60) /call cast "Mind Crash" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Prolonged Destruction]} && !${Me.Casting.ID} && ${Target.PctHPs}>95 && ${Target.PctHPs}<99) /call cast "Prolonged Destruction" alt
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Ward of Destruction].ID} && ${Me.AltAbilityReady[Ward of Destruction]} && !${Me.Casting.ID} && ${Target.PctHPs}>98 && ${Target.PctHPs}<99) /call cast "Ward of Destruction" alt
 
/return

|-------------------------------|
|-- Sub Check HP --------------|
|-------------------------------|
Sub CheckHP
/doevents
/if (${Me.PctHPs}<40) {
	/fade
	/delay 60s
	}
/if (${Me.PctHPs}<10) {
	/warp s
	/end
	}	
	
|-------------------------------|
|-- Event Snare Wore Off ----|
|-------------------------------|
Sub Event_SnareWornOff
  /varset Snared 0
  /call Snare
/return
 
Seem to be missing a /return under the Sub CheckHP, or am I missing something?

Also, you're checking for Gift of Radiant Mana, which is only good up to level 75 spells and then casting a level 85 nuke. I assume you mean to be checking for Gift of Amazing Exquisite Radiant Mana.
 
One small modifcation I made in the Check Harvest Sub (I took out the Patient Harvest stuff because I know I'll never use it again)

Code:
Sub CheckHarvest
  /if (${Me.PctMana}<${UseHarvestBelow} && ${Me.AltAbilityReady[Harvest of Druzzil]} && ${Me.State.Equal[STAND]}) {
     /call cast "Harvest of Druzzil" alt
  }
  /if (${Me.PctMana}<${UseHarvestBelow} && ${Me.SpellReady[${Harvest}]} && ${Me.State.Equal[STAND]}) {
     /call cast "${Harvest}"
     /delay 5s
  }
:HarvestDelay
 /if (${Me.Buff[${Harvest}].ID}) {
     /delay 1s
     /goto :HarvestDelay
 }

/return
That should help ensure that you don't accidently cast while your Harvest recourse is still waiting to trigger, while also helping to eliminate any unnessicary lost nuke time.
 
Thanks! Im glad I posted that I probably never would have remembered to update to Gift of Amazing Exquisite Radiant Mana. I must have accidentally deleted the /return when I was remove the | off it.

Why will you never use Serene Harvest again? Just because the fast regen when out of combat? Im curious cuz I have been using it but maybe I should rethink that?
 
Why will you never use Serene Harvest again? Just because the fast regen when out of combat? Im curious cuz I have been using it but maybe I should rethink that?

He probably groups with a bard or someone using taps. It cancels out your patient harvest sadly.
 
No, I use Serene Harvest, I was just saying I took out the checks for Patient Harvest (the check that is in there to check if it's Patient, since that goes to song window instead of Serene, which goes to buff-I could have added in some extra checks to cover both instances for the coutdown stuff I added in, but since I know I'll never use Patient again, I took the lazy way out and just removed that completely).

I'm also curious why you have it set to use Ice focus/small nuke and then a fire nuke for your big one. In my experience, Fire is better overall anyway, but I was really just confused why you were going both types with it.

I'm actually working on some updates to this that will cycle spells a bit more efficiently. Cycling through nukes to avoid waiting on downtimes and to maximize DPS. Should have it ready to go soon.
 
Ah, ic! I thought maybe there was something I didn't know about it. Which is quite possible because I have only recently aquired my Wizzy so other than doing wicked nukes I dont know a whole lot about him.

Im curious, (addressed to any real Wizzys out there) The configuration I have with using the cold nukes as the primary with the cold fam and AA then using the big fire nuke is that normal practice? Is there a better way?
 
Most wizards who have done the research go Fire flappy/pyromancy and then cycle Wildmagic Blast/Wildmagic Burst until GoM proc and then do either Ethereal Combustion/Ethereal Incineration, depending on what type of GoM proc they got. With solid gear and a raid setup, you can basically spam that forever.

You get a nice DPS boost from popping the damage discs (Fury of Ro, Second Spire, Focus of Arcanum) and then hitting Twincast and cycling the two Ethereal's until TC wears off. If you're doing it towards the start of the fight, it's an ideal time to cast Silent Casting, as well.

Concussion seems to be a topic of debate still-depending on your gear/AA, I've found that any decent tank will never loose agro to you after the mob is down to 95% if you lead off with Mindfreeze, unless you immediately start Twincasting. Some still swear by using the Concussive line, but it seems a waste of DPS to me when I could pop a Mindfreeze and have a chance of getting an 8K crit AND getting agro reduction. But I also have maxed Spell Casting Sublety and am still weilding epic 2.0 so I get that couple % points of reduction. It's still a matter of personal preference, your AA's/gear and the abilities of the tank in your group, however.

Spamming the AAs as soon as they pop is a pretty ineffective use, as well-one of the things I'll be changing is removing that and adding Mind Crash into the I'm Hit code, and just leaving a lot of them to be manually triggered when I want them. The use of the pets and especially Force of Will is solid, though.

Mana Blaze, Ward of Destruction and Prolonged Destruction are basically useless, I wish I could get refunds on the lot =x

I also think I'm going to change it to use MQ2Cast instead of the spell_routines, just a personal preference, though.