diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 11 |
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 |