rendered paste body>>Navigator.iss
method BestRezSpot()
{
variable int incaj
variable int aggrorange
variable int RezDistance = 0
variable int numpoints
variable objectref closestMob
variable int closestMobDistance
variable point3f specialSpot
variable index:lnavregionref SafePoints
closestMob:Set[${Object[-nearest 1,-units,-range 0-50,-origin,${Me.Corpse.X},${Me.Corpse.Y},${Me.Corpse.Z}].GUID}]
if ${Distance[${closestMob.Location},${Me.Corpse}]}>30
{
This:Echo["Rezzing at corpse location"]
This:MoveTo[${Me.Corpse.X},${Me.Corpse.Y},${Me.Corpse.Z}]
return
}
Else
{
numpoints:Set[${LNavRegion[${This.Continent}].DescendantsWithin[SafePoints,39,${Me.Corpse.X},${Me.Corpse.Y},${Me.Corpse.Z}]}]
if ${numpoints}
{
incaj:Set[1]
do
{
closestMob:Set[${Object[-nearest 1,-units,-range 0-100,-origin,${SafePoints.Get[${incaj}].CenterPoint.X},${SafePoints.Get[${incaj}].CenterPoint.Y},${SafePoints.Get[${incaj}].CenterPoint.Z}].GUID}]
aggrorange:Set[20+${closestMob.Level}-${Me.Level}]
if ${aggrorange}>45
aggrorange:Set[45]
elseif ${aggrorange}<5
aggrorange:Set[5]
closestMobDistance:Set[${Math.Distance[${closestMob.Location},${SafePoints.Get[${incaj}].CenterPoint}]}-${aggrorange}]
if ${closestMobDistance} > ${RezDistance}
{
RezDistance:Set[${closestMobDistance}]
specialSpot:Set[${SafePoints.Get[${incaj}].CenterPoint}]
}
}
while ${incaj:Inc} <= ${numpoints}
This:Echo["Safe spot found at ${specialSpot}; ${RezDistance} yards out of aggro range"]
This:MoveTo[${specialSpot.X},${specialSpot.Y},${specialSpot.Z}]
return
if !${RezDistance}
{
This:Echo["No safe spot to rezz!"]
return
}
}
Else
{
This:Echo["WTF? How'd I die here??"]
return
}
}
}
______________________________________________________________
>>Grind.iss
#define GRIND_CORPSEREZ 35
>>>method Arrived
case GRIND_CORPSEREZ
Navigator:ResetDestination
This.LastCorpseRetrieve:Set[${LavishScript.RunningTime}]
WoWScript RetrieveCorpse()
case GRIND_CORPSERUN
Navigator:ResetDestination
break
>>>member State
if ${Me.Ghost} && (${Math.Distance[${Me.Location},${Me.Corpse}} < 45)
{
This.Status:Set["Corpse rez"]
return GRIND_CORPSEREZ
}
>>>method Pulse
case GRIND_CORPSEREZ
if !{Navigator.HaveDestination}
{
Navigator:BestRezSpot
}
break