LlDetectedGrab
Looking for the current API? Open the llDetectedGrab reference →
Function notes
Returns <0.0, 0.0, 0.0> if
number is out of range or if called from an event other than the touch event.Return value notes
Specification
- If the object is physical, grabs are detected if the avatar has permission to move the object and the object is not locked.
- If the object is nonphysical, grabs from all avatars are detected.
Caveats
- When called in HUD attachments, values returned are affected by the wearer's position and rotation.
Examples
default
{
state_entry()
{
llSetStatus(PRIM_PHYSICS,TRUE);//This allows the object to be "grabbed" and dragged
}
touch(integer num_detected)
{
llSay(0,(string)llDetectedGrab(0));//Be prepared for a great amount of chatted info.
//The faster you move the mouse while grabbing the object the greater the offset becomes.
//This is not due to the speed but the reaction time of the turn around of the physical prim,
//thus an offset (distance from grab to prim center) is created and measured by this function.
}
}/******
Simple llDetectedGrab illustration, rez a prim and add this script.
The prim will become a cone that follows mouse grabs.
Click and hold the mouse button down on the object, then:
- Drag left and right to move parallel to the camera focal plane.
- Drag up and down to move to and from the camera.
- Hold down Ctrl, then drag up and down to move vertically.
******/
default
{
state_entry()
{
llMinEventDelay(0.25);
llSetStatus(STATUS_PHYSICS, FALSE); // make the object static for simplicity
llSetPrimitiveParams([
PRIM_SIZE, <0.5, 0.5, 0.5>,
PRIM_TYPE, PRIM_TYPE_CYLINDER, PRIM_HOLE_DEFAULT, <0.0, 1.0, 0.0>,
0.0, ZERO_VECTOR, ZERO_VECTOR, ZERO_VECTOR
]); // a cone that can follow the mouse pointer
}
touch(integer total_number)
{
llLookAt(llGetPos() + llDetectedGrab(0), 1.0, 1.0);
}
}Notes
llDetectedGrab() is not blocked by STATUS_BLOCK_GRAB or STATUS_BLOCK_GRAB_OBJECT.
See also: functions
See also: events
See also: articles
Shared wiki helpers
The original page also injects shared parameter notes, caveats or issue information through these helpers. Their conditional MediaWiki logic is not reproduced here; inspect the preserved helper source for additional material.
Template:LSL Function/detected
Original shared helper source (conditional wiki logic is not evaluated)
{{LSL Injection Test}}{{#if:
{{#vardefine:p_{{{1|none}}}_desc|Index of detection information}}
{{#vardefine:p_{{{1|none}}}_hover|Index of detection information}}
{{LSL_Function/negative_index|false|{{{1|none}}}|oob-return={{{error|}}}}}
{{#vardefine:also_articles|{{#var:also_articles}}
{{LSL DefineRow||{{LSLGC|Detected}}|}}}}
{{#vardefine:spec|{{#if:{{{simple|}}}|{{#var:spec}}|{{#if:{{#var:spec}}|{{#var:spec}}{{PBR}}}}
{{LSLGC|Detected|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.}}}}
{{#if:{{{simple|}}}||{{#vardefine:caveats|{{#var:caveats}}
*Events that enable the {{LSLGC|Detected|llDetected*}} functions always return at least one detected item.
**Detection events are not raised if there is nothing detected.{{Footnote|The exception is [[no_sensor]] but it doesn't enable {{LSLGC|Detected|llDetected*}} functions.|The exception is no_sensor but it doesn't enable llDetected* functions.}}
**The detection event's items detected parameter is initially never less than 1.{{Footnote|Like all event parameters, the user can overwrite the initial value.}}}}}}
<includeonly>
{{#ifeq:{{#var:article-type}}|event||{{#if:{{#pos:{{#var:moded}}|r}}{{#pos:{{#var:moded}}|u}}||{{#vardefine:hidden-text|{{#var:hidden-text}}
{{LSLC|Detected|{{{2}}}|{{#var:lang}}}}
}}}}}}
</includeonly>
}}<includeonly></includeonly><noinclude>
{| {{Prettytable}}
|-{{Hl2}}
! #var
! value
|-
{{VarPair|header_footnote}}
|-
{{VarPair|constants_nb}}
|-
{{VarPairTable|also_articles}}
|-
{{VarPair|p_{{{1|none}}}_desc}}
|-
{{VarPair|p_{{{1|none}}}_hover}}
|-
{{VarPair|spec}}
|-
{{VarPair|caveats}}
|}
</noinclude>Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.