@timmy I will try and break down the flow used to get into both the inner and outer combat loops and what fires where. I think that might help you in understanding what is happening where and when.
I am going to try and keep this as brief as I can. I am going to use a shaman as my example and I will have DPSOn=1 and MeleeOn=0 and DebuffAllOn=2 and MeleeDistance=100.
Lets start at the CheckForCombat routine. This routine is used to check for several condition to see if any of the DPS routines need to be called including the combat routine.
Now one of the first things that this routine does is, try and get a count of mobs within
MeleeDistance. If I don't have a count and I don't have any auto hater Xtarget entries populated, then we exit this routine back to the mainloop.
If we have a count or Xtargets then we need to assist off the MA and get our DSP Target(MyTargetID).
Next we enter the combat routine.
This is where things get stacked up. Here is the flow:
First you have to get past the Outer Check. Here is the code for the check:
Rich (BB code):
/if (${Spawn[${MyTargetID}].Type.NotEqual[Corpse]} && ${Spawn[${MyTargetID}].PctHPs}<=${AssistAt} && (${Spawn[${MyTargetID}].Distance}<${CombatRadius} || (${Math.Distance[${CampYLoc},${CampXLoc}:${Spawn[=${MainAssist}].Y},${Spawn[=${MainAssist}].X}]}<=${CombatRadius} && ${Math.Distance[${Target.Y},${Target.X}:${Spawn[=${MainAssist}].Y},${Spawn[=${MainAssist}].X}]}<=${CampRadius}))) {
Basically this is just checking that you have a valid DPS target and the mob is ready for you to start attacking. Notice ${CombatRadius} this is important.
For this explanation CombatRadius is interchangeable with MeleeDistance.
Outer Check
face the mob.
send in pets.
do ambush attacks
Inner Loop
get position on mob(Melee only)
check AE's
check Aggro
check if pet attacking(Sickum Fido)
check heals
check cures(If you have a lot of characters to check, this can slow things down a bit)
check debuffs
check DPS entries.(this is where pure casters go to do DPS)
check mana status
and finally if I am melee turn on attack.
If mob is dead exit Inner Loop
repeat Inner Loop.
close Outer Check
Now what happens if the Outer Check fails? Well I am glad you asked. There are 2 additional checks done.
The next thing that is checked:
can I send in my pet(based on PetAssistAt and mobs HP's) AND
is target within CombatRadius OR is the MA within CombatRadius and the mob within CampRadius of the MA.
if you pass that check then send in your pet(Sickum Fido)
and if the above check fails than the following checks are done.
if I am the mezzer, lets go check mezzes.
if DebuffAllOn==2 then check debuffs.(this check is dependent on the Target being in CampRadius distance of the MA) so the mob has to be near(CampRadius) the MA.
check ambush entries
End of Combat Routine
So as the Debuffer with DebuffAllOn you can play around with your CampRadius and MeleeDistance to fine tune things. But be warned, you will get attacked and knocked farther and farther away from your camp location, so you will need to tweak them a bit.
Thanks for the kind words and I hope this help again.