From f39962430cc61fe9897c951af72b8736e13a391f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 26 Oct 2014 20:43:35 +0000 Subject: [PATCH] fix parcel proprieties update sending --- .../CoreModules/World/Land/LandManagementModule.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index bbb280bbdb..92790664ce 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -1199,8 +1199,11 @@ namespace OpenSim.Region.CoreModules.World.Land if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay)) { //the proprieties to who changed them - - land.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, remote_client); + ScenePresence av = m_scene.GetScenePresence(remote_client.AgentId); + if(av.IsChildAgent || land != GetLandObject(av.AbsolutePosition.X, av.AbsolutePosition.Y)) + land.SendLandProperties(-10000, false, LandChannel.LAND_RESULT_SINGLE, remote_client); + else + land.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, remote_client); UUID parcelID = land.LandData.GlobalID; m_scene.ForEachScenePresence(delegate(ScenePresence avatar) @@ -1218,7 +1221,7 @@ namespace OpenSim.Region.CoreModules.World.Land ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); if (aland != null) { - if (client != remote_client || land != aland) + if (client != remote_client && land == aland) aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client); } if (avatar.currentParcelUUID == parcelID) @@ -1848,7 +1851,7 @@ namespace OpenSim.Region.CoreModules.World.Land } } } - ); + ); } if (flags == 4) //not target parcel, scripted object {