Moderator: MacroQuest Developers
Code: Select all
/for r ${Raid.Members} downto 0
/if (${Spawn[${Raid.Member[${r}]}].ID} != NULL) {
/target pc ${Raid.Member[${r}]}
/call ClassCheck
}
/next rCode: Select all
/if (${Spawn[pc ${Raid.Member[${r}]}].NotEqual[NULL]}) {Code: Select all
/if ${Spawn[${Raid.Member[${r}]}].Type.NotEqual[Corpse]}Code: Select all
/for r ${Raid.Members} downto 0
/if (${Spawn[${Raid.Member[${r}]}].ID} != NULL && ${Spawn[${Raid.Member[${r}]}].Type.NotEqual[Corpse]}) {
/target pc ${Raid.Member[${r}]}
/call ClassCheck
}
/next rSo you're just intentionally ignoring what I said about Spawn[]?Been thinking about it, going to try this if statement. Probably won't be able to test it tonight but will asap.
Code: Select all
/if ${Spawn[${Raid.Member[${r}]}].Type.NotEqual[Corpse]}hrm, the factNo I'm not ignoring it. I don't understand the "why" behind what you said. You just said it as a fact without any explanation.
and the explanationAlso use Raid.Member[x].Spawn.ID or somesuch,
I even put a comma in there to make spotting the transition easier.using Spawn[x].ID is begging to get the wrong spawn.
Well I'm working off assumptions.
*magic hand-wave*You just said it as a fact without any explanation.
working off assumptions
*again with the ju-ju stick*said it as a fact
assumptions
fact
assumptions
fact
assumptions
hrm...which to choose?!?fact
Whoops.. yeah Interrupt sub is for instant interrupts.. the whole strafe thing is built in if the target dies mid cast. I still say the best thing to do would be just add in code to remount at a less crucial time (or even between casting spells, since cast time on mount = 3 sec, and refresh on most spells is 2.25, you only lose 3/4 a sec if you mount between casts). I guess the best thing to do would be to change the CheckHP sub to something like:It's dismounting when it calls interrupt no matter what. We're casting a sub-3 second spell here and its dismounting. I'm guessing it's because we're calling it when the target is healed, not when the target dies. So your /dismount vs. move around logic isn't being used.
I didn't want to screw around in spell routines, so I fudged with my macro until it stopped chain dismounting me.
Code: Select all
Sub CheckHP
/if (${Target.PctHPs}>=83) {
/if ( !${Me.Mount.ID} || ${castEndTime}>30 ) {
/call Interrupt
} else {
/varset castReturn CAST_CANCELLED
/keypress forward hold
/delay 6
/keypress back hold
/delay 4
/keypress back
/delay 15 !${Me.Moving}
}
}
/returnCode: Select all
#event Indoors "You can only cast this spell in the outdoors#*#"
#event Indoors "You can not summon a mount#*#"
#event Indoors "You need to be in a more open area to summon a mount#*#"Code: Select all
/declare useMount int outer 1Code: Select all
/if ( ${useMount} && !${Me.Mount.ID} ) /call Cast "${InvSlot[ammo].Item.Name}" itemCode: Select all
/call cast "heal spell" gem1 0 CheckHP
/if ( ${refreshTime}>20 && ${useMount} && !${Me.Mount.ID} ) /call Cast "${InvSlot[ammo].Item.Name}" itemCode: Select all
Sub Event_Indoors
/varset useMount 0
/return