aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs11
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneEvents.cs30
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs152
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs16
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs11
-rw-r--r--OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs10
8 files changed, 221 insertions, 19 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 21c8991..ae914b3 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -2772,6 +2772,17 @@ namespace OpenSim.Region.Environment.Scenes
2772 m_eventManager.TriggerOnScriptChangedEvent(localID, change); 2772 m_eventManager.TriggerOnScriptChangedEvent(localID, change);
2773 } 2773 }
2774 2774
2775 public void TriggerAtTargetEvent(uint localID, uint handle, LLVector3 targetpos, LLVector3 currentpos)
2776 {
2777
2778 m_eventManager.TriggerAtTargetEvent(localID, handle, targetpos, currentpos);
2779 }
2780
2781 public void TriggerNotAtTargetEvent(uint localID)
2782 {
2783 m_eventManager.TriggerNotAtTargetEvent(localID);
2784 }
2785
2775 private bool scriptDanger(SceneObjectPart part,LLVector3 pos) 2786 private bool scriptDanger(SceneObjectPart part,LLVector3 pos)
2776 { 2787 {
2777 ILandObject parcel = LandChannel.getLandObject(pos.X, pos.Y); 2788 ILandObject parcel = LandChannel.getLandObject(pos.X, pos.Y);
diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs
index c9c0ad6..74554c3 100644
--- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs
@@ -132,9 +132,17 @@ namespace OpenSim.Region.Environment.Scenes
132 public event ClientClosed OnClientClosed; 132 public event ClientClosed OnClientClosed;
133 133
134 public delegate void ScriptChangedEvent(uint localID, uint change); 134 public delegate void ScriptChangedEvent(uint localID, uint change);
135 135
136 public event ScriptChangedEvent OnScriptChangedEvent; 136 public event ScriptChangedEvent OnScriptChangedEvent;
137 137
138 public delegate void ScriptAtTargetEvent(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos);
139
140 public event ScriptAtTargetEvent OnScriptAtTargetEvent;
141
142 public delegate void ScriptNotAtTargetEvent(uint localID);
143
144 public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent;
145
138 public event OnNewPresenceDelegate OnMakeChildAgent; 146 public event OnNewPresenceDelegate OnMakeChildAgent;
139 147
140 public delegate void NewInventoryItemUploadComplete(LLUUID avatarID, LLUUID assetID, string name, int userlevel); 148 public delegate void NewInventoryItemUploadComplete(LLUUID avatarID, LLUUID assetID, string name, int userlevel);
@@ -224,6 +232,8 @@ namespace OpenSim.Region.Environment.Scenes
224 /* Designated Event Deletage Instances */ 232 /* Designated Event Deletage Instances */
225 233
226 private ScriptChangedEvent handlerScriptChangedEvent = null; //OnScriptChangedEvent; 234 private ScriptChangedEvent handlerScriptChangedEvent = null; //OnScriptChangedEvent;
235 private ScriptAtTargetEvent handlerScriptAtTargetEvent = null;
236 private ScriptNotAtTargetEvent handlerScriptNotAtTargetEvent = null;
227 private ClientMovement handlerClientMovement = null; //OnClientMovement; 237 private ClientMovement handlerClientMovement = null; //OnClientMovement;
228 private OnPermissionErrorDelegate handlerPermissionError = null; //OnPermissionError; 238 private OnPermissionErrorDelegate handlerPermissionError = null; //OnPermissionError;
229 private OnPluginConsoleDelegate handlerPluginConsole = null; //OnPluginConsole; 239 private OnPluginConsoleDelegate handlerPluginConsole = null; //OnPluginConsole;
@@ -534,5 +544,23 @@ namespace OpenSim.Region.Environment.Scenes
534 handlerValidateLandBuy(sender, e); 544 handlerValidateLandBuy(sender, e);
535 } 545 }
536 } 546 }
547
548 public void TriggerAtTargetEvent(uint localID, uint handle, LLVector3 targetpos, LLVector3 currentpos)
549 {
550 handlerScriptAtTargetEvent = OnScriptAtTargetEvent;
551 if (handlerScriptAtTargetEvent != null)
552 {
553 handlerScriptAtTargetEvent(localID, handle, targetpos, currentpos);
554 }
555 }
556
557 public void TriggerNotAtTargetEvent(uint localID)
558 {
559 handlerScriptNotAtTargetEvent = OnScriptNotAtTargetEvent;
560 if (handlerScriptNotAtTargetEvent != null)
561 {
562 handlerScriptNotAtTargetEvent(localID);
563 }
564 }
537 } 565 }
538} 566}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 27639ea..bd75e6f 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Region.Environment.Scenes
54 land_collision = 2048, 54 land_collision = 2048,
55 land_collision_end = 4096, 55 land_collision_end = 4096,
56 land_collision_start = 8192, 56 land_collision_start = 8192,
57 link_message = 16384, 57 at_target = 16384,
58 listen = 32768, 58 listen = 32768,
59 money = 65536, 59 money = 65536,
60 moving_end = 131072, 60 moving_end = 131072,
@@ -72,6 +72,12 @@ namespace OpenSim.Region.Environment.Scenes
72 object_rez = 4194304 72 object_rez = 4194304
73 } 73 }
74 74
75 struct scriptPosTarget
76 {
77 public LLVector3 targetPos;
78 public float tolerance;
79 }
80
75 public delegate void PrimCountTaintedDelegate(); 81 public delegate void PrimCountTaintedDelegate();
76 82
77 public partial class SceneObjectGroup : EntityBase 83 public partial class SceneObjectGroup : EntityBase
@@ -99,6 +105,12 @@ namespace OpenSim.Region.Environment.Scenes
99 protected SceneObjectPart m_rootPart; 105 protected SceneObjectPart m_rootPart;
100 private Dictionary<LLUUID, scriptEvents> m_scriptEvents = new Dictionary<LLUUID, scriptEvents>(); 106 private Dictionary<LLUUID, scriptEvents> m_scriptEvents = new Dictionary<LLUUID, scriptEvents>();
101 107
108 private Dictionary<uint, scriptPosTarget> m_targets = new Dictionary<uint, scriptPosTarget>();
109
110 private bool m_scriptListens_atTarget = false;
111 private bool m_scriptListens_notAtTarget = false;
112
113
102 #region Properties 114 #region Properties
103 115
104 /// <summary> 116 /// <summary>
@@ -175,6 +187,8 @@ namespace OpenSim.Region.Environment.Scenes
175 string.Format("[SCENE OBJECT GROUP]: Object {0} has no root part.", m_uuid)); 187 string.Format("[SCENE OBJECT GROUP]: Object {0} has no root part.", m_uuid));
176 } 188 }
177 189
190
191
178 return m_rootPart.GroupPosition; 192 return m_rootPart.GroupPosition;
179 } 193 }
180 set 194 set
@@ -193,6 +207,7 @@ namespace OpenSim.Region.Environment.Scenes
193 part.GroupPosition = val; 207 part.GroupPosition = val;
194 } 208 }
195 } 209 }
210
196 //if (m_rootPart.PhysActor != null) 211 //if (m_rootPart.PhysActor != null)
197 //{ 212 //{
198 //m_rootPart.PhysActor.Position = 213 //m_rootPart.PhysActor.Position =
@@ -202,7 +217,7 @@ namespace OpenSim.Region.Environment.Scenes
202 //} 217 //}
203 } 218 }
204 } 219 }
205 220
206 public override uint LocalId 221 public override uint LocalId
207 { 222 {
208 get 223 get
@@ -928,6 +943,33 @@ namespace OpenSim.Region.Environment.Scenes
928 part.ObjectFlags = objectflagupdate; 943 part.ObjectFlags = objectflagupdate;
929 } 944 }
930 } 945 }
946
947 if ((m_aggregateScriptEvents & scriptEvents.at_target) != 0)
948 {
949 m_scriptListens_atTarget = true;
950 }
951 else
952 {
953 m_scriptListens_atTarget = false;
954 }
955
956 if ((m_aggregateScriptEvents & scriptEvents.not_at_target) != 0)
957 {
958 m_scriptListens_notAtTarget = true;
959 }
960 else
961 {
962 m_scriptListens_notAtTarget = false;
963 }
964
965 if (m_scriptListens_atTarget || m_scriptListens_notAtTarget)
966 {
967 }
968 else
969 {
970 lock (m_targets)
971 m_targets.Clear();
972 }
931 ScheduleGroupForFullUpdate(); 973 ScheduleGroupForFullUpdate();
932 } 974 }
933 975
@@ -1336,6 +1378,7 @@ namespace OpenSim.Region.Environment.Scenes
1336 /// </summary> 1378 /// </summary>
1337 public override void Update() 1379 public override void Update()
1338 { 1380 {
1381
1339 lock (m_parts) 1382 lock (m_parts)
1340 { 1383 {
1341 if (Util.GetDistanceTo(lastPhysGroupPos, AbsolutePosition) > 0.02) 1384 if (Util.GetDistanceTo(lastPhysGroupPos, AbsolutePosition) > 0.02)
@@ -1346,6 +1389,7 @@ namespace OpenSim.Region.Environment.Scenes
1346 } 1389 }
1347 1390
1348 lastPhysGroupPos = AbsolutePosition; 1391 lastPhysGroupPos = AbsolutePosition;
1392 checkAtTargets();
1349 } 1393 }
1350 1394
1351 if ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) 1395 if ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1)
@@ -1396,7 +1440,7 @@ namespace OpenSim.Region.Environment.Scenes
1396 public void ScheduleGroupForFullUpdate() 1440 public void ScheduleGroupForFullUpdate()
1397 { 1441 {
1398 HasGroupChanged = true; 1442 HasGroupChanged = true;
1399 1443 checkAtTargets();
1400 lock (m_parts) 1444 lock (m_parts)
1401 { 1445 {
1402 foreach (SceneObjectPart part in m_parts.Values) 1446 foreach (SceneObjectPart part in m_parts.Values)
@@ -2301,5 +2345,107 @@ namespace OpenSim.Region.Environment.Scenes
2301 2345
2302 } 2346 }
2303 } 2347 }
2348
2349 public int registerTargetWaypoint(LLVector3 target, float tolerance)
2350 {
2351 scriptPosTarget waypoint = new scriptPosTarget();
2352 waypoint.targetPos = target;
2353 waypoint.tolerance = tolerance;
2354 uint handle = m_scene.PrimIDAllocate();
2355 lock (m_targets)
2356 {
2357 m_targets.Add(handle, waypoint);
2358 }
2359 return (int)handle;
2360 }
2361 public void unregisterTargetWaypoint(int handle)
2362 {
2363 lock (m_targets)
2364 {
2365 if (m_targets.ContainsKey((uint)handle))
2366 m_targets.Remove((uint)handle);
2367 }
2368 }
2369
2370 private void checkAtTargets()
2371 {
2372 if (m_scriptListens_atTarget || m_scriptListens_notAtTarget)
2373 {
2374 if (m_targets.Count > 0)
2375 {
2376 bool at_target = false;
2377 //LLVector3 targetPos;
2378 //uint targetHandle;
2379 Dictionary<uint, scriptPosTarget> atTargets = new Dictionary<uint, scriptPosTarget>();
2380 lock (m_targets)
2381 {
2382 foreach (uint idx in m_targets.Keys)
2383 {
2384 scriptPosTarget target = m_targets[idx];
2385 if (Util.GetDistanceTo(target.targetPos, m_rootPart.GroupPosition) <= target.tolerance)
2386 {
2387 // trigger at_target
2388 if (m_scriptListens_atTarget)
2389 {
2390 // Reusing att.tolerance to hold the index of the target in the targets dictionary
2391 // to avoid deadlocking the sim.
2392 at_target = true;
2393 scriptPosTarget att = new scriptPosTarget();
2394 att.targetPos = target.targetPos;
2395 att.tolerance = (float)idx;
2396 atTargets.Add(idx, att);
2397 }
2398 }
2399 }
2400 }
2401 if (atTargets.Count > 0)
2402 {
2403 uint[] localids = new uint[0];
2404 lock (m_parts)
2405 {
2406 localids = new uint[m_parts.Count];
2407 int cntr = 0;
2408 foreach (SceneObjectPart part in m_parts.Values)
2409 {
2410 localids[cntr] = part.LocalId;
2411 cntr++;
2412 }
2413 }
2414 for (int ctr = 0; ctr < localids.Length; ctr++)
2415 {
2416 foreach (uint target in atTargets.Keys)
2417 {
2418 scriptPosTarget att = atTargets[target];
2419 // Reusing att.tolerance to hold the index of the target in the targets dictionary
2420 // to avoid deadlocking the sim.
2421 m_scene.TriggerAtTargetEvent(localids[ctr], (uint)att.tolerance, att.targetPos, m_rootPart.GroupPosition);
2422
2423
2424 }
2425 }
2426 return;
2427 }
2428 if (m_scriptListens_notAtTarget && !at_target)
2429 {
2430 //trigger not_at_target
2431 uint[] localids = new uint[0];
2432 lock (m_parts)
2433 {
2434 localids = new uint[m_parts.Count];
2435 int cntr = 0;
2436 foreach (SceneObjectPart part in m_parts.Values)
2437 {
2438 localids[cntr] = part.LocalId;
2439 cntr++;
2440 }
2441 }
2442 for (int ctr = 0; ctr < localids.Length; ctr++)
2443 {
2444 m_scene.TriggerNotAtTargetEvent(localids[ctr]);
2445 }
2446 }
2447 }
2448 }
2449 }
2304 } 2450 }
2305} \ No newline at end of file 2451} \ No newline at end of file
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 0608fa7..f345dab 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -2367,7 +2367,21 @@ namespace OpenSim.Region.Environment.Scenes
2367 m_parentGroup.SetScriptEvents(scriptID, events); 2367 m_parentGroup.SetScriptEvents(scriptID, events);
2368 } 2368 }
2369 } 2369 }
2370 2370 public int registerTargetWaypoint(LLVector3 target, float tolerance)
2371 {
2372 if (m_parentGroup != null)
2373 {
2374 return m_parentGroup.registerTargetWaypoint(target, tolerance);
2375 }
2376 return 0;
2377 }
2378 public void unregisterTargetWaypoint(int handle)
2379 {
2380 if (m_parentGroup != null)
2381 {
2382 m_parentGroup.unregisterTargetWaypoint(handle);
2383 }
2384 }
2371 protected SceneObjectPart(SerializationInfo info, StreamingContext context) 2385 protected SceneObjectPart(SerializationInfo info, StreamingContext context)
2372 { 2386 {
2373 //System.Console.WriteLine("SceneObjectPart Deserialize BGN"); 2387 //System.Console.WriteLine("SceneObjectPart Deserialize BGN");
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 35f8ee0..79b13cf 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -1181,14 +1181,14 @@ namespace OpenSim.Region.ScriptEngine.Common
1181 public int llTarget(LSL_Types.Vector3 position, double range) 1181 public int llTarget(LSL_Types.Vector3 position, double range)
1182 { 1182 {
1183 m_host.AddScriptLPS(1); 1183 m_host.AddScriptLPS(1);
1184 NotImplemented("llTarget"); 1184 return m_host.registerTargetWaypoint(new LLVector3((float)position.x, (float)position.y, (float)position.z), (float)range);
1185 return 0; 1185
1186 } 1186 }
1187 1187
1188 public void llTargetRemove(int number) 1188 public void llTargetRemove(int number)
1189 { 1189 {
1190 m_host.AddScriptLPS(1); 1190 m_host.AddScriptLPS(1);
1191 NotImplemented("llTargetRemove"); 1191 m_host.unregisterTargetWaypoint(number);
1192 } 1192 }
1193 1193
1194 public int llRotTarget(LSL_Types.Quaternion rot, double error) 1194 public int llRotTarget(LSL_Types.Quaternion rot, double error)
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
index d3e9948..ce9f445 100644
--- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
+++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
@@ -70,6 +70,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
70 myScriptEngine.World.EventManager.OnRezScript += OnRezScript; 70 myScriptEngine.World.EventManager.OnRezScript += OnRezScript;
71 myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript; 71 myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript;
72 myScriptEngine.World.EventManager.OnScriptChangedEvent += changed; 72 myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
73 myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
74 myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
75
73 // TODO: HOOK ALL EVENTS UP TO SERVER! 76 // TODO: HOOK ALL EVENTS UP TO SERVER!
74 IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>(); 77 IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>();
75 if(money != null) 78 if(money != null)
@@ -222,14 +225,14 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
222 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "email", EventQueueManager.llDetectNull); 225 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "email", EventQueueManager.llDetectNull);
223 } 226 }
224 227
225 public void at_target(uint localID, LLUUID itemID) 228 public void at_target(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos)
226 { 229 {
227 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "at_target", EventQueueManager.llDetectNull); 230 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "at_target", EventQueueManager.llDetectNull, new object[] { (int)handle, new LSL_Types.Vector3(targetpos.X,targetpos.Y,targetpos.Z), new LSL_Types.Vector3(atpos.X,atpos.Y,atpos.Z) });
228 } 231 }
229 232
230 public void not_at_target(uint localID, LLUUID itemID) 233 public void not_at_target(uint localID)
231 { 234 {
232 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "not_at_target", EventQueueManager.llDetectNull); 235 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "not_at_target", EventQueueManager.llDetectNull);
233 } 236 }
234 237
235 public void at_rot_target(uint localID, LLUUID itemID) 238 public void at_rot_target(uint localID, LLUUID itemID)
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs b/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs
index ea17e20..1c85646 100644
--- a/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs
+++ b/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs
@@ -57,8 +57,8 @@ namespace OpenSim.Region.ScriptEngine.Common
57 void control(uint localID, LLUUID itemID); 57 void control(uint localID, LLUUID itemID);
58 void money(uint LocalID, LLUUID agentID, int amount); 58 void money(uint LocalID, LLUUID agentID, int amount);
59 void email(uint localID, LLUUID itemID); 59 void email(uint localID, LLUUID itemID);
60 void at_target(uint localID, LLUUID itemID); 60 void at_target(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos);
61 void not_at_target(uint localID, LLUUID itemID); 61 void not_at_target(uint localID);
62 void at_rot_target(uint localID, LLUUID itemID); 62 void at_rot_target(uint localID, LLUUID itemID);
63 void not_at_rot_target(uint localID, LLUUID itemID); 63 void not_at_rot_target(uint localID, LLUUID itemID);
64 void run_time_permissions(uint localID, LLUUID itemID); 64 void run_time_permissions(uint localID, LLUUID itemID);
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
index 50bc892..a766ea2 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
@@ -419,8 +419,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
419 // case "at_rot_target": 419 // case "at_rot_target":
420 //return (long)scriptEvents.at_rot_target; 420 //return (long)scriptEvents.at_rot_target;
421 //break; 421 //break;
422 //case "at_target": 422 case "at_target":
423 //return (long)scriptEvents.at_target; 423 return scriptEvents.at_target;
424 //break; 424 //break;
425 //case "changed": 425 //case "changed":
426 //return (long)scriptEvents.changed; 426 //return (long)scriptEvents.changed;
@@ -455,8 +455,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
455 case "land_collision_start": 455 case "land_collision_start":
456 return scriptEvents.land_collision_start; 456 return scriptEvents.land_collision_start;
457 // break; 457 // break;
458 case "link_message": 458 //case "link_message":
459 return scriptEvents.link_message; 459 //return scriptEvents.link_message;
460 // break; 460 // break;
461 case "listen": 461 case "listen":
462 return scriptEvents.listen; 462 return scriptEvents.listen;
@@ -534,7 +534,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
534 land_collision = 2048, 534 land_collision = 2048,
535 land_collision_end = 4096, 535 land_collision_end = 4096,
536 land_collision_start = 8192, 536 land_collision_start = 8192,
537 link_message = 16384, 537 at_target = 16384,
538 listen = 32768, 538 listen = 32768,
539 money = 65536, 539 money = 65536,
540 moving_end = 131072, 540 moving_end = 131072,