Sub CombatTargetCheck(int SetTarget)
| If mob is dead return
/if (${MyTargetID} && (${Spawn[${MyTargetID}].Type.Equal[Corpse]} || !${Spawn[${MyTargetID}].ID})) /return
/if (${DPSPaused}) /return
/declare CMyTargetID int Local ${MyTargetID}
| Check target matches MA if group mainassist assigned and MA is in group
/if (${Spawn[=${MainAssist}].ID} && ${Group.MainAssist.ID} && ${Spawn[=${MainAssist}].ID}==${Group.MainAssist.ID}) {
/if (${Target.ID}!=${Me.GroupAssistTarget.ID} && ${Group.MainAssist.ID}!=${Me.ID}) {
/if (${MyTargetID}!=${Me.GroupAssistTarget.ID} && ${Spawn[id ${Me.GroupAssistTarget.ID} npc].ID}) {
/if (${MyTargetID}) /echo My target does not match MA's. Switching to new target.
/varset MyTargetID ${Me.GroupAssistTarget.ID}
}
} else /if (${TargetSwitchingOn} && ${Group.MainAssist.ID}==${Me.ID} && ${Target.ID}!=${MyTargetID} && (${Select[${Target.Type},pc,pet,mercenary]}==0 || (${Target.Type.Equal[pet]} && ${Target.Master.Type.NotEqual[pc]}))) {
/echo I am MA, and I switched to new Target.
/varset MyTargetID ${Target.ID}
/if (${Select[${Role},Tank,PullerTank,Hunter]}) {
/call BroadCast y "TANKING-> ${Spawn[${MyTargetID}].CleanName} <- ID:${MyTargetID}"
} else /if (${Select[${Role},petTank,pullerpettank,hunterpettank]}) {
/call BroadCast y "${Me.Pet.CleanName} is TANKING-> ${Spawn[${MyTargetID}].CleanName} <- ID:${MyTargetID}"
}
}
} else /if (${CalledTargetID} && ${CalledTargetID}!=${MyTargetID}) {
/varset MyTargetID ${CalledTargetID}
/varset CalledTargetID 0
}
/if (${CMyTargetID}!=${MyTargetID} && ${Target.ID}!=${MyTargetID} && ${Spawn[${MyTargetID}].ID}) {
/if (${SetTarget}) {
/squelch /target id ${MyTargetID}
/delay 10 ${Target.ID}==${MyTargetID}
}
/varset MyTargetName ${Spawn[${MyTargetID}].CleanName}
/if (${XTarAutoSet} && !${Group.Member[${MainAssist}].Index} && !${IAmMA} && ${Target.Type.NotEqual[PC]}) /xtarget set ${XTSlot} currenttarget
}
/return