diff options
author | Justin Clark-Casey (justincc) | 2012-02-16 00:15:39 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-02-16 00:22:39 +0000 |
commit | c906128191a6801df46d5542c441ef37c5c456a9 (patch) | |
tree | 148519a768001b58aa7c4013257753ba6909f0e3 | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC-c906128191a6801df46d5542c441ef37c5c456a9.zip opensim-SC-c906128191a6801df46d5542c441ef37c5c456a9.tar.gz opensim-SC-c906128191a6801df46d5542c441ef37c5c456a9.tar.bz2 opensim-SC-c906128191a6801df46d5542c441ef37c5c456a9.tar.xz |
Fix some logic mistakes where firstly osNpcCreate() without options was creating npcs sensed as agents and secondly the OS_NPC_SENSE_AS_AGENT option was having the opposite effect.
Hopefully makes progress on addressing http://opensimulator.org/mantis/view.php?id=5872
3 files changed, 20 insertions, 5 deletions
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs index 5359354..2052cdb 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs | |||
@@ -121,8 +121,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
121 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); | 121 | npcAvatar.CircuitCode = (uint)Util.RandomClass.Next(0, int.MaxValue); |
122 | 122 | ||
123 | m_log.DebugFormat( | 123 | m_log.DebugFormat( |
124 | "[NPC MODULE]: Creating NPC {0} {1} {2} at {3} in {4}", | 124 | "[NPC MODULE]: Creating NPC {0} {1} {2}, owner={3}, senseAsAgent={4} at {5} in {6}", |
125 | firstname, lastname, npcAvatar.AgentId, position, scene.RegionInfo.RegionName); | 125 | firstname, lastname, npcAvatar.AgentId, owner, senseAsAgent, position, scene.RegionInfo.RegionName); |
126 | 126 | ||
127 | AgentCircuitData acd = new AgentCircuitData(); | 127 | AgentCircuitData acd = new AgentCircuitData(); |
128 | acd.AgentID = npcAvatar.AgentId; | 128 | acd.AgentID = npcAvatar.AgentId; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index b1583eb..646a97b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2233,7 +2233,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2233 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); | 2233 | CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); |
2234 | m_host.AddScriptLPS(1); | 2234 | m_host.AddScriptLPS(1); |
2235 | 2235 | ||
2236 | return NpcCreate(firstname, lastname, position, notecard, false, true); | 2236 | return NpcCreate(firstname, lastname, position, notecard, false, false); |
2237 | } | 2237 | } |
2238 | 2238 | ||
2239 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) | 2239 | public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) |
@@ -2244,7 +2244,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2244 | return NpcCreate( | 2244 | return NpcCreate( |
2245 | firstname, lastname, position, notecard, | 2245 | firstname, lastname, position, notecard, |
2246 | (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0, | 2246 | (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0, |
2247 | (options & ScriptBaseClass.OS_NPC_SENSE_AS_AGENT) == 0); | 2247 | (options & ScriptBaseClass.OS_NPC_SENSE_AS_AGENT) != 0); |
2248 | } | 2248 | } |
2249 | 2249 | ||
2250 | private LSL_Key NpcCreate( | 2250 | private LSL_Key NpcCreate( |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs index 850f50b..5c1bdff 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs | |||
@@ -31,7 +31,6 @@ using System.Collections.Generic; | |||
31 | using OpenMetaverse; | 31 | using OpenMetaverse; |
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using log4net; | 33 | using log4net; |
34 | |||
35 | using OpenSim.Region.Framework.Interfaces; | 34 | using OpenSim.Region.Framework.Interfaces; |
36 | using OpenSim.Region.Framework.Scenes; | 35 | using OpenSim.Region.Framework.Scenes; |
37 | using OpenSim.Region.ScriptEngine.Shared; | 36 | using OpenSim.Region.ScriptEngine.Shared; |
@@ -41,6 +40,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
41 | { | 40 | { |
42 | public class SensorRepeat | 41 | public class SensorRepeat |
43 | { | 42 | { |
43 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
44 | |||
44 | public AsyncCommandManager m_CmdManager; | 45 | public AsyncCommandManager m_CmdManager; |
45 | 46 | ||
46 | public SensorRepeat(AsyncCommandManager CmdManager) | 47 | public SensorRepeat(AsyncCommandManager CmdManager) |
@@ -447,11 +448,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
447 | 448 | ||
448 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => | 449 | Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => |
449 | { | 450 | { |
451 | // m_log.DebugFormat( | ||
452 | // "[SENSOR REPEAT]: Inspecting scene presence {0}, type {1} on sensor sweep for {2}, type {3}", | ||
453 | // presence.Name, presence.PresenceType, ts.name, ts.type); | ||
454 | |||
450 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) | 455 | if ((ts.type & NPC) == 0 && presence.PresenceType == PresenceType.Npc) |
451 | { | 456 | { |
452 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); | 457 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); |
453 | if (npcData == null || !npcData.SenseAsAgent) | 458 | if (npcData == null || !npcData.SenseAsAgent) |
459 | { | ||
460 | // m_log.DebugFormat( | ||
461 | // "[SENSOR REPEAT]: Discarding NPC {0} from agent sense sweep for script item id {1}", | ||
462 | // presence.Name, ts.itemID); | ||
454 | return; | 463 | return; |
464 | } | ||
455 | } | 465 | } |
456 | 466 | ||
457 | if ((ts.type & AGENT) == 0) | 467 | if ((ts.type & AGENT) == 0) |
@@ -464,7 +474,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
464 | { | 474 | { |
465 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); | 475 | INPC npcData = npcModule.GetNPC(presence.UUID, presence.Scene); |
466 | if (npcData != null && npcData.SenseAsAgent) | 476 | if (npcData != null && npcData.SenseAsAgent) |
477 | { | ||
478 | // m_log.DebugFormat( | ||
479 | // "[SENSOR REPEAT]: Discarding NPC {0} from non-agent sense sweep for script item id {1}", | ||
480 | // presence.Name, ts.itemID); | ||
467 | return; | 481 | return; |
482 | } | ||
468 | } | 483 | } |
469 | } | 484 | } |
470 | 485 | ||