Merge branch 'master' of ssh://3dhosting.de/var/git/careminster into ubitwork

avinationmerge
UbitUmarov 2012-03-05 04:03:37 +00:00
commit a647a37683
2 changed files with 15 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);

View File

@ -11574,6 +11574,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
Vector3 rayEnd = new Vector3((float)end.x, (float)end.y, (float)end.z); Vector3 rayEnd = new Vector3((float)end.x, (float)end.y, (float)end.z);
Vector3 dir = rayEnd - rayStart; Vector3 dir = rayEnd - rayStart;
float dist = Vector3.Mag(dir);
int count = 1; int count = 1;
bool detectPhantom = false; bool detectPhantom = false;
int dataFlags = 0; int dataFlags = 0;
@ -11630,6 +11632,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
int values = 0; int values = 0;
foreach (ContactResult result in results) foreach (ContactResult result in results)
{ {
if (result.Depth > dist)
continue;
UUID itemID = UUID.Zero; UUID itemID = UUID.Zero;
int linkNum = 0; int linkNum = 0;