From 6ecb7c05b348800e2148f1dad43c41b8ccd44a9b Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 8 Jun 2008 22:53:52 +0000 Subject: * Fixed it so you can do a lot more llDetected* methods in many additional situations and have it work. * script Collision reporting works now in DotNetEngine --- .../ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 64 +++++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs') diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 2ac074f..688354c 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs @@ -563,6 +563,32 @@ namespace OpenSim.Region.ScriptEngine.Common return resolveName(SensedUUID); } } + else + { + ScriptManager sm; + IScript script = null; + + if ((sm = m_ScriptEngine.m_ScriptManager) != null) + { + if (sm.Scripts.ContainsKey(m_localID)) + { + if ((script = sm.GetScript(m_localID, m_itemID)) != null) + { + //System.Console.WriteLine(number + " - " + script.llDetectParams._key.Length); + if (script.llDetectParams._string != null) + { + if (script.llDetectParams._string.Length > number) + { + if (script.llDetectParams._string[number] != null) + { + return script.llDetectParams._string[number]; + } + } + } + } + } + } + } return String.Empty; } @@ -588,9 +614,13 @@ namespace OpenSim.Region.ScriptEngine.Common { if ((script = sm.GetScript(m_localID, m_itemID)) != null) { - if (script.llDetectParams._key[0]) + //System.Console.WriteLine(number + " - " + script.llDetectParams._key.Length); + if (script.llDetectParams._key.Length > number) { - return new LLUUID(script.llDetectParams._key[0]); + if (script.llDetectParams._key[number]) + { + return new LLUUID(script.llDetectParams._key[number]); + } } } } @@ -615,6 +645,36 @@ namespace OpenSim.Region.ScriptEngine.Common return SensedObject; } } + else + { + ScriptManager sm; + IScript script = null; + + if ((sm = m_ScriptEngine.m_ScriptManager) != null) + { + if (sm.Scripts.ContainsKey(m_localID)) + { + if ((script = sm.GetScript(m_localID, m_itemID)) != null) + { + //System.Console.WriteLine(number + " - " + script.llDetectParams._key.Length); + if (script.llDetectParams._key.Length > number) + { + if (script.llDetectParams._key[number]) + { + LLUUID SensedUUID = new LLUUID(script.llDetectParams._key[number]); + EntityBase SensedObject = null; + lock (World.Entities) + { + World.Entities.TryGetValue(SensedUUID, out SensedObject); + } + return SensedObject; + } + } + } + } + } + } + return null; } -- cgit v1.1