A stab at making llEjectFromLand work in all cases

avinationmerge
Melanie 2012-03-05 02:14:27 +01:00
parent 6dc4a6dfb1
commit 0ed4f24b34
1 changed files with 10 additions and 3 deletions

View File

@ -4938,11 +4938,18 @@ Environment.Exit(1);
return nearestPoint.Value; return nearestPoint.Value;
} }
//Ultimate backup if we have no idea where they are ILandObject dest = LandChannel.GetLandObject(avatar.lastKnownAllowedPosition.X, avatar.lastKnownAllowedPosition.Y);
if (dest != excludeParcel)
{
// Ultimate backup if we have no idea where they are and
// the last allowed position was in another parcel
Debug.WriteLine("Have no idea where they are, sending them to: " + avatar.lastKnownAllowedPosition.ToString()); Debug.WriteLine("Have no idea where they are, sending them to: " + avatar.lastKnownAllowedPosition.ToString());
return avatar.lastKnownAllowedPosition; return avatar.lastKnownAllowedPosition;
} }
// else fall through to region edge
}
//Go to the edge, this happens in teleporting to a region with no available parcels //Go to the edge, this happens in teleporting to a region with no available parcels
Vector3 nearestRegionEdgePoint = GetNearestRegionEdgePosition(avatar); Vector3 nearestRegionEdgePoint = GetNearestRegionEdgePosition(avatar);