LlDetectedPos
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> |