Implement osNpcSit(). This is still in development so don't trust it

Format is osNpcSit(<npc-uuid>, <target-uuid>, OS_NPC_SIT_IMMEDIATE)
e.g. osNpcSit(npc, llGetKey(), OS_NPC_SIT_IMMEDIATE);
At the moment, sit only succeeds if the part has a sit target set.
NPC immediately sits on the target even if miles away - they do not walk up to it.
This method is in development - it may change so please don't trust it yet.
Standing will follow shortly since that's kind of important once you're sitting :)
This commit is contained in:
Justin Clark-Casey (justincc)
2011-10-17 01:42:31 +01:00
parent bbd0e68c06
commit 0c041ce12f
10 changed files with 75 additions and 5 deletions

View File

@@ -1220,14 +1220,12 @@ namespace OpenSim.Region.Framework.Scenes
}
}
public UUID SitTargetAvatar
{
get { return m_sitTargetAvatar; }
set { m_sitTargetAvatar = value; }
}
public virtual UUID RegionID
{
get

View File

@@ -615,13 +615,13 @@ namespace OpenSim.Region.Framework.Scenes
set { m_isChildAgent = value; }
}
private uint m_parentID;
public uint ParentID
{
get { return m_parentID; }
set { m_parentID = value; }
}
private uint m_parentID;
public float Health
{
get { return m_health; }
@@ -1962,6 +1962,8 @@ namespace OpenSim.Region.Framework.Scenes
)
));
// m_log.DebugFormat("[SCENE PRESENCE]: {0} {1}", SitTargetisSet, SitTargetUnOccupied);
if (SitTargetisSet && SitTargetUnOccupied)
{
part.SitTargetAvatar = UUID;
@@ -2256,7 +2258,6 @@ namespace OpenSim.Region.Framework.Scenes
}
*/
public void HandleAgentSit(IClientAPI remoteClient, UUID agentID)
{
if (!String.IsNullOrEmpty(m_nextSitAnimation))