mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 22:26:09 +08:00
several changes for osTeleportObject
This commit is contained in:
@@ -4664,7 +4664,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
/// has a cool down time. retries before expire reset it
|
||||
/// fail conditions are silent ignored
|
||||
/// </remarks>
|
||||
public void osTeleportObject(LSL_Key objectUUID, LSL_Vector targetPos, LSL_Rotation rotation, LSL_Integer flags)
|
||||
public LSL_Integer osTeleportObject(LSL_Key objectUUID, LSL_Vector targetPos, LSL_Rotation rotation, LSL_Integer flags)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.Severe, "osTeleportObject");
|
||||
m_host.AddScriptLPS(1);
|
||||
@@ -4673,16 +4673,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
if (!UUID.TryParse(objectUUID, out objUUID))
|
||||
{
|
||||
OSSLShoutError("osTeleportObject() invalid object Key");
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
|
||||
SceneObjectGroup sog = World.GetSceneObjectGroup(objUUID);
|
||||
if(sog== null || sog.IsDeleted)
|
||||
return;
|
||||
return -1;
|
||||
|
||||
UUID myid = m_host.ParentGroup.UUID;
|
||||
|
||||
sog.TeleportObject(myid, targetPos, rotation, flags);
|
||||
return sog.TeleportObject(myid, targetPos, rotation, flags);
|
||||
// a delay here may break vehicles
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||
/// </summary>
|
||||
public enum ThreatLevel
|
||||
{
|
||||
// Not documented, presumably means permanently disabled ?
|
||||
NoAccess = -1,
|
||||
|
||||
/// <summary>
|
||||
@@ -496,7 +495,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||
void osSetInertiaAsSphere(LSL_Float mass, LSL_Float radius, vector centerOfMass);
|
||||
void osSetInertiaAsCylinder(LSL_Float mass, LSL_Float radius, LSL_Float lenght, vector centerOfMass,rotation lslrot);
|
||||
|
||||
void osTeleportObject(LSL_Key objectUUID, vector targetPos, rotation targetrotation, LSL_Integer flags);
|
||||
LSL_Integer osTeleportObject(LSL_Key objectUUID, vector targetPos, rotation targetrotation, LSL_Integer flags);
|
||||
LSL_Integer osGetLinkNumber(LSL_String name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -856,7 +856,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
|
||||
// for osTeleportObject
|
||||
public const int OSTPOBJ_NONE = 0x0;
|
||||
public const int OSTPOBJ_STOPATTARRGET = 0x1; // stops at destination
|
||||
public const int OSTPOBJ_STOPATTARGET = 0x1; // stops at destination
|
||||
public const int OSTPOBJ_STOPONFAIL = 0x2; // stops at jump point if tp fails
|
||||
public const int OSTPOBJ_SETROT = 0x4; // the rotation is the final rotation, otherwise is a added rotation
|
||||
|
||||
|
||||
@@ -1140,9 +1140,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
m_OSSL_Functions.osClearInertia();
|
||||
}
|
||||
|
||||
public void osTeleportObject(LSL_Key objectUUID, vector targetPos, rotation targetrotation, LSL_Integer flags)
|
||||
public LSL_Integer osTeleportObject(LSL_Key objectUUID, vector targetPos, rotation targetrotation, LSL_Integer flags)
|
||||
{
|
||||
m_OSSL_Functions.osTeleportObject(objectUUID, targetPos, targetrotation, flags);
|
||||
return m_OSSL_Functions.osTeleportObject(objectUUID, targetPos, targetrotation, flags);
|
||||
}
|
||||
|
||||
public LSL_Integer osGetLinkNumber(LSL_String name)
|
||||
|
||||
Reference in New Issue
Block a user