diff options
author | Justin Clark-Casey (justincc) | 2012-01-12 19:37:30 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-01-12 19:37:30 +0000 |
commit | c4972e773465172d33d72f94d3f5e37cec1b8831 (patch) | |
tree | 876d187c646b2fc8290f6222719fd83dc2c6589a | |
parent | Allow all NPCs to show up on sensors as all osNpc* script methods now check f... (diff) | |
download | opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.zip opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.gz opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.bz2 opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.xz |
Add osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) variant.
This will be documented soon. Options can currently be
OS_NPC_CREATE_OWNED - creates a 'creator owned' avatar that will only respond to osNpc* functions made by scripts owned by the npc creator
OS_NPC_NOT_OWNED - creates an avatar which will respond to any osNpc* functions that a caller has permission to make (through the usual OSSL permission mechanisms).
options is being added to provide better scope for future extensibility without having to add more functions
The original non-options osNpcCreate() function will continue to exist.
4 files changed, 15 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 509bbec..25e4789 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2089,6 +2089,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2089 | return NpcCreate(firstname, lastname, position, notecard, false); | 2089 | return NpcCreate(firstname, lastname, position, notecard, false); |
2090 | } | 2090 | } |
2091 | 2091 | ||
2092 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) | ||
2093 | { | ||
2094 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); | ||
2095 | return NpcCreate(firstname, lastname, position, notecard, (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0); | ||
2096 | } | ||
2097 | |||
2092 | private LSL_Key NpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, bool owned) | 2098 | private LSL_Key NpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, bool owned) |
2093 | { | 2099 | { |
2094 | INPCModule module = World.RequestModuleInterface<INPCModule>(); | 2100 | INPCModule module = World.RequestModuleInterface<INPCModule>(); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index f92f51f..ddfc20d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | |||
@@ -172,6 +172,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
172 | LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules); | 172 | LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules); |
173 | 173 | ||
174 | key osNpcCreate(string user, string name, vector position, string notecard); | 174 | key osNpcCreate(string user, string name, vector position, string notecard); |
175 | key osNpcCreate(string user, string name, vector position, string notecard, int options); | ||
175 | key osNpcCreateOwned(string user, string name, vector position, string notecard); | 176 | key osNpcCreateOwned(string user, string name, vector position, string notecard); |
176 | LSL_Key osNpcSaveAppearance(key npc, string notecard); | 177 | LSL_Key osNpcSaveAppearance(key npc, string notecard); |
177 | void osNpcLoadAppearance(key npc, string notecard); | 178 | void osNpcLoadAppearance(key npc, 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 b58cf57..176dc56 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -606,6 +606,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
606 | 606 | ||
607 | public const int OS_NPC_SIT_NOW = 0; | 607 | public const int OS_NPC_SIT_NOW = 0; |
608 | 608 | ||
609 | public const int OS_NPC_CREATOR_OWNED = 0x1; | ||
610 | public const int OS_NPC_NOT_OWNED = 0x2; | ||
611 | |||
609 | public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED"; | 612 | public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED"; |
610 | public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED"; | 613 | public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED"; |
611 | 614 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index a94392a..ceccceb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | |||
@@ -488,6 +488,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
488 | return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom); | 488 | return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom); |
489 | } | 489 | } |
490 | 490 | ||
491 | public key osNpcCreate(string user, string name, vector position, key cloneFrom, int options) | ||
492 | { | ||
493 | return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom, options); | ||
494 | } | ||
495 | |||
491 | public key osNpcCreateOwned(string user, string name, vector position, key cloneFrom) | 496 | public key osNpcCreateOwned(string user, string name, vector position, key cloneFrom) |
492 | { | 497 | { |
493 | return m_OSSL_Functions.osNpcCreateOwned(user, name, position, cloneFrom); | 498 | return m_OSSL_Functions.osNpcCreateOwned(user, name, position, cloneFrom); |