aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs53
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs9
3 files changed, 64 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index d11d377..d3ba675 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -872,6 +872,59 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
872 872
873 TeleportAgent(m_host.OwnerID.ToString(), regionX, regionY, position, lookat, true); 873 TeleportAgent(m_host.OwnerID.ToString(), regionX, regionY, position, lookat, true);
874 } 874 }
875 ///<summary>
876 /// Allows a script IN the target prim to force an avatar to sit on it using normal methods
877 /// as if called by the client.
878 /// Silent fail if agent (or target if overloaded) not found.
879 /// Does work if passed key (or keys if overloaded).
880 /// </summary>
881 /// <param name="avatar"></param>
882 public void osForceSit(string avatar)
883 {
884 CheckThreatLevel(ThreatLevel.VeryHigh, "osForceSit");
885
886 m_host.AddScriptLPS(1);
887
888 ForceSit(avatar, m_host.UUID);
889 }
890 /// <summary>
891 /// Overload method of osForceSit(string avatar) to allow a script NOT in the target prim to force
892 /// an avatar to sit on the target prim using normal methods as if called by the client.
893 /// </summary>
894 /// <param name="avatar"></param>
895 /// <param name="target"></param>
896 public void osForceSit(string avatar, string target)
897 {
898 CheckThreatLevel(ThreatLevel.VeryHigh, "osForceSit");
899
900 m_host.AddScriptLPS(1);
901
902 UUID targetID = new UUID(target);
903
904 ForceSit(avatar, targetID);
905
906
907 }
908
909 public void ForceSit(string avatar, UUID targetID)
910 {
911 UUID agentID;
912
913 if (!UUID.TryParse(avatar, out agentID))
914 return;
915
916 ScenePresence presence = World.GetScenePresence(agentID);
917
918 SceneObjectPart part = World.GetSceneObjectPart(targetID);
919
920 if (presence != null &&
921 part != null &&
922 part.SitTargetAvatar == UUID.Zero)
923 presence.HandleAgentRequestSit(presence.ControllingClient,
924 agentID,
925 targetID,
926 part.SitTargetPosition);
927 }
875 928
876 // Functions that get information from the agent itself. 929 // Functions that get information from the agent itself.
877 // 930 //
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 41d13ea..83a0808 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -363,6 +363,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
363 LSL_Float osGetHealth(string avatar); 363 LSL_Float osGetHealth(string avatar);
364 void osCauseHealing(string avatar, double healing); 364 void osCauseHealing(string avatar, double healing);
365 void osCauseDamage(string avatar, double damage); 365 void osCauseDamage(string avatar, double damage);
366 void osForceSit(string avatar);
367 void osForceSit(string avatar, string target);
366 LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules); 368 LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules);
367 void osSetPrimitiveParams(LSL_Key prim, LSL_List rules); 369 void osSetPrimitiveParams(LSL_Key prim, LSL_List rules);
368 void osSetProjectionParams(bool projection, LSL_Key texture, double fov, double focus, double amb); 370 void osSetProjectionParams(bool projection, LSL_Key texture, double fov, double focus, double amb);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index b436c52..da88cc4 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -919,6 +919,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
919 { 919 {
920 m_OSSL_Functions.osCauseHealing(avatar, healing); 920 m_OSSL_Functions.osCauseHealing(avatar, healing);
921 } 921 }
922
923 public void osForceSit(string avatar)
924 {
925 m_OSSL_Functions.osForceSit(avatar);
926 }
927 public void osForceSit(string avatar, string target)
928 {
929 m_OSSL_Functions.osForceSit(avatar, target);
930 }
922 931
923 public LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules) 932 public LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules)
924 { 933 {