aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorSnoopy Pfeffer2011-11-06 17:43:39 +0100
committerSnoopy Pfeffer2011-11-06 17:43:39 +0100
commit927561383ec2f0e0a4839837d5896ec49b84aa42 (patch)
tree9df9ad4d268829429c941c3e806c5fa6fc22b200 /OpenSim/Region/Framework/Scenes
parentDamaged assets, especially appearance textures, could crash the region server... (diff)
downloadopensim-SC_OLD-927561383ec2f0e0a4839837d5896ec49b84aa42.zip
opensim-SC_OLD-927561383ec2f0e0a4839837d5896ec49b84aa42.tar.gz
opensim-SC_OLD-927561383ec2f0e0a4839837d5896ec49b84aa42.tar.bz2
opensim-SC_OLD-927561383ec2f0e0a4839837d5896ec49b84aa42.tar.xz
HUD attachments: Removes some more messages sent to wrong clients.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 1e111e5..5465ca4 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3164,16 +3164,25 @@ namespace OpenSim.Region.Framework.Scenes
3164 public void SendKillObject(uint localID) 3164 public void SendKillObject(uint localID)
3165 { 3165 {
3166 SceneObjectPart part = GetSceneObjectPart(localID); 3166 SceneObjectPart part = GetSceneObjectPart(localID);
3167 UUID attachedAvatar = UUID.Zero;
3168
3167 if (part != null) // It is a prim 3169 if (part != null) // It is a prim
3168 { 3170 {
3169 if (!part.ParentGroup.IsDeleted) // Valid 3171 if (!part.ParentGroup.IsDeleted) // Valid
3170 { 3172 {
3171 if (part.ParentGroup.RootPart != part) // Child part 3173 if (part.ParentGroup.RootPart != part) // Child part
3172 return; 3174 return;
3175
3176 if (part.ParentGroup.IsAttachment && part.ParentGroup.AttachmentPoint >= 31 && part.ParentGroup.AttachmentPoint <= 38)
3177 attachedAvatar = part.ParentGroup.AttachedAvatar;
3173 } 3178 }
3174 } 3179 }
3175 3180
3176 ForEachClient(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); 3181 ForEachClient(delegate(IClientAPI client)
3182 {
3183 if (attachedAvatar == UUID.Zero || attachedAvatar == client.AgentId)
3184 client.SendKillObject(m_regionHandle, localID);
3185 });
3177 } 3186 }
3178 3187
3179 #endregion 3188 #endregion