All pastes #392464 Raw Edit

Something

public text v1 · immutable
·published 2007-03-12 21:26 UTC
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