diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs index c3b52df..23acc08 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs | |||
@@ -219,7 +219,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
219 | 219 | ||
220 | public bool PostScriptEvent(UUID itemID, string name, Object[] p) | 220 | public bool PostScriptEvent(UUID itemID, string name, Object[] p) |
221 | { | 221 | { |
222 | return PostScriptEvent(itemID, new EventParams(name, p, new DetectParams[0])); | 222 | Object[] lsl_p = new Object[p.Length]; |
223 | for (int i = 0; i < p.Length ; i++) | ||
224 | { | ||
225 | if (p[i] is int) | ||
226 | lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]); | ||
227 | else if (p[i] is string) | ||
228 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); | ||
229 | else if (p[i] is Vector3) | ||
230 | lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z); | ||
231 | else if (p[i] is Quaternion) | ||
232 | lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W); | ||
233 | else if (p[i] is float) | ||
234 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); | ||
235 | else | ||
236 | lsl_p[i] = p[i]; | ||
237 | } | ||
238 | |||
239 | return PostScriptEvent(itemID, new EventParams(name, lsl_p, new DetectParams[0])); | ||
223 | } | 240 | } |
224 | 241 | ||
225 | public bool PostObjectEvent(UUID itemID, string name, Object[] p) | 242 | public bool PostObjectEvent(UUID itemID, string name, Object[] p) |
@@ -228,7 +245,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
228 | if (part == null) | 245 | if (part == null) |
229 | return false; | 246 | return false; |
230 | 247 | ||
231 | return PostObjectEvent(part.LocalId, new EventParams(name, p, new DetectParams[0])); | 248 | Object[] lsl_p = new Object[p.Length]; |
249 | for (int i = 0; i < p.Length ; i++) | ||
250 | { | ||
251 | if (p[i] is int) | ||
252 | lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]); | ||
253 | else if (p[i] is string) | ||
254 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); | ||
255 | else if (p[i] is Vector3) | ||
256 | lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z); | ||
257 | else if (p[i] is Quaternion) | ||
258 | lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W); | ||
259 | else if (p[i] is float) | ||
260 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); | ||
261 | else | ||
262 | lsl_p[i] = p[i]; | ||
263 | } | ||
264 | |||
265 | return PostObjectEvent(part.LocalId, new EventParams(name, lsl_p, new DetectParams[0])); | ||
232 | } | 266 | } |
233 | 267 | ||
234 | public DetectParams GetDetectParams(UUID itemID, int number) | 268 | public DetectParams GetDetectParams(UUID itemID, int number) |