member BestRezSpot()
{
variable int incaj
variable int aggrorange
variable int RezDistance = 0
variable int numpoints
variable unit closestMob
variable int closestMobDistance
variable point3f specialSpot
variable index:lnavregionref SafePoints
closestMob = Unit[-nearest 1,-hostile,-lineofsight,-alive,-notflying,-range 0-50,-origin,${Me.corpse.X},${Me.corpse.Y},${Me.corpse.Z}]
if ${Distance[${closestMob.Location},${Me.Corpse.Location}]}>30
{
This.Echo["Rezzing at corpse location"]
return ${Me.corpse.Location}
}
Else
{
numpoints:Set[${This.CurrentZone.DescendantsWithin[SafePoints,39,${Me.corpse.X},${Me.corpse.Y},${Me.corpse.Z}]}]
if ${numpoints}
{
incaj:Set[1]
do
{
closestMob = Unit[-nearest 1,-hostile,-lineofsight,-alive,-notflying,-range 0-50,-origin,${SafePoints[${incaj}].x},${SafePoints[${incaj}].y},${SafePoints[${incaj}].z}]
aggrorange:Set[${20+${Object[${MobsList[${incaj}]}].Level}-${Me.Level}}
if aggrorange>45
aggrorange:Set[45]
elseif aggrorange<5
aggrorange:Set[5]
closestMobDistance:Set[${Distance[${closestMob.Location},${SafePoints[${incaj}]}]}-${aggrorange}]
if ${closestMobDistance} > ${RezDistance}
{
RezDistance:Set[${closestMobDistance}]
specialSpot:Set[${SafePoints[${incaj}]}]
}
}
while ${incaj:Inc} <= numpoints
if !${RezDistance}
{
This.Echo["No safe spot to rezz!"]
return
}
This.Echo["Safe spot found at ${specialSpot}, ${RezDistance} yards out of aggro range"]
return ${specialSpot}
}
This.Echo["WTF? How'd I die here??"]
return
}
}