Difference between revisions of "LlDetectedVel"

From Second Life Wiki
Jump to navigation Jump to search
m (Make example match the description)
 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{Issues/SVC-5821}}{{LSL_Function/detected|number|vel|error=[[ZERO_VECTOR|<0.0, 0.0, 0.0>]]}}
|func_id=36|func_sleep=0.0|func_energy=10.0
|func_id=36|func_sleep=0.0|func_energy=10.0
|sort=DetectedVel
|sort=DetectedVel|func=llDetectedVel|return_type=vector
|func=llDetectedVel|return_type=vector|p1_type=integer|p1_name=number
|p1_type=integer|p1_name=number
|func_footnote=Returns {{LSLG|ZERO_VECTOR|<0.0, 0.0, 0.0>}} if '''number''' is not valid sensed object.
|func_footnote=Returns {{LSLG|ZERO_VECTOR|<0.0, 0.0, 0.0>}} if {{LSLP|number}} is not valid sensed object or avatar.
|func_desc
|func_desc
|return_text=that is the velocity of {{LSLGC|Detected|detected}} object '''number'''.
|Return_text=velocity of {{LSLGC|Detected|detected}} object or avatar {{LSLP|number}}.
|spec
|spec
|caveats
|caveats
|constants
|constants
|examples
|examples=
<source lang="lsl2">
//Tells the name and velocity of all near-by avatars.
default
{
    state_entry()
    {
        // Scan once for avatars within a 96 metre radius sphere
        llSensor("", "", AGENT, 96, PI);
    }
    sensor(integer num)
    {
        // num will initially be 1 or more. When num is 1, the index of the detected avatar will be zero     
        while(num--)
        {
            llOwnerSay(llDetectedName(num) + " is moving at " + (string)llVecMag(llDetectedVel(num)) + " m/s.");
        }
    }
}
</source>
|helpers
|helpers
|also_functions
|also_functions
|also_events
|also_events
|also_articles=* {{LSLGC|Detected}}
|also_articles
|notes
|notes
|permission
|negative_index=false
}}
}}
{{LSLC|Stub|DetectedVel}}
{{LSLC|Detected|DetectedVel}}

Latest revision as of 08:46, 18 January 2016

Summary

Function: vector llDetectedVel( integer number );
0.0 Forced Delay
10.0 Energy

Returns the vector velocity of detected object or avatar 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 or avatar.

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 this function returns <0.0, 0.0, 0.0> and 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]

Examples

//Tells the name and velocity of all near-by avatars.
default 
{
    state_entry() 
    {
        // Scan once for avatars within a 96 metre radius sphere
        llSensor("", "", AGENT, 96, PI);
    }
    sensor(integer num) 
    {
        // num will initially be 1 or more. When num is 1, the index of the detected avatar will be zero       
        while(num--) 
        {
            llOwnerSay(llDetectedName(num) + " is moving at " + (string)llVecMag(llDetectedVel(num)) + " m/s.");
        }
    }
}

See Also

Articles

•  Detected

Deep Notes

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 llDetectedVel( integer number );