- Joined
- Oct 5, 2012
- RedCents
- 2,324¢
** THIS IS A WORK IN PROGRESS **
As it stands this is a very basic primitive macro for Wizard by almost every standard, however I am gradually working on it. So far it has served its purpose though. It is lacking a few nice things, but the Wizard I have to test and play around with is only in his 50s. I hope this helps anyone playing WFH and could use it.
What is will do:

**Place it in your MQ2 Macro folder, target the person you plan to have as your Main Assist, and /mac WFHWiz to begin.
[CODE lang="ini" title="Wayfarer's Haven Wizard"]
#turbo 40
#event ResetTimers "You have slain#*#"
#event ResetTimers "##has been slain##"
Sub Main
/declare AssistAt int outer 70
/declare AssistAtDis int outer 100
/declare WizardNuke1 string outer "Draught of Fire"
/declare WizardNuke1Mana int outer 215
/declare WizNukeTimer1 timer outer 0
/declare WizardNuke2 string outer "Rend"
/declare WizardNuke2Mana int outer 280
/declare WizNukeTimer2 timer outer 0
/declare SitTimer timer outer 0
/declare WizSelfBuff1 string outer "Lesser Familiar"
/declare WizBuffMana int outer 490
/declare MainAssist string outer ${Target.CleanName}
/assist off
/echo Wayfarer's Haven Wizard Macro has started
/echo Main Assist is ${MainAssist}
/echo Nuking enemies at ${AssistAt}%
:loop
/doevents
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :loop
/call Nuke1
/call Nuke2
/call SelfBuffs
/call ManaCheck
/delay 2
/goto :loop
/return
Sub Nuke1
/if (${Me.CurrentMana}<${WizardNuke1Mana}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${WizNukeTimer1}!=0) /return
/assist ${MainAssist}
/delay 2
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${WizardNuke1}]} || ${Target.PctHPs} > ${AssistAt} && ${Target.Type.NotEqual[NPC]}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/delay 1
/casting ${WizardNuke1} gem1 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset WizNukeTimer1 300
}
/if (${WizNukeTimer1} > 0) /return
/return
Sub Nuke2
/if (${Me.CurrentMana}<${WizardNuke2Mana}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${WizNukeTimer2}!=0) /return
/assist ${MainAssist}
/delay 2
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${WizardNuke2}]} || ${Target.PctHPs} > ${AssistAt} && ${Target.Type.NotEqual[NPC]}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/delay 1
/casting ${WizardNuke2} gem2 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset WizNukeTimer2 300
}
/if (${WizNukeTimer1} > 0 && ${WizNukeTimer2} >0) /return
/return
Sub ManaCheck
/if (${Me.Casting.ID} || ${Me.Moving}) /return
/if (${Me.Standing}&&!${Stick.Active}&&!${Me.Mount.ID}&&${Me.PctMana}<100&&${SitTimer}==0) {
/sit on
/varset SitTimer 40
}
/return
Sub SelfBuffs
/if (${Me.CurrentMana}<${WizBuffMana1}) /return
/if (${Me.Buff[${WizSelfBuff1}].Duration}<5 && ${Me.CurrentMana}>${WizBuffMana1}) {
/target ${Me} PC
/delay 1
/casting ${WizSelfBuff1}|gem8 -maxtries|3
}
/return
Sub Event_ResetTimers
/if (${WizNukeTimer1} > 0) {
/varset WizNukeTimer1 0
}
/if (${WizNukeTimer2} > 0) {
/varset WizNukeTimer2 0
}
/return
[/CODE]
As it stands this is a very basic primitive macro for Wizard by almost every standard, however I am gradually working on it. So far it has served its purpose though. It is lacking a few nice things, but the Wizard I have to test and play around with is only in his 50s. I hope this helps anyone playing WFH and could use it.
What is will do:
- Assist the Main Assist and begin nuking enemies that fall below its AssistAt threshold
- Keep itself buffed with it's familiar spell

**Place it in your MQ2 Macro folder, target the person you plan to have as your Main Assist, and /mac WFHWiz to begin.
[CODE lang="ini" title="Wayfarer's Haven Wizard"]
#turbo 40
#event ResetTimers "You have slain#*#"
#event ResetTimers "##has been slain##"
Sub Main
/declare AssistAt int outer 70
/declare AssistAtDis int outer 100
/declare WizardNuke1 string outer "Draught of Fire"
/declare WizardNuke1Mana int outer 215
/declare WizNukeTimer1 timer outer 0
/declare WizardNuke2 string outer "Rend"
/declare WizardNuke2Mana int outer 280
/declare WizNukeTimer2 timer outer 0
/declare SitTimer timer outer 0
/declare WizSelfBuff1 string outer "Lesser Familiar"
/declare WizBuffMana int outer 490
/declare MainAssist string outer ${Target.CleanName}
/assist off
/echo Wayfarer's Haven Wizard Macro has started
/echo Main Assist is ${MainAssist}
/echo Nuking enemies at ${AssistAt}%
:loop
/doevents
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :loop
/call Nuke1
/call Nuke2
/call SelfBuffs
/call ManaCheck
/delay 2
/goto :loop
/return
Sub Nuke1
/if (${Me.CurrentMana}<${WizardNuke1Mana}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${WizNukeTimer1}!=0) /return
/assist ${MainAssist}
/delay 2
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${WizardNuke1}]} || ${Target.PctHPs} > ${AssistAt} && ${Target.Type.NotEqual[NPC]}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/delay 1
/casting ${WizardNuke1} gem1 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset WizNukeTimer1 300
}
/if (${WizNukeTimer1} > 0) /return
/return
Sub Nuke2
/if (${Me.CurrentMana}<${WizardNuke2Mana}) /return
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${WizNukeTimer2}!=0) /return
/assist ${MainAssist}
/delay 2
/if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${WizardNuke2}]} || ${Target.PctHPs} > ${AssistAt} && ${Target.Type.NotEqual[NPC]}) /return
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${AssistAt}) {
/delay 1
/casting ${WizardNuke2} gem2 -maxtries|3
/if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset WizNukeTimer2 300
}
/if (${WizNukeTimer1} > 0 && ${WizNukeTimer2} >0) /return
/return
Sub ManaCheck
/if (${Me.Casting.ID} || ${Me.Moving}) /return
/if (${Me.Standing}&&!${Stick.Active}&&!${Me.Mount.ID}&&${Me.PctMana}<100&&${SitTimer}==0) {
/sit on
/varset SitTimer 40
}
/return
Sub SelfBuffs
/if (${Me.CurrentMana}<${WizBuffMana1}) /return
/if (${Me.Buff[${WizSelfBuff1}].Duration}<5 && ${Me.CurrentMana}>${WizBuffMana1}) {
/target ${Me} PC
/delay 1
/casting ${WizSelfBuff1}|gem8 -maxtries|3
}
/return
Sub Event_ResetTimers
/if (${WizNukeTimer1} > 0) {
/varset WizNukeTimer1 0
}
/if (${WizNukeTimer2} > 0) {
/varset WizNukeTimer2 0
}
/return
[/CODE]
Attachments
Last edited:


