Jump to content

LlDetectedPos

From OSgrid Wiki
Revision as of 17:48, 30 December 2017 by Osgridadmin (talk | contribs) (Created page with "==Function: vector llDetectedPos( integer number );== Returns a vector that is the position of detected object number. <br> • integer number – Index of detection inform...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Function: vector llDetectedPos( integer number );

Returns a vector that is the position of detected object number.
• integer number – Index of detection information

number does not support negative indexes.
Returns <0.0, 0.0, 0.0> if number is not valid sensed object.

Specification
llDetected* functions can be called anywhere but will only return non-default values if called from within Detection events and functions called by Detection events.
Caveats
• Events that enable the llDetected* functions always return at least one detected item.
-• Detection events are not raised if there is nothing detected (with the slight exception of no_sensor but it doesn't enable llDetected* functions).
-• The event detection count parameter value is initially never less than 1.

Examples

<source lang="lsl">

//--// get sim position of Avatars in "say" range //--// //-- @@ = Contains code optimizations, see the following page for details //-- https://wiki.secondlife.com/wiki/User:Void_Singer/Optimizations

default {

 state_entry()
 {
   llOwnerSay( "Touch me to get the positions of avatars in 'Say' range" );
 }

 touch_start( integer vIntTouchCount )
 {
    //-- trigger the sensor for avatars within 20m
   llSensor( "", "", AGENT, 20, PI );
 }

 sensor( integer vIntFound )
 {
   integer vIntCounter = 0;
    //-- loop through all avatars found
   do
   {
     llOwnerSay( llDetectedName( vIntCounter )
                 + " @ "
                  //-- the next line gets the position of each found avatar
                 + (string)llDetectedPos( vIntCounter ) );
   }while (++vIntCounter < vIntFound); //-- @@
 }

  //-- sensor does not detect owner if it's attached
 no_sensor()
 {
   llOwnerSay( "I couldn't find anybody" );
 }

} </source>