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

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?

My macro for my wizard uses Wildmagic line and Chaos Conf. line to proc GoM's for the big nuke. I also use the cold nuke concussion about every 6 casts, actually its randomized with a range of 4-8 successful casts.
 
Hey Anthrax can you post or PM me a copy of your Wizzy mac?
 
Here's my initial edit, I haven't really tested it and there's a ton of stuff in there that's just commented out because other people might want to use them-next edit will likely have a lot of them just flat out erased instead. I also added in a variable to change if you want it to do Mind Crash when you get hit. Some fights you just know hits are going to happen and you might not want to waste the MC.
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(int MindCrash)

|-------------------------------|
|-- Edit These To Your Liking --|
|-------------------------------|
/declare SelfRune string outer Squamae of the Crystalwing Rk. II
/declare SelfHPBuff string outer Shield of the Crystalwing
/declare SmallNuke85 string outer Wildmagic Blast
/declare SmallNuke80 string outer Wildmagic Burst
/declare BigNuke85 string outer Ethereal Combustion Rk. II
/declare BigNuke80 string outer Ethereal Incineration Rk. II
/declare Concussion string outer Mindfreeze
/declare Harvest string outer Serene Harvest Rk. II
/declare Snare string outer Atol's Shackles
/declare Flappy string outer Ro's Flaming Familiar
/declare SnareAt int outer 95
/declare NukeAt int outer 95
/declare ConcussionAfter int outer 0
/declare UseHoDBelow int outer 70
/declare UseHarvestBelow int outer 50
/declare MedAt int outer 30
/declare ReAssist timer outer 4s
|--------------|
|-- 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
/doevents
/call CheckHarvest
/call CheckMana
/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[${SmallNuke85}]}
/declare BNG int outer ${Me.Gem[${BigNuke85}]}
/declare SN2 int outer ${Me.Gem[${SmallNuke80}]}
/declare BN2 int outer ${Me.Gem[${BigNuke80}]}
/declare CBG int outer ${Me.Gem[${Concussion}]}
/declare CBC int outer 0
/declare TarID int outer
/declare SIM int outer 0
/declare Snared int outer 0
/if (!${SRG} || !${SNG} || !${BNG} || !${CBG} || !${SN2} || !${BN2}) /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}]}) /casting "${SelfRune}"
| /if (!${Me.Buff[${SelfHPBuff}].ID} && ${Me.CurrentMana}>=${Spell[${SelfHPBuff}].Mana} && ${Me.SpellReady[${SelfHPBuff}]}) /casting "${SelfHPBuff}"
| /if (!${Me.Buff[Cryomancy].ID} && ${Me.AltAbilityReady[Cryomancy]} && !${Me.Casting.ID}) /casting "Cryomancy"
 /if (!${Me.Buff[${Flappy}].ID} && ${Me.AltAbilityReady[${Flappy}]} && !${Me.Casting.ID}) /casting "${Flappy}"
 /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"
| /if (${Target.PctHPs}>80 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Focus of Arcanum]}) /casting "Focus of Arcanum"
| /if (${Target.PctHPs}>80 && ${Target.PctHPs}<95 && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]}) /casting "Fundament: Second Spire of Arcanum"
 /if (${Target.PctHPs}<=${NukeAt} && ${Target.ID} && ${Target.Type.Equal[NPC]}) { 
    /if (${Me.CurrentMana}>=${Spell[${Concussion}].Mana} && ${Me.SpellReady[${Concussion}]} && ${Target.Distance}<=${Spell[${Concussion}].Range} && ${Target.LineOfSight} && ${CBC}==${ConcussionAfter}) {
      /casting "${Concussion}"
      /varcalc CBC ${CBC}+1
    }
    /if (${Me.Song[Gift of Amazing Exquisite Radiant Mana].ID} && ${Me.CurrentMana}>=${Spell[${BigNuke85}].Mana} && ${Me.SpellReady[${BigNuke85}]} && ${Target.Distance}<=${Spell[${BigNuke85}].Range} && 

${Target.LineOfSight}) {
      /casting "${BigNuke85}"
    }
    /if (${Me.Song[Gift of Exquisite Radiant Mana].ID} && ${Me.CurrentMana}>=${Spell[${BigNuke80}].Mana} && ${Me.SpellReady[${BigNuke80}]} && ${Target.Distance}<=${Spell[${BigNuke80}].Range} && 

${Target.LineOfSight}) {
      /casting "${BigNuke80}"
    }
    /if (${Me.CurrentMana}>=${Spell[${SmallNuke85}].Mana} && ${Me.SpellReady[${SmallNuke85}]} && ${Target.Distance}<=${Spell[${SmallNuke85}].Range} && ${Target.LineOfSight}) {
      /casting "${SmallNuke85}"
    }
    /if (${Me.CurrentMana}>=${Spell[${SmallNuke80}].Mana} && ${Me.SpellReady[${SmallNuke80}]} && ${Target.Distance}<=${Spell[${SmallNuke80}].Range} && ${Target.LineOfSight}) {
      /casting "${SmallNuke80}"
    }
 }
 
 /return

|-------------------------------|
|-- Sub Snare ------------------|
|-------------------------------|
Sub Snare
  /if (${Target.PctHPs}<=${SnareAt} && ${Target.ID} && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Atol's Shackles]} && ${Snared}==0) /casting "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}<${UseHoDBelow} && ${Me.AltAbilityReady[Harvest of Druzzil]} && ${Me.State.Equal[STAND]}) {
     /casting "Harvest of Druzzil"
  }
  /if (${Me.PctMana}<${UseHarvestBelow} && ${Me.SpellReady[${Harvest}]} && ${Me.State.Equal[STAND]}) {
     /casting "${Harvest}"
     /delay 5s
  }
:HarvestDelay
 /if (${Me.Buff[${Harvest}].ID}) {
     /delay 1s
     /goto :HarvestDelay
 }

/return


|-------------------------------|
|-- Sub Check Mana -------------|
|-------------------------------|
Sub CheckMana
  /if (${Me.Song[Gift of Amazing Exquisite Radiant Mana].ID}) /return
  /if (${Me.Song[Gift of Exquisite Radiant Mana].ID}) /return
  /if (${Me.PctMana}<${MedAt} && ${Me.CombatState.NotEqual[COMBAT]}) {
    /echo Mana is below ${MedAt}% .. medding up
    :Cycle
|    /call CheckHarvest
    /if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]}) /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.Mount.ID}) /dismount
/keypress duck
/keypress duck
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Me.AltAbilityReady[Mind Crash]} && !${MindCrash}==0) /casting "Mind Crash"

|/if (${Me.PctHPs}<70) /potionbelt activate 2
	
| /if (${Me.PctHPs}<30) {
|	/fade
|	/delay 60s
|	}
	
| /if (${Me.PctHPs}<15) {
|	/warp s
|	/end
|	}
/delay 15s

/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) /casting "Silent 

Casting"
|/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Arcane Whisper].ID} && ${Me.AltAbilityReady[Arcane Whisper]} && !${Me.Casting.ID} && ${Target.PctHPs}<30) /casting "Arcane Whisper"
/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) /casting "Call of 

Xuzl"
/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) /casting "Force of 

Will"
|/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Buff[Mind Crash].ID} && ${Me.AltAbilityReady[Mind Crash]} && !${Me.Casting.ID} && ${Target.PctHPs}<60) /casting "Mind Crash"
|/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) 

/casting "Prolonged Destruction"
|/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) 

/casting "Ward of Destruction"
 
/return

|-------------------------------|
|-- Sub Check HP --------------|
|-------------------------------|
Sub CheckHP
/doevents
/if (${Me.PctHPs}<40) {
	/fade
	/delay 60s
	}
/if (${Me.PctHPs}<10) {
	/warp s
	/end
	}	
/return
	
|-------------------------------|
|-- Event Snare Wore Off ----|
|-------------------------------|
Sub Event_SnareWornOff
  /varset Snared 0
  /call Snare
/return
 
It sounds like your more semi-afk or maybe even playing your wizzy. The only reason I need a macro is so I can turn it on and forget about it. I never even see my wizzy's screen let alone manually do shit on him.

Im curious tho why you don't like volatile mana blaze. I love seeing that 67000 damage rolling across the screen while Im tanking on the other puter!
 
It sounds like your more semi-afk or maybe even playing your wizzy. The only reason I need a macro is so I can turn it on and forget about it. I never even see my wizzy's screen let alone manually do shit on him.

Im curious tho why you don't like volatile mana blaze. I love seeing that 67000 damage rolling across the screen while Im tanking on the other puter!
Yeah, I mostly want mine just to eliminate sitting there spamming the same keys over and over.

As for mana blaze, it's a pretty inefficient use of mana. As for 67000 damage, with Second Spire, 7th and a T3 SoD fire focus, you can crit for more than 67K with EC Rk2. Even without 2nd and 7th, you'll still crit for 40Kish. Makes it a far more efficient way to kill over time.
 
What exactly is 7th? (pardon my Wizzy ignorance a bit further plz lol)
 
Intensity of the Resolute-aka 7th year veteran's reward.

Honestly, the biggest thing to take from my updated macro would be the conversion to a fire-focused lineup and cycling the two Wildmagic spells with the big nukes ready to run off the GoM procs. A lot of the other stuff that I left in as commented out for this revision you could add back in and it would be still usable as a mindless group bot.
 
Dang! Ten more months and I will have it!
 
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)

Why won't you use Patient Harvest ever again?
 
Couple things:

1: How would you add a trigger for the epic? The 1.5 trigger makes detrimental spells less resistant so I'd like to proc that bad boy.

2: I'm still new to wizarding, so is the Wildmagic line the next step up from Mana Weave? Graffe is pretty out of date.

TIA.
 
Couple things:

1: How would you add a trigger for the epic? The 1.5 trigger makes detrimental spells less resistant so I'd like to proc that bad boy.

2: I'm still new to wizarding, so is the Wildmagic line the next step up from Mana Weave? Graffe is pretty out of date.

TIA.
First off, if you read a bit further, you'll see that I'll never use Patient Harvest again (which adds a buff to the song window) because I use Serene Harvest (which adds a buff to the buff window).

1)add this line wherever you want-I would suggest the AACheck sub routine-the first is for epic 2.0/2.5 and the second is for 1.5.
Code:
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Casting.ID} && ${Target.PctHPs}<${NukeAt} && !${FindItem[Staff of Phenomenal Power].Timer}) /itemnotify ${FindItem[=Staff of Phenomenal Power].InvSlot} rightmouseup

/if (${Target.ID} && ${Target.Type.Equal[NPC]} && !${Me.Casting.ID} && ${Target.PctHPs}<${NukeAt} && !${FindItem[Staff of Prismatic Power].Timer}) /itemnotify ${FindItem[=Staff of Prismatic Power].InvSlot} rightmouseup

2) No, Wildmagic is a completely different line than the Mana Weave line. You can get the first of them starting at level 71 (and then again at 76 and 81).