Set ScenePresence.IsSyncedAvatar to true in right places, so that only the client manager

that has the client connection will trigger agent crossing.
dsg
Huaiyu (Kitty) Liu 2011-05-19 16:31:02 -07:00
parent ef4caa2c75
commit f1800824eb
3 changed files with 17 additions and 12 deletions

View File

@ -1089,13 +1089,15 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
{
pos = part.PhysActor.Position;
}
m_log.WarnFormat("-- part {0}, UUID {1}, LocalID {2}, GroupPos {3}, offset-position {4}, Position {5}, AggregateScriptEvents ={6}, AttachedAvatar={7}, AttachmentPoint = {8}, AttachedPos={9}",
//Flags = {7}, LocalFlags {8}, Scale {9}",
part.Name, part.UUID, part.LocalId, part.GroupPosition, part.OffsetPosition,
pos, part.AggregateScriptEvents,
//part.Flags, part.LocalFlags, part.Scale);
part.AttachedAvatar, part.AttachmentPoint, part.AttachedPos
);
string debugMsg = "Part " + part.Name + "," + part.UUID+", LocalID "+part.LocalId;
if (part.ParentGroup.RootPart.UUID == part.UUID)
debugMsg += ", RootPart, ";
else
debugMsg += ", ChildPart, ";
debugMsg += "ParentId = " + part.ParentID;
debugMsg += ", GroupPos " + part.GroupPosition + ", offset-position " + part.OffsetPosition;
debugMsg += ", AttachedAvatar="+part.AttachedAvatar+", AttachmentPoint = "+part.AttachmentPoint;
m_log.WarnFormat(debugMsg);
}
}

View File

@ -3074,10 +3074,10 @@ namespace OpenSim.Region.Framework.Scenes
public override void AddNewClient(IClientAPI client)
{
//AddNewClient2(client, true);
AddNewClient2(client, true, true);
AddNewClient2(client, false, true);
}
//public void AddNewClient2(IClientAPI client, bool managed)
public void AddNewClient2(IClientAPI client, bool managed, bool rezAttachment)
public void AddNewClient2(IClientAPI client, bool isSyncedAvatar, bool rezAttachment)
{
AgentCircuitData aCircuit = m_authenticateHandler.GetAgentCircuitData(client.CircuitCode);
@ -3103,6 +3103,7 @@ namespace OpenSim.Region.Framework.Scenes
SubscribeToClientEvents(client);
ScenePresence sp = m_sceneGraph.CreateAndAddChildScenePresence(client, aCircuit == null ? null : aCircuit.Appearance);
sp.IsSyncedAvatar = isSyncedAvatar;
m_eventManager.TriggerOnNewPresence(sp);
//presence.initializeScenePresence(client, RegionInfo, this);

View File

@ -1232,10 +1232,12 @@ namespace OpenSim.Region.Framework.Scenes
SendInitialData();
// Create child agents in neighbouring regions
if (!m_isChildAgent && !m_scene.IsAuthoritativeScene())
//if (!m_isChildAgent && !m_scene.IsAuthoritativeScene())
if (!m_isChildAgent && !IsSyncedAvatar)
{
m_log.DebugFormat("[SCENE PRESENCE]: Requesting neighbouring children. cagent={0}, auth={1}",
m_isChildAgent.ToString(), m_scene.IsAuthoritativeScene());
m_log.DebugFormat("[SCENE PRESENCE]: Requesting neighbouring children. cagent={0}",
m_isChildAgent.ToString());
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null)
m_agentTransfer.EnableChildAgents(this);