If your shaman is 65 (or whatever level they start getting all their spells as group versions, 50s-ish I'd guess but I don't play shammies), it should be really easy. Just base the timer on yourself. Like.. (assuming you use spellcast.inc)
Code: Select all
/if (${Me.Buff[Focus of the Seventh].Duration}<n) {
/call cast "Focus of the Seventh"
}
replace 'n' with the average length of one iteration of your script in ticks, + 2 or 3, or less if you don't mind being buffless for a few seconds.
For Ferine Avatar or other single target buffs you'd need timers... for example for two people it'd need to be
Code: Select all
/declare fa1 timer outer 0
/declare fa2 timer outer 700
...
| (later in the script)
/if (${fa1} == 0) {
/target ${Melee1}
/call cast "Ferine Avatar"
/varset fa1 3900
}
/if (${fa2} == 0) {
/target ${Melee2}
/call cast "Ferine Avatar"
/varset fa2 3900
}
Might not be perfect but it should work. you'll have to modify it obviously to fit it in with your code (which I'm too lazy to look at atm). A note about the numbers, 700 is the cast time + the recast time + a few seconds, so it won't hold your script up in spellcast.inc trying to cast it too soon. May want to tweak it a little though. Same with the 3900, if my calculations are right that's the duration in deciseconds, but could be modified by a number of things.