• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋

Project 2002 - Wayfarer's Haven Magician Macro

** THIS IS A WORK IN PROGRESS **

Much like my Wizard macro, this is a very basic kind of simple macro. I am building upon it as the Magician gets more tools to use.

What is will do:

  • Assist the Main Assist and begin nuking enemies that fall below its NukeAt threshold
  • Will send it pet once enemies fall below the AssistAt threshold
  • Keep a pet summoned at all times. Whether it dies during combat or you lose it zoning.
  • Keep pet buffed with Burnout
  • Keep self buffed with caster self shield buff (Arch Shielding in its current case)
For anyone playing WFH/P2002 I hope this helps, and if there are any problems just let me know. I'll do my best to fix them :)

**Place it in your MQ2 Macro folder, target the person you plan to have as your Main Assist, and /mac WFHMag to begin.

Wayfarer's Haven Magician
INI:
#chat tell 
#turbo 40

#event Follow "#1# tells you, 'Follow'" 
#event Stay "#1# tells you, 'Stay'"
#event PetReset      "#[I]#has been slain#[/I]#"
#event PetReset      "You gain party experience!!"


Sub Main

/declare MainAssist string outer ${Target.CleanName}
/declare MyPet string outer ${Target.Pet}
/declare AssistAt    int outer   95
/declare AssistAtDis int outer   100
/declare NukeAt int outer 80
/declare MageNukeSpell string outer "Lava Bolt"
/declare MageNukeTimer1 timer outer 0
/declare MageNukeMana int outer 
/declare SelfBuff1 string outer "Arch Shielding"
/declare SelfBuff1Mana int outer 200
/declare PetSpell string outer "Monster Summoning II"
/declare PetSpellMana int outer 200
/declare PetBuff1 string outer "Burnout III"
/declare PetBuff1Mana int outer 150
/declare SitTimer timer outer 0
/declare PetAttacking int outer 0

/echo Wayfarer's Haven Magician Macro has started!
/echo Assisting ${MainAssist}
/echo Sending pet in to attack at ${AssistAt}%
/echo Nuking targets at ${NukeAt}%
/assist off

:loop
/doevents
/if (${Me.Casting.ID} || ${Me.Moving})    /goto :loop
/call SummonPet
/call PetAttack
/call Nuke1
/call ManaCheck
|/call SelfBuffs
|/call Buffs
/call PetBuffs
/goto :loop
/return

Sub Nuke1
    /if (${Me.CurrentMana}<${MageNukeMana}) /return
    /if (${Target.Distance} > ${AssistAtDis}) /return
    /if (${MageNukeTimer1}!=0) /return
    /assist ${MainAssist}
    /delay 2
    /if (${Target.Type.NotEqual[NPC]} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]} || !${Target.ID} || !${Me.SpellReady[${MageNukeSpell}]} || ${Target.PctHPs} > ${NukeAt} && ${Target.Type.NotEqual[NPC]}) /return
    /if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${NukeAt}) {
        /delay 1
        /casting ${MageNukeSpell} gem1 -maxtries|3
        /if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset MageNukeTimer1 300
        }
        /if (${MageNukeTimer1} > 0) /return
/return

Sub PetAttack
/if (${Target.Distance} > ${AssistAtDis}) /return
/if (${PetAttacking}==1) /return
/if (${Target.ID} && ${Target.Distance} < ${AssistAtDis} && ${Target.PctHPs} < ${AssistAt} && !${Target.Type.Equal[PC]} && !${Target.Type.Equal[CORPSE]}) { 
   /pet attack
   /varset PetAttacking 1
   /delay 3 
} 
/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}<${SelfBuff1Mana}) /return
/if (${Me.Buff[${SelfBuff1}].Duration}<5) {
    /target ${Me} PC
    /delay 1
    /casting ${SelfBuff1} gem7
    }
/return

Sub Buffs
/return

Sub SummonPet

/if (!${Me.Pet.ID}&&${Me.CurrentMana}>${PetSpellMana}) {
    /casting ${PetSpell} gem8
    }
/return

Sub PetBuffs

/if (${Me.Pet.ID}>0 && ${Me.PetBuff[${PetBuff1}]}==NULL && !${Me.Moving} && !${Me.Casting.ID} && !${Stick.Active} && ${Me.CurrentMana}>=${PetBuff1Mana}) {
    /casting ${PetBuff1} 6 -maxtries|5
    }
/return

Sub Event_Follow
/target ${MacroQuest.LastTell} 
/delay 1
/tell ${MacroQuest.LastTell} Following you 
/stick
/return

Sub Event_Stay
/stick off 
/tell ${MacroQuest.LastTell} Staying here 
/delay 1 
/if (!${Me.Sitting}&&!${Stick.Active}&&!${Me.Moving}&&${Me.PctMana}<100) { 
      /sit on 
    } 
/return

Sub Event_PetReset
/if (${PetAttacking}==1) {
    /varset PetAttacking 0
    }
/return
 

Attachments

Last edited:
Project 2002 - Wayfarer's Haven Magician Macro

Users who are viewing this thread

Back
Top
Cart