mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
move resit fix to ScenePresence.cs and allow for requesting sit on objects other than the object currently sat on
This commit is contained in:
@@ -6427,19 +6427,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
|
AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
|
||||||
if (handlerAgentRequestSit != null)
|
|
||||||
if (!(agentRequestSit.AgentData == null
|
|
||||||
|| agentRequestSit.TargetObject == null
|
|
||||||
|| agentRequestSit.TargetObject.TargetID == null
|
|
||||||
|| agentRequestSit.TargetObject.Offset == null))
|
|
||||||
{
|
|
||||||
var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID);
|
|
||||||
if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting
|
|
||||||
return true;
|
|
||||||
|
|
||||||
handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
|
if (handlerAgentRequestSit != null)
|
||||||
agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
|
handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
|
||||||
}
|
agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1954,6 +1954,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||||||
{
|
{
|
||||||
if (ParentID != 0)
|
if (ParentID != 0)
|
||||||
{
|
{
|
||||||
|
var targetPart = m_scene.GetSceneObjectPart(targetID);
|
||||||
|
if (targetPart != null && targetPart.LocalId == ParentID)
|
||||||
|
return; // already sitting here, ignore
|
||||||
|
|
||||||
StandUp();
|
StandUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user