|Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials
Triggered by the start of agent clicking on task
|Number of agents detected touching during the last clock cycle
- If a prim face has Shared Media enabled and the avatar's viewer supports this feature, LSL scripts will not detect touches on that face. Touches from older clients will be detected.
- The default behavior is: If you have a multi-prim object and the root has a touch_start handler AND one or more child prims has a touch_start handler, the root prim's handler will be called when it (the root) or a child without a handler is touched. If you touch a child prim that has a touch_start handler, it will receive the event and the root prim will not.
- This behavior can be configured with llPassTouches. After configuring a prim's touch-passing behavior you can delete the script that configured the prim.
You can use numbers 0 through (
num_detected-1) with the various
llDetected... functions to get detected agent keys etc. For most purposes, it is adequate to bother only with the first detected toucher e.g. llDetectedKey(0). It is rare (but not impossible) for
num_detected to be other than 1.
key avatarKey = llDetectedKey(0);
string avatarName = llDetectedName(0);
llInstantMessage(avatarKey, "Hello " + avatarName );
- If using a touch to change states be careful about the touch event order. The best advice is not to do state changes from within touch_start. Add a touch_end handler and do the state change there. Changing state from within touch_start can cause the next occurrence of THIS touch_start code to be missed.
event void touch_start( integer num_detected );