diff options
author | Melanie | 2012-01-06 21:34:43 +0100 |
---|---|---|
committer | Melanie | 2012-01-06 21:34:43 +0100 |
commit | f1846045a6663c0530524d7c91d1ed17bf449c07 (patch) | |
tree | f4592ad721f22ff632da5f14dd3552647d404867 /OpenSim/Region | |
parent | Merge branch 'master' into careminster (diff) | |
download | opensim-SC_OLD-f1846045a6663c0530524d7c91d1ed17bf449c07.zip opensim-SC_OLD-f1846045a6663c0530524d7c91d1ed17bf449c07.tar.gz opensim-SC_OLD-f1846045a6663c0530524d7c91d1ed17bf449c07.tar.bz2 opensim-SC_OLD-f1846045a6663c0530524d7c91d1ed17bf449c07.tar.xz |
Add osNpcCreateOwned to create an owned NPC. Those can be sensed only by the owner, can be destroyed only by the owner and only the owner can save their appearance. Added "NPC" as a flag to llSensor to sense NPCs and exclude them from "AGENT" results.
Diffstat (limited to 'OpenSim/Region')
9 files changed, 91 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/INPCModule.cs b/OpenSim/Region/Framework/Interfaces/INPCModule.cs index b65f82c..cac8479 100644 --- a/OpenSim/Region/Framework/Interfaces/INPCModule.cs +++ b/OpenSim/Region/Framework/Interfaces/INPCModule.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
42 | /// <param name="scene"></param> | 42 | /// <param name="scene"></param> |
43 | /// <param name="appearance">The avatar appearance to use for the new NPC.</param> | 43 | /// <param name="appearance">The avatar appearance to use for the new NPC.</param> |
44 | /// <returns>The UUID of the ScenePresence created.</returns> | 44 | /// <returns>The UUID of the ScenePresence created.</returns> |
45 | UUID CreateNPC(string firstname, string lastname, Vector3 position, Scene scene, AvatarAppearance appearance); | 45 | UUID CreateNPC(string firstname, string lastname, Vector3 position, UUID owner, Scene scene, AvatarAppearance appearance); |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
48 | /// Check if the agent is an NPC. | 48 | /// Check if the agent is an NPC. |
@@ -117,6 +117,13 @@ namespace OpenSim.Region.Framework.Interfaces | |||
117 | /// <param name="agentID">The UUID of the NPC</param> | 117 | /// <param name="agentID">The UUID of the NPC</param> |
118 | /// <param name="scene"></param> | 118 | /// <param name="scene"></param> |
119 | /// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns> | 119 | /// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns> |
120 | bool DeleteNPC(UUID agentID, Scene scene); | 120 | bool DeleteNPC(UUID agentID, UUID CallerID, Scene scene); |
121 | |||
122 | /// <summary> | ||
123 | /// Get the owner of a NPC | ||
124 | /// </summary> | ||
125 | /// <param name="agentID">The UUID of the NPC</param> | ||
126 | /// <returns>UUID of owner if the NPC exists, UUID.Zero if there was no such agent, the agent is unowned or the agent was not an NPC</returns> | ||
127 | UUID GetOwner(UUID agentID); | ||
121 | } | 128 | } |
122 | } \ No newline at end of file | 129 | } |
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index 6c7a683..b4181a4 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs | |||
@@ -42,13 +42,15 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
42 | private readonly Vector3 m_startPos; | 42 | private readonly Vector3 m_startPos; |
43 | private readonly UUID m_uuid = UUID.Random(); | 43 | private readonly UUID m_uuid = UUID.Random(); |
44 | private readonly Scene m_scene; | 44 | private readonly Scene m_scene; |
45 | private readonly UUID m_ownerID; | ||
45 | 46 | ||
46 | public NPCAvatar(string firstname, string lastname, Vector3 position, Scene scene) | 47 | public NPCAvatar(string firstname, string lastname, Vector3 position, UUID ownerID, Scene scene) |
47 | { | 48 | { |
48 | m_firstname = firstname; | 49 | m_firstname = firstname; |
49 | m_lastname = lastname; | 50 | m_lastname = lastname; |
50 | m_startPos = position; | 51 | m_startPos = position; |
51 | m_scene = scene; | 52 | m_scene = scene; |
53 | m_ownerID = ownerID; | ||
52 | } | 54 | } |
53 | 55 | ||
54 | public IScene Scene | 56 | public IScene Scene |
@@ -56,6 +58,11 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
56 | get { return m_scene; } | 58 | get { return m_scene; } |
57 | } | 59 | } |
58 | 60 | ||
61 | public UUID OwnerID | ||
62 | { | ||
63 | get { return m_ownerID; } | ||
64 | } | ||
65 | |||
59 | public ISceneAgent SceneAgent { get { throw new NotImplementedException(); } } | 66 | public ISceneAgent SceneAgent { get { throw new NotImplementedException(); } } |
60 | 67 | ||
61 | public void Say(string message) | 68 | public void Say(string message) |
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs index 56ff367..e874417 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs | |||
@@ -91,9 +91,9 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
91 | } | 91 | } |
92 | 92 | ||
93 | public UUID CreateNPC( | 93 | public UUID CreateNPC( |
94 | string firstname, string lastname, Vector3 position, Scene scene, AvatarAppearance appearance) | 94 | string firstname, string lastname, Vector3 position, UUID owner, Scene scene, AvatarAppearance appearance) |
95 | { | 95 | { |
96 | NPCAvatar npcAvatar = new NPCAvatar(firstname, lastname, position, scene); | 96 | NPCAvatar npcAvatar = new NPCAvatar(firstname, lastname, position, owner, scene); |
97 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); | 97 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); |
98 | 98 | ||
99 | m_log.DebugFormat( | 99 | m_log.DebugFormat( |
@@ -234,12 +234,30 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
234 | return false; | 234 | return false; |
235 | } | 235 | } |
236 | 236 | ||
237 | public bool DeleteNPC(UUID agentID, Scene scene) | 237 | public UUID GetOwner(UUID agentID) |
238 | { | 238 | { |
239 | lock (m_avatars) | 239 | lock (m_avatars) |
240 | { | 240 | { |
241 | if (m_avatars.ContainsKey(agentID)) | 241 | NPCAvatar av; |
242 | if (m_avatars.TryGetValue(agentID, out av)) | ||
242 | { | 243 | { |
244 | return av.OwnerID; | ||
245 | } | ||
246 | } | ||
247 | |||
248 | return UUID.Zero; | ||
249 | } | ||
250 | |||
251 | public bool DeleteNPC(UUID agentID, UUID callerID, Scene scene) | ||
252 | { | ||
253 | lock (m_avatars) | ||
254 | { | ||
255 | NPCAvatar av; | ||
256 | if (m_avatars.TryGetValue(agentID, out av)) | ||
257 | { | ||
258 | if (av.OwnerID != UUID.Zero && callerID != UUID.Zero && av.OwnerID != callerID) | ||
259 | return false; | ||
260 | |||
243 | scene.RemoveClient(agentID, false); | 261 | scene.RemoveClient(agentID, false); |
244 | m_avatars.Remove(agentID); | 262 | m_avatars.Remove(agentID); |
245 | 263 | ||
@@ -268,4 +286,4 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
268 | get { return true; } | 286 | get { return true; } |
269 | } | 287 | } |
270 | } | 288 | } |
271 | } \ No newline at end of file | 289 | } |
diff --git a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs index 9c66b25..571d33d 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs | |||
@@ -109,7 +109,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests | |||
109 | afm.SetAppearance(sp, originalTe, null); | 109 | afm.SetAppearance(sp, originalTe, null); |
110 | 110 | ||
111 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); | 111 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); |
112 | UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), scene, sp.Appearance); | 112 | UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), UUID.Zero, scene, sp.Appearance); |
113 | 113 | ||
114 | ScenePresence npc = scene.GetScenePresence(npcId); | 114 | ScenePresence npc = scene.GetScenePresence(npcId); |
115 | 115 | ||
@@ -137,7 +137,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests | |||
137 | am.RezSingleAttachmentFromInventory(sp, attItemId, (uint)AttachmentPoint.Chest); | 137 | am.RezSingleAttachmentFromInventory(sp, attItemId, (uint)AttachmentPoint.Chest); |
138 | 138 | ||
139 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); | 139 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); |
140 | UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), scene, sp.Appearance); | 140 | UUID npcId = npcModule.CreateNPC("John", "Smith", new Vector3(128, 128, 30), UUID.Zero, scene, sp.Appearance); |
141 | 141 | ||
142 | ScenePresence npc = scene.GetScenePresence(npcId); | 142 | ScenePresence npc = scene.GetScenePresence(npcId); |
143 | 143 | ||
@@ -169,7 +169,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests | |||
169 | 169 | ||
170 | Vector3 startPos = new Vector3(128, 128, 30); | 170 | Vector3 startPos = new Vector3(128, 128, 30); |
171 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); | 171 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); |
172 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, scene, sp.Appearance); | 172 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, UUID.Zero, scene, sp.Appearance); |
173 | 173 | ||
174 | ScenePresence npc = scene.GetScenePresence(npcId); | 174 | ScenePresence npc = scene.GetScenePresence(npcId); |
175 | Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos)); | 175 | Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos)); |
@@ -240,7 +240,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests | |||
240 | 240 | ||
241 | Vector3 startPos = new Vector3(128, 128, 30); | 241 | Vector3 startPos = new Vector3(128, 128, 30); |
242 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); | 242 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); |
243 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, scene, sp.Appearance); | 243 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, UUID.Zero, scene, sp.Appearance); |
244 | 244 | ||
245 | ScenePresence npc = scene.GetScenePresence(npcId); | 245 | ScenePresence npc = scene.GetScenePresence(npcId); |
246 | SceneObjectPart part = SceneHelpers.AddSceneObject(scene); | 246 | SceneObjectPart part = SceneHelpers.AddSceneObject(scene); |
@@ -273,7 +273,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests | |||
273 | Vector3 startPos = new Vector3(1, 1, 1); | 273 | Vector3 startPos = new Vector3(1, 1, 1); |
274 | 274 | ||
275 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); | 275 | INPCModule npcModule = scene.RequestModuleInterface<INPCModule>(); |
276 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, scene, sp.Appearance); | 276 | UUID npcId = npcModule.CreateNPC("John", "Smith", startPos, UUID.Zero, scene, sp.Appearance); |
277 | 277 | ||
278 | ScenePresence npc = scene.GetScenePresence(npcId); | 278 | ScenePresence npc = scene.GetScenePresence(npcId); |
279 | SceneObjectPart part = SceneHelpers.AddSceneObject(scene); | 279 | SceneObjectPart part = SceneHelpers.AddSceneObject(scene); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 8cc6554..120ae2c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2076,10 +2076,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2076 | return retVal; | 2076 | return retVal; |
2077 | } | 2077 | } |
2078 | 2078 | ||
2079 | public LSL_Key osNpcCreateOwned(string firstname, string lastname, LSL_Vector position, string notecard) | ||
2080 | { | ||
2081 | CheckThreatLevel(ThreatLevel.High, "osNpcCreateOwned"); | ||
2082 | return NpcCreate(firstname, lastname, position, notecard, true); | ||
2083 | } | ||
2084 | |||
2079 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard) | 2085 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard) |
2080 | { | 2086 | { |
2081 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); | 2087 | CheckThreatLevel(ThreatLevel.High, "osNpcCreated"); |
2088 | return NpcCreate(firstname, lastname, position, notecard, false); | ||
2089 | } | ||
2082 | 2090 | ||
2091 | private LSL_Key NpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, bool owned) | ||
2092 | { | ||
2083 | INPCModule module = World.RequestModuleInterface<INPCModule>(); | 2093 | INPCModule module = World.RequestModuleInterface<INPCModule>(); |
2084 | if (module != null) | 2094 | if (module != null) |
2085 | { | 2095 | { |
@@ -2108,9 +2118,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2108 | if (appearance == null) | 2118 | if (appearance == null) |
2109 | return new LSL_Key(UUID.Zero.ToString()); | 2119 | return new LSL_Key(UUID.Zero.ToString()); |
2110 | 2120 | ||
2121 | UUID ownerID = UUID.Zero; | ||
2122 | if (owned) | ||
2123 | ownerID = m_host.OwnerID; | ||
2111 | UUID x = module.CreateNPC(firstname, | 2124 | UUID x = module.CreateNPC(firstname, |
2112 | lastname, | 2125 | lastname, |
2113 | new Vector3((float) position.x, (float) position.y, (float) position.z), | 2126 | new Vector3((float) position.x, (float) position.y, (float) position.z), |
2127 | ownerID, | ||
2114 | World,appearance); | 2128 | World,appearance); |
2115 | 2129 | ||
2116 | return new LSL_Key(x.ToString()); | 2130 | return new LSL_Key(x.ToString()); |
@@ -2140,6 +2154,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2140 | if (!npcModule.IsNPC(npcId, m_host.ParentGroup.Scene)) | 2154 | if (!npcModule.IsNPC(npcId, m_host.ParentGroup.Scene)) |
2141 | return new LSL_Key(UUID.Zero.ToString()); | 2155 | return new LSL_Key(UUID.Zero.ToString()); |
2142 | 2156 | ||
2157 | UUID ownerID = npcModule.GetOwner(npcId); | ||
2158 | if (ownerID != UUID.Zero && ownerID != m_host.OwnerID) | ||
2159 | return new LSL_Key(UUID.Zero.ToString()); | ||
2160 | |||
2143 | return SaveAppearanceToNotecard(npcId, notecard); | 2161 | return SaveAppearanceToNotecard(npcId, notecard); |
2144 | } | 2162 | } |
2145 | 2163 | ||
@@ -2319,7 +2337,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2319 | INPCModule module = World.RequestModuleInterface<INPCModule>(); | 2337 | INPCModule module = World.RequestModuleInterface<INPCModule>(); |
2320 | if (module != null) | 2338 | if (module != null) |
2321 | { | 2339 | { |
2322 | module.DeleteNPC(new UUID(npc.m_string), World); | 2340 | module.DeleteNPC(new UUID(npc.m_string), m_host.OwnerID, World); |
2323 | } | 2341 | } |
2324 | } | 2342 | } |
2325 | 2343 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs index 91a7b87..ac1c1a9 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs | |||
@@ -26,10 +26,13 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Reflection; | ||
29 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
30 | using OpenMetaverse; | 31 | using OpenMetaverse; |
31 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using log4net; | ||
32 | 34 | ||
35 | using OpenSim.Region.Framework.Interfaces; | ||
33 | using OpenSim.Region.Framework.Scenes; | 36 | using OpenSim.Region.Framework.Scenes; |
34 | using OpenSim.Region.ScriptEngine.Shared; | 37 | using OpenSim.Region.ScriptEngine.Shared; |
35 | using OpenSim.Region.ScriptEngine.Shared.Api; | 38 | using OpenSim.Region.ScriptEngine.Shared.Api; |
@@ -51,6 +54,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
51 | 54 | ||
52 | private const int AGENT = 1; | 55 | private const int AGENT = 1; |
53 | private const int AGENT_BY_USERNAME = 0x10; | 56 | private const int AGENT_BY_USERNAME = 0x10; |
57 | private const int NPC = 0x20; | ||
54 | private const int ACTIVE = 2; | 58 | private const int ACTIVE = 2; |
55 | private const int PASSIVE = 4; | 59 | private const int PASSIVE = 4; |
56 | private const int SCRIPTED = 8; | 60 | private const int SCRIPTED = 8; |
@@ -203,7 +207,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
203 | List<SensedEntity> sensedEntities = new List<SensedEntity>(); | 207 | List<SensedEntity> sensedEntities = new List<SensedEntity>(); |
204 | 208 | ||
205 | // Is the sensor type is AGENT and not SCRIPTED then include agents | 209 | // Is the sensor type is AGENT and not SCRIPTED then include agents |
206 | if ((ts.type & (AGENT | AGENT_BY_USERNAME)) != 0 && (ts.type & SCRIPTED) == 0) | 210 | if ((ts.type & (AGENT | AGENT_BY_USERNAME | NPC)) != 0 && (ts.type & SCRIPTED) == 0) |
207 | { | 211 | { |
208 | sensedEntities.AddRange(doAgentSensor(ts)); | 212 | sensedEntities.AddRange(doAgentSensor(ts)); |
209 | } | 213 | } |
@@ -415,6 +419,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
415 | 419 | ||
416 | private List<SensedEntity> doAgentSensor(SenseRepeatClass ts) | 420 | private List<SensedEntity> doAgentSensor(SenseRepeatClass ts) |
417 | { | 421 | { |
422 | INPCModule npcModule = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<INPCModule>(); | ||
423 | |||
418 | List<SensedEntity> sensedEntities = new List<SensedEntity>(); | 424 | List<SensedEntity> sensedEntities = new List<SensedEntity>(); |
419 | 425 | ||
420 | // If nobody about quit fast | 426 | // If nobody about quit fast |
@@ -446,7 +452,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
446 | 452 | ||
447 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(delegate(ScenePresence presence) | 453 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(delegate(ScenePresence presence) |
448 | { | 454 | { |
449 | if (presence.PresenceType == PresenceType.Npc) | 455 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) |
456 | return; | ||
457 | if ((ts.type & AGENT) == 0 && presence.PresenceType == PresenceType.User) | ||
450 | return; | 458 | return; |
451 | 459 | ||
452 | if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) | 460 | if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) |
@@ -460,6 +468,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
460 | toRegionPos = presence.AbsolutePosition; | 468 | toRegionPos = presence.AbsolutePosition; |
461 | dis = Math.Abs(Util.GetDistanceTo(toRegionPos, fromRegionPos)); | 469 | dis = Math.Abs(Util.GetDistanceTo(toRegionPos, fromRegionPos)); |
462 | 470 | ||
471 | if (presence.PresenceType == PresenceType.Npc && npcModule != null) | ||
472 | { | ||
473 | UUID npcOwner = npcModule.GetOwner(presence.UUID); | ||
474 | if (npcOwner != UUID.Zero && npcOwner != SensePoint.OwnerID) | ||
475 | return; | ||
476 | } | ||
477 | |||
463 | // are they in range | 478 | // are they in range |
464 | if (dis <= ts.range) | 479 | if (dis <= ts.range) |
465 | { | 480 | { |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index a49feb0..a815c5b 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 osNpcCreateOwned(string user, string name, vector position, string notecard); | ||
175 | LSL_Key osNpcSaveAppearance(key npc, string notecard); | 176 | LSL_Key osNpcSaveAppearance(key npc, string notecard); |
176 | void osNpcLoadAppearance(key npc, string notecard); | 177 | void osNpcLoadAppearance(key npc, string notecard); |
177 | vector osNpcGetPos(key npc); | 178 | vector osNpcGetPos(key npc); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index 0ad3f78..3c258d8 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -52,6 +52,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
52 | public const int AGENT = 1; | 52 | public const int AGENT = 1; |
53 | public const int AGENT_BY_LEGACY_NAME = 1; | 53 | public const int AGENT_BY_LEGACY_NAME = 1; |
54 | public const int AGENT_BY_USERNAME = 0x10; | 54 | public const int AGENT_BY_USERNAME = 0x10; |
55 | public const int NPC = 0x20; | ||
55 | public const int ACTIVE = 2; | 56 | public const int ACTIVE = 2; |
56 | public const int PASSIVE = 4; | 57 | public const int PASSIVE = 4; |
57 | public const int SCRIPTED = 8; | 58 | public const int SCRIPTED = 8; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 0d7d5ea..6572def 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 osNpcCreateOwned(string user, string name, vector position, key cloneFrom) | ||
492 | { | ||
493 | return m_OSSL_Functions.osNpcCreateOwned(user, name, position, cloneFrom); | ||
494 | } | ||
495 | |||
491 | public key osNpcSaveAppearance(key npc, string notecard) | 496 | public key osNpcSaveAppearance(key npc, string notecard) |
492 | { | 497 | { |
493 | return m_OSSL_Functions.osNpcSaveAppearance(npc, notecard); | 498 | return m_OSSL_Functions.osNpcSaveAppearance(npc, notecard); |
@@ -818,4 +823,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
818 | return m_OSSL_Functions.osUnixTimeToTimestamp(time); | 823 | return m_OSSL_Functions.osUnixTimeToTimestamp(time); |
819 | } | 824 | } |
820 | } | 825 | } |
821 | } \ No newline at end of file | 826 | } |