diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 980b01f..234eb7d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1174,7 +1174,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
1174 | { | 1174 | { |
1175 | part.UpdateFlag = 0; | 1175 | part.UpdateFlag = 0; |
1176 | if (part == m_rootPart) | 1176 | if (part == m_rootPart) |
1177 | avatar.ControllingClient.SendKillObject(m_regionHandle, part.LocalId); | 1177 | { |
1178 | if (!IsAttachment || (AttachedAvatar == avatar.ControllingClient.AgentId) || | ||
1179 | (AttachmentPoint < 31) || (AttachmentPoint > 38)) | ||
1180 | avatar.ControllingClient.SendKillObject(m_regionHandle, part.LocalId); | ||
1181 | } | ||
1178 | } | 1182 | } |
1179 | }); | 1183 | }); |
1180 | } | 1184 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 632ac8f..d631c12 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2999,6 +2999,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2999 | if (ParentGroup.IsDeleted) | 2999 | if (ParentGroup.IsDeleted) |
3000 | return; | 3000 | return; |
3001 | 3001 | ||
3002 | if (ParentGroup.IsAttachment && (ParentGroup.AttachedAvatar != remoteClient.AgentId) && | ||
3003 | (ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38)) | ||
3004 | return; | ||
3005 | |||
3002 | clientFlags &= ~(uint) PrimFlags.CreateSelected; | 3006 | clientFlags &= ~(uint) PrimFlags.CreateSelected; |
3003 | 3007 | ||
3004 | if (remoteClient.AgentId == _ownerID) | 3008 | if (remoteClient.AgentId == _ownerID) |
@@ -4786,7 +4790,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
4786 | if (ParentGroup.IsDeleted) | 4790 | if (ParentGroup.IsDeleted) |
4787 | return; | 4791 | return; |
4788 | 4792 | ||
4789 | if (ParentGroup.IsAttachment && ParentGroup.RootPart != this) | 4793 | if (ParentGroup.IsAttachment && ((ParentGroup.RootPart != this) || |
4794 | ((ParentGroup.AttachedAvatar != remoteClient.AgentId) && (ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38)))) | ||
4790 | return; | 4795 | return; |
4791 | 4796 | ||
4792 | // Causes this thread to dig into the Client Thread Data. | 4797 | // Causes this thread to dig into the Client Thread Data. |