aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-10-17 01:42:31 +0100
committerJustin Clark-Casey (justincc)2011-10-17 01:42:31 +0100
commit0c041ce12f393367e2754e88d9b8dad5e45f88c4 (patch)
treeac02f32cda8bd7056e1ebbf0c037d9979d808d2b /OpenSim/Region/ScriptEngine/Shared
parentGuard HGAssetService against uninitialized variables and null arguments. (diff)
downloadopensim-SC-0c041ce12f393367e2754e88d9b8dad5e45f88c4.zip
opensim-SC-0c041ce12f393367e2754e88d9b8dad5e45f88c4.tar.gz
opensim-SC-0c041ce12f393367e2754e88d9b8dad5e45f88c4.tar.bz2
opensim-SC-0c041ce12f393367e2754e88d9b8dad5e45f88c4.tar.xz
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 :)
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs11
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs5
4 files changed, 19 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 268a599..7cf6642 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -2351,6 +2351,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2351 } 2351 }
2352 } 2352 }
2353 2353
2354 public void osNpcSit(LSL_Key npc, LSL_Key target, int options)
2355 {
2356 CheckThreatLevel(ThreatLevel.High, "osNpcSit");
2357
2358 INPCModule module = World.RequestModuleInterface<INPCModule>();
2359 if (module != null)
2360 {
2361 module.Sit(new UUID(npc.m_string), new UUID(target.m_string), World);
2362 }
2363 }
2364
2354 public void osNpcRemove(LSL_Key npc) 2365 public void osNpcRemove(LSL_Key npc)
2355 { 2366 {
2356 CheckThreatLevel(ThreatLevel.High, "osNpcRemove"); 2367 CheckThreatLevel(ThreatLevel.High, "osNpcRemove");
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 87cfe1a..bb0a870 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -178,6 +178,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
178 void osNpcSetRot(LSL_Key npc, rotation rot); 178 void osNpcSetRot(LSL_Key npc, rotation rot);
179 void osNpcStopMoveToTarget(LSL_Key npc); 179 void osNpcStopMoveToTarget(LSL_Key npc);
180 void osNpcSay(key npc, string message); 180 void osNpcSay(key npc, string message);
181 void osNpcSit(key npc, key target, int options);
181 void osNpcRemove(key npc); 182 void osNpcRemove(key npc);
182 183
183 LSL_Key osOwnerSaveAppearance(string notecard); 184 LSL_Key osOwnerSaveAppearance(string notecard);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index 36c5f90..d36b550 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -600,6 +600,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
600 public const int OS_NPC_NO_FLY = 1; 600 public const int OS_NPC_NO_FLY = 1;
601 public const int OS_NPC_LAND_AT_TARGET = 2; 601 public const int OS_NPC_LAND_AT_TARGET = 2;
602 602
603 public const int OS_NPC_SIT_IMMEDIATE = 0;
604
603 public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED"; 605 public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED";
604 public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED"; 606 public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED";
605 607
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index bbc8cc6..38391df 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -528,6 +528,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
528 m_OSSL_Functions.osNpcSay(npc, message); 528 m_OSSL_Functions.osNpcSay(npc, message);
529 } 529 }
530 530
531 public void osNpcSit(LSL_Key npc, LSL_Key target, int options)
532 {
533 m_OSSL_Functions.osNpcSit(npc, target, options);
534 }
535
531 public void osNpcRemove(key npc) 536 public void osNpcRemove(key npc)
532 { 537 {
533 m_OSSL_Functions.osNpcRemove(npc); 538 m_OSSL_Functions.osNpcRemove(npc);