Difference between revisions of "LlDetectedPos"

From Second Life Wiki
Jump to navigation Jump to search
m (optimized my previous example anf added link to descriptions thereof)
Line 1: Line 1:
{{LSL_Function/negative_index|false|number}}{{LSL_Function
{{LSL_Function/detected|number|pos}}{{LSL_Function
|func_id=35|func_sleep=0.0|func_energy=10.0
|func_id=35|func_sleep=0.0|func_energy=10.0
|sort=DetectedPos|func=llDetectedPos
|sort=DetectedPos|func=llDetectedPos
Line 53: Line 53:
|also_functions
|also_functions
|also_events
|also_events
|also_articles={{LSL DefineRow||{{LSLGC|Detected}}|}}
|also_articles
|notes
|notes
|permission
|permission
Line 60: Line 60:
|cat3
|cat3
|cat4
|cat4
}}{{LSLC|Detected|pos}}
}}

Revision as of 11:51, 14 November 2007

Summary

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 only work if called from within Detection events (collision, collision_start, collision_end, sensor, touch, touch_start, touch_end) or in functions called by Detection events. They will fail silently and return unusable values if called during other events.

Caveats

  • If number is out of bounds the script continues to execute without an error message.
  • Events that enable the llDetected* functions always return at least one detected item.
    • Detection events are not raised if there is nothing detected.[1]
    • The detection event's items detected parameter is initially never less than 1.[2]
All Issues ~ Search JIRA for related Bugs

Examples

//--// get sim position of Avatars in "say" range //--//

//-- @@ = Contains code optimizations, see the following page for details
//-- wiki.secondlife.com/wiki/User_talk:Void_Singer#Coding_Practices_Part_2_.28optimizations.29

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" );
  }
}

See Also

Articles

•  Detected

Deep Notes

Search JIRA for related Issues

Footnotes

  1. ^ The exception is no_sensor but it doesn't enable llDetected* functions.
  2. ^ Like all event parameters, the user can overwrite the initial value.

Signature

function vector llDetectedPos( integer number );