diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 21 |
1 files changed, 21 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 7792ab5..ba96ad8 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2313,6 +2313,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2313 | } | 2313 | } |
2314 | } | 2314 | } |
2315 | 2315 | ||
2316 | public LSL_Key osNpcGetOwner(LSL_Key npc) | ||
2317 | { | ||
2318 | CheckThreatLevel(ThreatLevel.None, "osNpcGetOwner"); | ||
2319 | |||
2320 | INPCModule npcModule = World.RequestModuleInterface<INPCModule>(); | ||
2321 | if (npcModule != null) | ||
2322 | { | ||
2323 | UUID npcId; | ||
2324 | if (UUID.TryParse(npc.m_string, out npcId)) | ||
2325 | { | ||
2326 | UUID owner = npcModule.GetOwner(npcId); | ||
2327 | if (owner != UUID.Zero) | ||
2328 | return new LSL_Key(owner.ToString()); | ||
2329 | else | ||
2330 | return npc; | ||
2331 | } | ||
2332 | } | ||
2333 | |||
2334 | return new LSL_Key(UUID.Zero.ToString()); | ||
2335 | } | ||
2336 | |||
2316 | public LSL_Vector osNpcGetPos(LSL_Key npc) | 2337 | public LSL_Vector osNpcGetPos(LSL_Key npc) |
2317 | { | 2338 | { |
2318 | CheckThreatLevel(ThreatLevel.High, "osNpcGetPos"); | 2339 | CheckThreatLevel(ThreatLevel.High, "osNpcGetPos"); |