Hopefully fixed the problem of users avatars not always showing up when either you or another user has crossed from one region to another. (however a avatar's appearance isn't kept across regions, but we need to add that to inter-regions communications so for now people will have to put up with some other user's avatars appearing as the bald(ish) fat man
parent
249826893d
commit
0e6f57a303
|
@ -883,6 +883,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendKillObject(uint localID)
|
||||||
|
{
|
||||||
|
List<ScenePresence> avatars = this.RequestAvatarList();
|
||||||
|
for (int i = 0; i < avatars.Count; i++)
|
||||||
|
{
|
||||||
|
avatars[i].ControllingClient.SendKillObject(this.m_regionHandle, localID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void SendAllSceneObjectsToClient(IClientAPI client)
|
public void SendAllSceneObjectsToClient(IClientAPI client)
|
||||||
{
|
{
|
||||||
foreach (EntityBase ent in Entities.Values)
|
foreach (EntityBase ent in Entities.Values)
|
||||||
|
|
|
@ -460,12 +460,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
this.SendFullUpdateToOtherClient(avatar);
|
this.SendFullUpdateToOtherClient(avatar);
|
||||||
if (avatar.LocalId != this.LocalId)
|
if (avatar.LocalId != this.LocalId)
|
||||||
|
{
|
||||||
|
if (!avatar.childAgent)
|
||||||
{
|
{
|
||||||
avatar.SendFullUpdateToOtherClient(this);
|
avatar.SendFullUpdateToOtherClient(this);
|
||||||
avatar.SendAppearanceToOtherAgent(this);
|
avatar.SendAppearanceToOtherAgent(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
@ -479,8 +482,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
this.newAvatar = false;
|
this.newAvatar = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this.SendFullUpdateToALLClients();
|
this.SendFullUpdateToALLClients();
|
||||||
// this.SendArrearanceToAllOtherAgents();
|
this.SendArrearanceToAllOtherAgents();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -491,8 +494,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
this.ControllingClient.SendWearables(this.Wearables);
|
this.ControllingClient.SendWearables(this.Wearables);
|
||||||
|
|
||||||
this.SendFullUpdateToALLClients();
|
//this.SendFullUpdateToALLClients();
|
||||||
this.SendArrearanceToAllOtherAgents();
|
//this.SendArrearanceToAllOtherAgents();
|
||||||
|
|
||||||
this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient);
|
this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient);
|
||||||
this.ControllingClient.SendViewerTime(this.m_scene.TimePhase);
|
this.ControllingClient.SendViewerTime(this.m_scene.TimePhase);
|
||||||
|
@ -638,6 +641,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId);
|
string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId);
|
||||||
this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath);
|
this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath);
|
||||||
this.MakeChildAgent();
|
this.MakeChildAgent();
|
||||||
|
this.m_scene.SendKillObject(this.m_localId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue