diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index fd1ec82791..260dfc8962 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -5848,18 +5848,32 @@ namespace OpenSim.Region.Framework.Scenes public void HasMovedAway() { + List myids = new List(); + foreach (SceneObjectGroup sog in m_attachments) + myids.Add(sog.RootPart.LocalId); + myids.Add(LocalId); + List allpresences = m_scene.GetScenePresences(); foreach (ScenePresence p in allpresences) { if (p == this) continue; - SendKillTo(p); + p.ControllingClient.SendKillObject(myids); p.SendKillTo(this); } if (Scene.AttachmentsModule != null) Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); } + public void SendFullKillsTo(ScenePresence p) + { + List ids = new List(); + foreach (SceneObjectGroup sog in m_attachments) + ids.Add(sog.RootPart.LocalId); + ids.Add(LocalId); + p.ControllingClient.SendKillObject(ids); + } + public void SendKillTo(ScenePresence p) { foreach (SceneObjectGroup sog in m_attachments)