diff options
author | Justin Clark-Casey (justincc) | 2011-10-17 01:42:31 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-10-17 01:42:31 +0100 |
commit | 0c041ce12f393367e2754e88d9b8dad5e45f88c4 (patch) | |
tree | ac02f32cda8bd7056e1ebbf0c037d9979d808d2b /OpenSim/Region/ScriptEngine/Shared | |
parent | Guard HGAssetService against uninitialized variables and null arguments. (diff) | |
download | opensim-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 '')
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); |