checking return code may make failed teleports fail more gracefully.
parent
6353df5569
commit
17c25796b8
|
@ -92,6 +92,11 @@ namespace OpenSim.Framework.UserManagement
|
||||||
string firstname = (string) requestData["first"];
|
string firstname = (string) requestData["first"];
|
||||||
string lastname = (string) requestData["last"];
|
string lastname = (string) requestData["last"];
|
||||||
|
|
||||||
|
if( requestData.Contains("version"))
|
||||||
|
{
|
||||||
|
string clientversion = (string)requestData["version"];
|
||||||
|
MainLog.Instance.Verbose("LOGIN","Client Version " + clientversion + " for " + firstname + " " + lastname);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
userProfile = GetTheUser(firstname, lastname);
|
userProfile = GetTheUser(firstname, lastname);
|
||||||
|
|
|
@ -421,25 +421,27 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
agent.startpos = position;
|
agent.startpos = position;
|
||||||
agent.child = true;
|
agent.child = true;
|
||||||
avatar.Close();
|
avatar.Close();
|
||||||
m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent);
|
if (m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent) &&
|
||||||
m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId,
|
m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId,
|
||||||
position, false);
|
position, false)) ;
|
||||||
AgentCircuitData circuitdata = avatar.ControllingClient.RequestClientInfo();
|
|
||||||
string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId);
|
|
||||||
avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4),
|
|
||||||
capsPath);
|
|
||||||
avatar.MakeChildAgent();
|
|
||||||
if (KillObject != null)
|
|
||||||
{
|
{
|
||||||
KillObject(avatar.LocalId);
|
AgentCircuitData circuitdata = avatar.ControllingClient.RequestClientInfo();
|
||||||
}
|
string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId);
|
||||||
uint newRegionX = (uint) (regionHandle >> 40);
|
avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4),
|
||||||
uint newRegionY = (((uint) (regionHandle)) >> 8);
|
capsPath);
|
||||||
uint oldRegionX = (uint) (m_regionInfo.RegionHandle >> 40);
|
avatar.MakeChildAgent();
|
||||||
uint oldRegionY = (((uint) (m_regionInfo.RegionHandle)) >> 8);
|
if (KillObject != null)
|
||||||
if (Util.fast_distance2d((int) (newRegionX - oldRegionX), (int) (newRegionY - oldRegionY)) > 3)
|
{
|
||||||
{
|
KillObject(avatar.LocalId);
|
||||||
CloseChildAgentConnections(avatar);
|
}
|
||||||
|
uint newRegionX = (uint)(regionHandle >> 40);
|
||||||
|
uint newRegionY = (((uint)(regionHandle)) >> 8);
|
||||||
|
uint oldRegionX = (uint)(m_regionInfo.RegionHandle >> 40);
|
||||||
|
uint oldRegionY = (((uint)(m_regionInfo.RegionHandle)) >> 8);
|
||||||
|
if (Util.fast_distance2d((int)(newRegionX - oldRegionX), (int)(newRegionY - oldRegionY)) > 3)
|
||||||
|
{
|
||||||
|
CloseChildAgentConnections(avatar);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue