Collision start

From Second Life Wiki
Revision as of 16:19, 30 December 2024 by Coffee Pancake (talk | contribs) (fixed tabs in code example)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Event: collision_start( integer num_detected ){ ; }

Triggered when task starts colliding with another task

• integer num_detected

Caveats

  • Will not detect collisions with ground. Use land_collision_start instead.
  • Phantom objects can never receive trigger collision events.
  • llVolumeDetect(TRUE) objects get trigger collision_start and collision_end but not collision() events.
  • A collision with a hovering avatar does not trigger collisions, unless the avatar turns or moves.
  • Only a physical object will get collision events from colliding with a non-physical object.


Examples

<syntaxhighlight lang="lsl2">default {

   collision_start(integer num)
   {
       llSay(0,"No pushing.");
   }

}</syntaxhighlight> <syntaxhighlight lang="lsl2"> list DetectedAvatars = []; default {

   state_entry()
   {
       llVolumeDetect(TRUE); // Enable detection of people colliding with object....
   }
   collision_start(integer detected)
   {
       integer index = llListFindList(DetectedAvatars, [llDetectedKey(0)]);
       if (index == -1)
       {
           llInstantMessage(llDetectedKey(0), " Welcome to the Community");
           DetectedAvatars = llListInsertList(DetectedAvatars, [llDetectedKey(0)], -1);
           if (llGetListLength(DetectedAvatars) == 2)
           {
               DetectedAvatars = llDeleteSubList(DetectedAvatars, 1, 2);
           }
       }
   }

} </syntaxhighlight>

See Also

Deep Notes

Issues

All Issues

~ Search JIRA for related Issues
   Add enumeration to llPassCollisions() to provide PASS_ALWAYS, PASS_IF_NOT_HANDLED, and PASS_NEVER as explicit options.
(Was: Collisions passed to parent REGARDLESS llPassCollisions(FALSE) in child)

Signature

event void collision_start( integer num_detected );