on object delete send a direct kill and a delayed one via updates queue, Until we find why some are missing, (if its not by udp nature). also remove redundant avatar stands
parent
52afd8588d
commit
e734d526fc
|
@ -2780,13 +2780,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
else
|
else
|
||||||
group.StopScriptInstances();
|
group.StopScriptInstances();
|
||||||
|
|
||||||
List<ScenePresence> avatars = group.GetSittingAvatars();
|
|
||||||
foreach (ScenePresence av in avatars)
|
|
||||||
{
|
|
||||||
if(av.ParentUUID == UUID.Zero)
|
|
||||||
av.StandUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
SceneObjectPart[] partList = group.Parts;
|
SceneObjectPart[] partList = group.Parts;
|
||||||
|
|
||||||
foreach (SceneObjectPart part in partList)
|
foreach (SceneObjectPart part in partList)
|
||||||
|
|
|
@ -2078,7 +2078,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
Scene.ForEachScenePresence(delegate(ScenePresence avatar)
|
Scene.ForEachScenePresence(delegate(ScenePresence avatar)
|
||||||
{
|
{
|
||||||
if (!avatar.IsChildAgent && avatar.ParentID == LocalId)
|
if (!avatar.IsChildAgent && avatar.ParentID == LocalId && avatar.ParentUUID == UUID.Zero)
|
||||||
avatar.StandUp();
|
avatar.StandUp();
|
||||||
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
|
@ -2092,6 +2092,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
// Send a kill object immediately
|
// Send a kill object immediately
|
||||||
avatar.ControllingClient.SendKillObject(new List<uint> { part.LocalId });
|
avatar.ControllingClient.SendKillObject(new List<uint> { part.LocalId });
|
||||||
|
//direct enqueue another delayed kill
|
||||||
|
avatar.ControllingClient.SendEntityUpdate(part,PrimUpdateFlags.Kill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue