I'm still trying to figure it out myself, but near as I can tell it has something to do with this line:
Code: Select all
/varset castmcr_spellcycle $calc($calc($calc($spell("@castmcr_spellname",casttime)+$if(n,$spell("@castmcr_spellname",recasttime)<$spell("@castmcr_spellname",recoverytime),$spell("@castmcr_spellname",recoverytime),$spell("@castmcr_spellname",recasttime)))*10)+5)
This is the line that calculates how long to wait until the macro starts re-casting the spell. For some reason, and only on certain characters/spells, the formula returns a negative number, even though all of the individual variables return positives.
It might be a bug in MQ2, but I'm hesitant to post it as a bug until I have a better idea (plus I don't want to get the smackdown from Lax

)
For now, you can brute-force set the recast timer so it will work, but it won't be as efficient as the real thing. Replace said line with:
where 10 is the number of seconds you want to wait until your toon recasts.