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; 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}", string debugMsg = "Part " + part.Name + "," + part.UUID+", LocalID "+part.LocalId;
//Flags = {7}, LocalFlags {8}, Scale {9}", if (part.ParentGroup.RootPart.UUID == part.UUID)
part.Name, part.UUID, part.LocalId, part.GroupPosition, part.OffsetPosition, debugMsg += ", RootPart, ";
pos, part.AggregateScriptEvents, else
//part.Flags, part.LocalFlags, part.Scale); debugMsg += ", ChildPart, ";
part.AttachedAvatar, part.AttachmentPoint, part.AttachedPos 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) public override void AddNewClient(IClientAPI client)
{ {
//AddNewClient2(client, true); //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)
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); AgentCircuitData aCircuit = m_authenticateHandler.GetAgentCircuitData(client.CircuitCode);
@ -3103,6 +3103,7 @@ namespace OpenSim.Region.Framework.Scenes
SubscribeToClientEvents(client); SubscribeToClientEvents(client);
ScenePresence sp = m_sceneGraph.CreateAndAddChildScenePresence(client, aCircuit == null ? null : aCircuit.Appearance); ScenePresence sp = m_sceneGraph.CreateAndAddChildScenePresence(client, aCircuit == null ? null : aCircuit.Appearance);
sp.IsSyncedAvatar = isSyncedAvatar;
m_eventManager.TriggerOnNewPresence(sp); m_eventManager.TriggerOnNewPresence(sp);
//presence.initializeScenePresence(client, RegionInfo, this); //presence.initializeScenePresence(client, RegionInfo, this);

View File

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