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>
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: