Hey, a couple basic thoughts I would suggest for this:
1) Buff before or after a fight, shortly before the buffs fade.
2) Use a spell casting includes to take care of interrupts, fizzles, waiting for the cast, etc. SpellCast.inc and Spell_routines.inc are both in the snippets section and seem to work well.
Those 2 changes would give you:
Code: Select all
#define MAX_BOW_RANGE 300
#include Spell_Routines.inc
Sub Main (MAss)
/declare BuffTime int outer 20
:loop
/if (!${Target.ID}) {
/if (${Me.Buff["Captain Nalots Quickening"].Duration} < ${BuffTime}) /call cast item "Eyepatch of Plunder"
/if (${Me.Buff["Greater Wolf Form"].Duration} < ${BuffTime}) /call cast "Greater Wolf Form"
/if (${Me.Buff["Eagle Eye"].Duration} < ${BuffTime}) /call cast "Eagle Eye"
/if (${Me.Buff["Protection of the Wild"].Duration} =< ${BuffTime}) /call cast "Protection of the Wild"
/if (${Me.Buff["Mask of the Stalker"].Duration} < ${BuffTime}) /call cast "Mask of the Stalker"
}
/if (!${Target.ID}) /assist ${MAss}
/if (${Me.RangedReady} && ${Target.Distance}>30 && ${Target.Distance}<MAX_BOW_RANGE) {
/face
/ranged
}
/goto :loop
/return
Now I would probably go on to at least add nukes and jolt:
Code: Select all
/if (${Me.SpellReady["SomeColdNuke"]} && ${Me.PctMana}>20) /call cast "SomeColdNuke"
/if (${Me.TargetOfTarget.ID}==${Me.ID}) /call cast "Jolt"
but you might also want to add in code for backup snare:
Code: Select all
/if (${Target.Speed}>30) /call cast "Ensnare"
I'm sure there is still more you could add (spot heals if the kiter falls below some %, buffs for group members, looting, etc.) but these were just some basic additions that came to mind.