Difference between revisions of "LlDetectedOwner"

From Second Life Wiki
Jump to: navigation, search
m (English. Promote function in question within the example)
 
(18 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{LSL_Function/negative_index|false|number}}{{LSL_Function
+
{{LSL_Function
 +
|inject-2={{LSL_Function/detected|number|owner}}
 
|func_id=33|func_sleep=0.0|func_energy=10.0
 
|func_id=33|func_sleep=0.0|func_energy=10.0
 
|sort=DetectedOwner
 
|sort=DetectedOwner
 
|func=llDetectedOwner|return_type=key|p1_type=integer|p1_name=number
 
|func=llDetectedOwner|return_type=key|p1_type=integer|p1_name=number
|func_footnote=Returns an {{HoverText|empty key|""}} if '''number''' is not valid sensed object
+
|func_footnote=Returns an {{HoverText|empty key|{{String}}}} if {{LSLP|number}} does not relate to a valid sensed object
 
|func_desc
 
|func_desc
|return_text=that is the UUID of the owner of the object.
+
|Return_text=([[UUID]]) of the {{LSLGC|Owner|owner}} of the [[object]].
 
|spec
 
|spec
 
|caveats
 
|caveats
 
|constants
 
|constants
 
|examples=
 
|examples=
<pre>
+
<source lang="lsl2">
list MAIN_MENU = ["1", "2"];
+
 
+
 
default
 
default
 
{
 
{
     state_entry()
+
     collision_start(integer num_detected)
 
     {
 
     {
         llDialog(llDetectedOwner(0), "configure switch", MAIN_MENU, 42);
+
         string output =
 +
            "\nkey of colliding object's owner ... or the colliding avatar: " + (string)llDetectedOwner(0)
 +
            + "\nkey of this object's owner: " + (string)llGetOwner()
 +
            + "\nname of colliding object/avatar: " + llDetectedName(0)
 +
            + "\nkey of colliding object/avatar: " + (string)llDetectedKey(0)
 +
            + "\nkey of the prim containing this script: " + (string)llGetKey()
 +
            + "\nkey of this object's root prim: " + (string)llGetLinkKey(LINK_ROOT);       
 +
        llSay(0, output);
 
     }
 
     }
 
}
 
}
</pre>
+
</source>
 
|helpers
 
|helpers
 
|also_functions=
 
|also_functions=
{{LSL DefineRow||[[llGetOwnerKey]]|llGetOwnerKey() is the same as llDetectedOwner(0)}}
+
{{LSL DefineRow||[[llGetOwnerKey]]|llGetOwnerKey(llDetectedKey(number)) is the same as llDetectedOwner(number) only if the detected object is in the same region.}}
 
{{LSL DefineRow||[[llGetOwner]]|}}
 
{{LSL DefineRow||[[llGetOwner]]|}}
 
|also_events
 
|also_events
|also_articles={{LSL DefineRow||{{LSLGC|Detected}}|}}
+
|also_articles
|notes
+
|notes=If the [[llDetectedType|detected type]] is an [[AGENT_BY_LEGACY_NAME|avatar]] the key of that avatar is returned. Avatars are owned by themselves. [[llGetOwnerKey]] works the same way with regards to avatar UUIDs.
 
|cat1=Owner
 
|cat1=Owner
 
|cat2
 
|cat2
Line 33: Line 39:
 
|cat4
 
|cat4
 
}}
 
}}
{{LSLC|Detected|owner}}
 

Latest revision as of 04:45, 18 January 2016

Summary

Function: key llDetectedOwner( integer number );

Returns the key (UUID) of the owner of the object.

• integer number Index of detection information

number does not support negative indexes. Returns an empty key if number does not relate to a 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

default
{
    collision_start(integer num_detected)
    {
        string output =
            "\nkey of colliding object's owner ... or the colliding avatar: " + (string)llDetectedOwner(0)
            + "\nkey of this object's owner: " + (string)llGetOwner()
            + "\nname of colliding object/avatar: " + llDetectedName(0)
            + "\nkey of colliding object/avatar: " + (string)llDetectedKey(0)
            + "\nkey of the prim containing this script: " + (string)llGetKey()
            + "\nkey of this object's root prim: " + (string)llGetLinkKey(LINK_ROOT);        
        llSay(0, output);
    }
}

Notes

If the detected type is an avatar the key of that avatar is returned. Avatars are owned by themselves. llGetOwnerKey works the same way with regards to avatar UUIDs.

See Also

Functions

•  llGetOwnerKey llGetOwnerKey(llDetectedKey(number)) is the same as llDetectedOwner(number) only if the detected object is in the same region.
•  llGetOwner

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