Mindless Nuke Macro for Wizards

cheater010

Lifetimer
Joined
Oct 28, 2006
Messages
78
Reaction score
2
Points
0
Hi all,

as the title says:
Have Fun all .....

Code:
|-----------------------------|
|-------Idea Cheater010-------|
|---Written by GummySquirrel--|
|-----------------------------|

#include spell_routines.inc

#Event SnareWornOff "Your |${Snare}| spell has worn off#*#"

Sub Main

|-------------------------------|
|-- Edit These To Your Liking --|
|-------------------------------|

/declare SelfRune string outer Scales of the Crystalwing
/declare SelfHPBuff string outer Shield of the Crystalwing
/declare SmallNuke string outer Flashfires
/declare BigNuke string outer Ethereal Conflagration Rk. II
/declare Concussion string outer Concussive Blast
/declare Harvest string outer Patient Harvest
/declare Snare string outer Atol's Spectral Shackles
/declare Flappy string outer Ro's Incendiary Familiar


/declare SnareAt int outer 95
/declare NukeAt int outer 90
/declare ConcussionAfter int outer 2
/declare UseHarvestBelow int outer 70
/declare MedAt int outer 30
/declare ReAssist timer outer 10s

|--------------|
|-- END EDIT --|
|--------------|


/call Initialize

/echo Beginning Mindless Wizard Nuking...

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


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 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[Pyromancy].ID} && ${Me.AltAbilityReady[Pyromancy]} && !${Me.Casting.ID}) /call cast "Pyromancy" 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 CheckTarget
 /if ((!${Target.ID} || ${Target.Type.NotEqual[NPC]} || !${ReAssist}) && ${Spawn[id ${MainTank} radius 200].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
 /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
  /if (${Target.PctHPs}<=${SnareAt} && ${Target.ID} && ${Target.Type.Equal[NPC]} && ${Snared}==0) {
     /call cast "${Snare}" gem${SG}
     /if (${Macro.Return.Equal[CAST_IMMUNE]} || ${Macro.Return.Equal[CAST_SUCCESS]}) /varset Snared 1
  }
/return

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 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_SnareWornOff
  /varset Snared 0
  /call Snare
/return
 

Attachments

  • Wizard.mac
    5 KB · Views: 345
Last edited by a moderator:
You broke the boards!

But seriously, for the macro-reading-impaired here's a quick rundown of what this does

  • Keeps Rune and Caster HP buff on
  • Keeps up Pyromancy and Fire Familiar
  • Assists your MT and begins nuking/snaring
  • Chain nukes your small nuke, and then lands a big one when Gift of Radiant Mana procs
  • Casts concussion after 2 nukes
  • Recasts snare if it wears off early
  • Uses your harvest spell and AA when you drop below 70% mana
  • Meds up when you get low on mana
  • Re-assists your MT if he is in range, default is every 10 seconds
  • You MUST have Rune + Small Nuke + Large Nuke + Snare + Concussion memorized or the macro will not begin
  • You MUST target your MT before you start the macro, or it will end
 
Last edited:
Added

  • Waits until out of combat before medding when low on mana (Thanks to Joemama for the idea)

Fixed:

  • Harvest not casting sometimes
 
Yes it works, just update it to your needs.. you can just set AE snare to 0PCT to make him never cast it.
 
is there a way to add a follow command. I have a shaman and mage one that i can set a master and send a tell saying follow or follow stop and the toon will follow the master.

I am still learning macros and tried to copy past some stuff but just ended up breaking it :confused:
 
I add these to my macros and have a hotkey setup that just does a /target mymain'sname

Code:
#Chat Group
#Chat Tell

#event foll "#1# tells the group, 'Follow me hoes#*#"
#event stopfol "#1# tells the group, 'Stop Here#*#"
#event fellowship "#1# tells the group, 'port to campfire#*#"
.
.
.
.
.
Sub Event_fellowship      
/call Cast "Fellowship Registration Insignia" item
/return

Sub Event_stopfol  
/stick off
/return

Sub Event_foll
  /keypress 1
/stick
/return

alternativly you could have it do insted of a keypress: and it would follow anyone who gave the command. I always have issues with /target sender and it picking up the person's familiar or warders.

Code:
Sub Event_foll(Line,Sender)
/target ${Sender}
/stick
/return
 
Last edited:
Code:
/target ${Sender}

just returns null.
am i missing something to have it /rt
 
how would you make this cast Cyromancy instead of Pyromancy? or take off the casting of pyromancy?
 
try changing this line

/if (!${Me.Buff[Pyromancy].ID} && ${Me.AltAbilityReady[Pyromancy]} && !${Me.Casting.ID}) /call cast "Pyromancy" alt

to

/if (!${Me.Buff[Cyromancy].ID} && ${Me.AltAbilityReady[Cyromancy]} && !${Me.Casting.ID}) /call cast "Cyromancy" alt
 
Getting error "Missing A Spell"

Anyone able to help?
 
one of the spells you have /declared is not memorized. or perhaps you spelled the name incorrectly or didn't put in the proper rank of the spell.
 
Anyone use this macro that can help me plz

The only prob I am having with it is this :

Once my Wizard in under 30% mana he sits and he will only sit once he gets under 30. Once he sits he will not even attack again until he is full mana.

Anyone know how to make him sit after each kill? Alaso, how do I get him to continue attacking as long as his mana is over 30 or whatever % I pick?
 
Seems easy enough...just looked thru the macro and thread for the first time.

/declare MedAt int outer 30

Change the med% from 30 to 95 or so, since it says he won't med until after the fight. He'll cast the nukes, snare, harvest, etc. until after each fight when he checks his mana. Since you're setting it high, he'll basically med after each fight...assuming you'll use at least 5% mana during the fight :)
 
Seems easy enough...just looked thru the macro and thread for the first time.

/declare MedAt int outer 30

Change the med% from 30 to 95 or so, since it says he won't med until after the fight. He'll cast the nukes, snare, harvest, etc. until after each fight when he checks his mana. Since you're setting it high, he'll basically med after each fight...assuming you'll use at least 5% mana during the fight :)

Setting the med% so high would be a massive waste of Patient Harvest.
 
sit while not in battle

how / where would i put code to make the wiz sit if not in battle ?



CODE:


Code:
|-----------------------------|
|-------Idea Cheater010-------|
|---Written by GummySquirrel--|
|-----------------------------|

#include spell_routines.inc

#Event SnareWornOff "Your |${Snare}| spell has worn off#*#"

Sub Main

|-------------------------------|
|-- Edit These To Your Liking --|
|-------------------------------|

/declare SelfRune string outer Nethermist Guard Rk. II
/declare SelfHPBuff string outer Shield of the Void
/declare BigNuke string outer Ethereal Iceblight
/declare SmallNuke string outer Wildmagic Blast
/declare Concussion string outer Concussive Flash
/declare Harvest string outer Serene Harvest Rk. II
/declare Snare string outer Fetter
/declare Flappy string outer Ro's Flaming Familiar


/declare SnareAt int outer 00
/declare NukeAt int outer 90
/declare ConcussionAfter int outer 80
/declare UseHarvestBelow int outer 60
/declare MedAt int outer 10
/declare ReAssist timer outer 10s

|--------------|
|-- END EDIT --|
|--------------|


/call Initialize

/echo Beginning Mindless Wizard Nuking...

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


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 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[Pyromancy].ID} && ${Me.AltAbilityReady[Pyromancy]} && !${Me.Casting.ID}) /call cast "Pyromancy" 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 CheckTarget
 /if ((!${Target.ID} || ${Target.Type.NotEqual[NPC]} || !${ReAssist}) && ${Spawn[id ${MainTank} radius 200].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
 /if (${Target.PctHPs}<=${NukeAt} && ${Target.ID} && ${Target.Type.Equal[NPC]}) {
    /if (${Me.Song[Gift of Amazing Exquisite 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
  /if (${Target.PctHPs}<=${SnareAt} && ${Target.ID} && ${Target.Type.Equal[NPC]} && ${Snared}==0) {
     /call cast "${Snare}" gem${SG}
     /if (${Macro.Return.Equal[CAST_IMMUNE]} || ${Macro.Return.Equal[CAST_SUCCESS]}) /varset Snared 1
  }
/return

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 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_SnareWornOff
  /varset Snared 0
  /call Snare
/return
 
Just set your medat to like 95%.

Code:
Sub CheckMana
  /if (${Me.Song[Gift of Radiant Mana].ID}) /return
  /if (${Me.PctMana}<${MedAt}) {   [COLOR="Red"]<-----check if your mana below medat[/COLOR]
    /echo Mana is below ${MedAt}% .. medding up
    :Cycle
    /call CheckHarvest   [COLOR="Red"]<-----check if your below harvest levels[/COLOR]
    /if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]} && ${Me.CombatState.NotEqual[COMBAT]}) /sit [COLOR="Red"]<-----sit if out of combat and not on mount[/COLOR]
    /if (${Me.PctMana}<100) /goto :Cycle
    /echo Finished medding.
  }
/return
 
Need to change your med sub then to facilitate just sitting whenever not in combat. The below should work.

Code:
Sub CheckMana
  /if (${Me.Song[Gift of Radiant Mana].ID}) /return
  /if (${Me.CombatState.NotEqual[COMBAT]})
    /delay ${Math.Rand[50]}
    :Cycle
    /call CheckHarvest   <-----check if your below harvest levels
    /if (!${Me.Mount.ID} && ${Me.State.Equal[STAND]} && ${Me.CombatState.NotEqual[COMBAT]}) /sit <-----sit if out of combat and not on mount
    /echo Out of Combat, Medding up and waiting for next target.
  }
/return