Sub Event_GotHit(string Line, string AttackingMob)
/declare GotHitDistChk int local 25
/varset GotHitToggle 1
/declare AttackingMobID int local
/if (${AggroTargetID} && !${Target.ID} && !${ReturnToCamp}) {
/call CheckForCombat 1 Event_GotHit
}
/if (${Pulled} && ${Select[${Role},pullertank,pullerpettank]} && ${NearestSpawn[npc los radius ${CampRadius} targetable].ID}!=${MyTargetID}) {
/varset MyTargetID 0
/varset MyTargetName
}
/if (${Select[${Role},pettank,pullerpettank,hunterpettank]}) {
/doevents flush GotHit
/varset AttackingMobID ${NearestSpawn[npc radius 39 targetable "${AttackingMob}"].ID}
/squelch /target id ${Spawn[${AttackingMobID}].ID}
/delay 5 ${Target.ID}==${AttackingMobID}
|- If mob that hit me still too close, move to camp or away from mob.
/if (${GotHitToggle} && ${AttackingMobID}>0) {
/echo I got hit by >>${AttackingMob}<< ID:${AttackingMobID}!
/moveto mdist 10
/if (${Math.Distance[${Me.Y},${Me.X}:${CampYLoc},${CampXLoc}]}>${CampRadius} && !${Select[${Role},hunterpettank]}) {
|- Only move away from mob if MoveWhenHit enabled (1)
/if (${MoveWhenHit}) {
/echo Moving back to camp!
/moveto loc ${CampYLoc} ${CampXLoc}
}
} else {
|- If mob is in pet attack range from camp, send pet in.
/if (${Me.Pet.ID} && ${Math.Distance[${Target.Y},${Target.X}:${CampYLoc},${CampXLoc}]}<=${PetAttackRange}) /pet attack
|- Only move away from mob if MoveWhenHit enabled (1)
/if (${MoveWhenHit}) {
/echo Trying to get away from >>${AttackingMob}<<.
/if (${Math.Distance[${Me.Y},${Me.X}:${Target.Y},${Target.X}]}<=${GotHitDistChk}) /moveto loc ${Target.Y} ${Math.Calc[${Target.X}-${GotHitDistChk}]}
}
}
}
/if (${MoveWhenHit}) /delay 15 ${Math.Distance[${Me.Y},${Me.X}:${Target.Y},${Target.X}]}>${GotHitDistChk}
/if (${Target.ID}) /face nolook
/look 0
}
/varset GotHitToggle 0
/doevents flush GotHit