fix parcel proprieties update sending

avinationmerge
UbitUmarov 2014-10-26 20:43:35 +00:00
parent c46c3a27ae
commit f39962430c
1 changed files with 7 additions and 4 deletions

View File

@ -1199,8 +1199,11 @@ namespace OpenSim.Region.CoreModules.World.Land
if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay)) if (land.UpdateLandProperties(args, remote_client, out snap_selection, out needOverlay))
{ {
//the proprieties to who changed them //the proprieties to who changed them
ScenePresence av = m_scene.GetScenePresence(remote_client.AgentId);
land.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, remote_client); 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; UUID parcelID = land.LandData.GlobalID;
m_scene.ForEachScenePresence(delegate(ScenePresence avatar) 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); ILandObject aland = GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
if (aland != null) if (aland != null)
{ {
if (client != remote_client || land != aland) if (client != remote_client && land == aland)
aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client); aland.SendLandProperties(0, false, LandChannel.LAND_RESULT_SINGLE, client);
} }
if (avatar.currentParcelUUID == parcelID) if (avatar.currentParcelUUID == parcelID)
@ -1848,7 +1851,7 @@ namespace OpenSim.Region.CoreModules.World.Land
} }
} }
} }
); );
} }
if (flags == 4) //not target parcel, scripted object if (flags == 4) //not target parcel, scripted object
{ {