aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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