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
|
||||
group.StopScriptInstances();
|
||||
|
||||
List<ScenePresence> avatars = group.GetSittingAvatars();
|
||||
foreach (ScenePresence av in avatars)
|
||||
{
|
||||
if(av.ParentUUID == UUID.Zero)
|
||||
av.StandUp();
|
||||
}
|
||||
|
||||
SceneObjectPart[] partList = group.Parts;
|
||||
|
||||
foreach (SceneObjectPart part in partList)
|
||||
|
|
|
@ -2078,7 +2078,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
Scene.ForEachScenePresence(delegate(ScenePresence avatar)
|
||||
{
|
||||
if (!avatar.IsChildAgent && avatar.ParentID == LocalId)
|
||||
if (!avatar.IsChildAgent && avatar.ParentID == LocalId && avatar.ParentUUID == UUID.Zero)
|
||||
avatar.StandUp();
|
||||
|
||||
if (!silent)
|
||||
|
@ -2092,6 +2092,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
// Send a kill object immediately
|
||||
avatar.ControllingClient.SendKillObject(new List<uint> { part.LocalId });
|
||||
//direct enqueue another delayed kill
|
||||
avatar.ControllingClient.SendEntityUpdate(part,PrimUpdateFlags.Kill);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue