Difference between revisions of "LlVolumeDetect"

From Second Life Wiki
Jump to navigation Jump to search
(Update on collisions between VolumeDetect enabled objects and avatars, collisions being one way.)
m
Line 10: Line 10:
|caveats=
|caveats=
*VolumeDetect objects will fall through the ground, whereas Phantom objects will not.
*VolumeDetect objects will fall through the ground, whereas Phantom objects will not.
*Does not work on attachments.
*VolumeDetect cannot be enabled on attachments{{Footnote|Attachments aren't included in the avatar bounding box, so it's moot}}.
*Only detects physical objects and avatars.
*Only detects physical objects and avatars.
*Can only be applied to the root prim.
*Can only be applied to the root prim (which will make the entire object VolumeDetect).
*When moving via [[llSetPos]]() by a loop of stages, collision events will not trigger.
*When moving via [[llSetPos]]() by a loop of stages, collision events will not trigger.
*Avatars colliding with objects with VolumeDetect enabled will generate collision_start and collision_end events in the object, but no collision events will be generated for the avatar or passed to any attachments the avatar is wearing.
*Attachments will not register collision events when the avatar collides with a VolumeDetect object.
|constants
|constants
|examples=<lsl>default
|examples=<lsl>default

Revision as of 12:04, 11 September 2009

Summary

Function: llVolumeDetect( integer detect );
0.0 Forced Delay
10.0 Energy

If detect is TRUE, VolumeDetect is enabled, physical object and avatars can pass through the object. This works much like Phantom, but unlike Phantom, VolumeDetect objects trigger collision_start and collision_end events when interpenetrating. Collision events will trigger in any script in the object.

• integer detect TRUE enables, FALSE disables

Caveats

  • llDetectedLinkNumber will return 0 in collision_start and collision_end events of VolumeDetect objects (SVC-2996).
  • VolumeDetect objects will fall through the ground, whereas Phantom objects will not.
  • VolumeDetect cannot be enabled on attachments[1].
  • Only detects physical objects and avatars.
  • Can only be applied to the root prim (which will make the entire object VolumeDetect).
  • When moving via llSetPos() by a loop of stages, collision events will not trigger.
  • Attachments will not register collision events when the avatar collides with a VolumeDetect object.

Examples

<lsl>default {

   state_entry()
   {
       llVolumeDetect(TRUE); // Starts llVolumeDetect
   }
   collision_start(integer total_number)
   {
       llSay(0, "Detected!"); // Tells you when something penetrates the prim
   }
}</lsl>

See Also

Events

•  collision_start
•  collision
•  collision_end

Functions

•  llPassCollisions

Deep Notes

Footnotes

  1. ^ Attachments aren't included in the avatar bounding box, so it's moot

Signature

function void llVolumeDetect( integer detect );