diff options
Diffstat (limited to 'OpenSim/Region')
3 files changed, 10 insertions, 12 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs index 378826d..9de88d9 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs | |||
@@ -37,9 +37,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
37 | { | 37 | { |
38 | #region Constants | 38 | #region Constants |
39 | 39 | ||
40 | public const float BAN_LINE_SAFETY_HEIGHT = 100; | ||
40 | //Land types set with flags in ParcelOverlay. | 41 | //Land types set with flags in ParcelOverlay. |
41 | //Only one of these can be used. | 42 | //Only one of these can be used. |
42 | public const float BAN_LINE_SAFETY_HIEGHT = 100; | 43 | |
43 | 44 | ||
44 | //RequestResults (I think these are right, they seem to work): | 45 | //RequestResults (I think these are right, they seem to work): |
45 | public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land | 46 | public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 6686362..e9a6abb 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -355,13 +355,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
355 | if (!position.HasValue) | 355 | if (!position.HasValue) |
356 | return; | 356 | return; |
357 | 357 | ||
358 | // land should have no word on avatar physics | 358 | avatar.AbsolutePosition = position.Value; |
359 | // bool isFlying = avatar.PhysicsActor.Flying; | 359 | avatar.lastKnownAllowedPosition = position.Value; |
360 | // avatar.RemoveFromPhysicalScene(); | 360 | avatar.Velocity = Vector3.Zero; |
361 | 361 | ||
362 | avatar.AbsolutePosition = (Vector3)position; | ||
363 | |||
364 | // avatar.AddToPhysicalScene(isFlying); | ||
365 | } | 362 | } |
366 | 363 | ||
367 | public void SendYouAreRestrictedNotice(ScenePresence avatar) | 364 | public void SendYouAreRestrictedNotice(ScenePresence avatar) |
@@ -462,7 +459,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
462 | ILandObject parcel = GetLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y); | 459 | ILandObject parcel = GetLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y); |
463 | if (parcel != null) | 460 | if (parcel != null) |
464 | { | 461 | { |
465 | if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && | 462 | if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HEIGHT && |
466 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) | 463 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) |
467 | { | 464 | { |
468 | EventManagerOnAvatarEnteringNewParcel(clientAvatar, parcel.LandData.LocalID, | 465 | EventManagerOnAvatarEnteringNewParcel(clientAvatar, parcel.LandData.LocalID, |
@@ -473,7 +470,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
473 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; | 470 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; |
474 | } | 471 | } |
475 | } | 472 | } |
476 | else if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HIEGHT && | 473 | else if (clientAvatar.AbsolutePosition.Z < LandChannel.BAN_LINE_SAFETY_HEIGHT && |
477 | parcel.IsBannedFromLand(clientAvatar.UUID)) | 474 | parcel.IsBannedFromLand(clientAvatar.UUID)) |
478 | { | 475 | { |
479 | //once we've sent the message once, keep going toward the target until we are done | 476 | //once we've sent the message once, keep going toward the target until we are done |
@@ -511,7 +508,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
511 | ILandObject over = GetLandObject(pos.X, pos.Y); | 508 | ILandObject over = GetLandObject(pos.X, pos.Y); |
512 | if (over != null) | 509 | if (over != null) |
513 | { | 510 | { |
514 | if (!over.IsRestrictedFromLand(avatar.UUID) && (!over.IsBannedFromLand(avatar.UUID) || pos.Z >= LandChannel.BAN_LINE_SAFETY_HIEGHT)) | 511 | if (!over.IsRestrictedFromLand(avatar.UUID) && (!over.IsBannedFromLand(avatar.UUID) || pos.Z >= LandChannel.BAN_LINE_SAFETY_HEIGHT)) |
515 | avatar.lastKnownAllowedPosition = pos; | 512 | avatar.lastKnownAllowedPosition = pos; |
516 | } | 513 | } |
517 | } | 514 | } |
@@ -2251,7 +2248,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
2251 | 2248 | ||
2252 | public void EnforceBans(ILandObject land, ScenePresence avatar) | 2249 | public void EnforceBans(ILandObject land, ScenePresence avatar) |
2253 | { | 2250 | { |
2254 | if (avatar.AbsolutePosition.Z > LandChannel.BAN_LINE_SAFETY_HIEGHT) | 2251 | if (avatar.AbsolutePosition.Z > LandChannel.BAN_LINE_SAFETY_HEIGHT) |
2255 | return; | 2252 | return; |
2256 | 2253 | ||
2257 | if (land.IsEitherBannedOrRestricted(avatar.UUID)) | 2254 | if (land.IsEitherBannedOrRestricted(avatar.UUID)) |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 378e996..4afceab 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs | |||
@@ -610,7 +610,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
610 | 610 | ||
611 | public bool CanBeOnThisLand(UUID avatar, float posHeight) | 611 | public bool CanBeOnThisLand(UUID avatar, float posHeight) |
612 | { | 612 | { |
613 | if (posHeight < LandChannel.BAN_LINE_SAFETY_HIEGHT && IsBannedFromLand(avatar)) | 613 | if (posHeight < LandChannel.BAN_LINE_SAFETY_HEIGHT && IsBannedFromLand(avatar)) |
614 | { | 614 | { |
615 | return false; | 615 | return false; |
616 | } | 616 | } |