Difference between revisions of "LlDetectedGroup"

From Second Life Wiki
Jump to navigation Jump to search
m (Replaced <source> with <syntaxhighlight>)
 
(19 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{LSL_Function/negative_index|false|number}}{{LSL_Function
{{LSL_Function
|inject-2={{LSL Function/group}}{{LSL_Function/detected|number|group|error=[[FALSE]]}}
|func_id=39|func_sleep=0.0|func_energy=10.0
|func_id=39|func_sleep=0.0|func_energy=10.0
|sort=DetectedGroup|func=llDetectedGroup
|sort=DetectedGroup|func=llDetectedGroup
|return_type=integer
|return_type=integer
|p1_type=integer|p1_name=number
|p1_type=integer|p1_name=number
|func_footnote=Returns {{LSLG|FALSE}} if '''number''' is out of range or if the {{LSLGC|Detected|detected}} event does not support this attribute.
|func_footnote=Returns [[FALSE]] if {{LSLP|number}} is out of range.
|func_desc
|func_desc
|return_text=that is a {{HoverText|boolean|TRUE or FALSE}} representing if the {{LSLGC|Detected|detected}} object or avatar is in the same group that the prim containing the script is set to.
|return_text=that is [[TRUE]] if the detected [[object]] or [[agent]] has the same ''active'' [[group]] as the [[prim]] containing the script. Otherwise [[FALSE]] is returned.
|spec
|spec
|caveats
|caveats=
* There is no way to detect if the prim is in the same group as one of the agent's inactive groups.
|constants
|constants
|examples=<pre>//Gives inventory only to agents with the same active group
|examples=<syntaxhighlight lang="lsl2">//Gives inventory only to agents with the same active group
default
default
{
{
     touch_start(integer total_number)
     touch_start(integer total_number)
     {
     {
         if(llDetectedGroup(0))//same as llSameGroup(llDetectedKey(0)) (assuming the detected is in the sim)
         if (llDetectedGroup(0) )     //same as llSameGroup(llDetectedKey(0) ) (with llSameGroup, detected must be in the sim)
             llGiveInventory(llGetInventoryName(INVENTORY_OBJECT,0),llDetectedKey(0));
             llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT, 0) );
         else
         else
             llSay(0, "Wrong active group!");
             llSay(0, "Wrong active group!");
     }
     }
}
}</syntaxhighlight>
</pre>
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llSameGroup]]|}}
{{LSL DefineRow||[[llSameGroup]]|}}
|also_events
|also_events
|also_articles={{LSL DefineRow||{{LSLGC|Detected}}|}}
|also_articles
|notes
|notes
|permission
|permission
|cat1
|cat1=Group
|haiku={{Haiku|Who are you stranger?|Kinsman, or another clan?|Hold! Be recognized!}}
|cat2
|cat2
|cat3
|cat3
|cat4
|cat4
}}
}}
{{LSLC|Detected|group}}

Latest revision as of 12:25, 1 February 2023

Summary

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

Returns an integer that is TRUE if the detected object or agent has the same active group as the prim containing the script. Otherwise FALSE is returned.

• integer number Index of detection information

number does not support negative indexes. Returns FALSE if number is out of range.

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 FALSE 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]
  • There is no way to detect if the prim is in the same group as one of the agent's inactive groups.

Examples

//Gives inventory only to agents with the same active group
default
{
    touch_start(integer total_number)
    {
        if (llDetectedGroup(0) )     //same as llSameGroup(llDetectedKey(0) ) (with llSameGroup, detected must be in the sim)
            llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT, 0) );
        else
            llSay(0, "Wrong active group!");
    }
}

Notes

Child Prims

It is possible for the group of a child prim to differ from that of the root prim. To build such an object it must first be unlinked, the groups set, and then relinked. Rezzing an object resets the group of the object to that of the group that the user currently has activated. Changing the group of an object changes the group for the entire object. This may only be an artifact or manifestation of VWR-5044.

See Also

Functions

•  llSameGroup

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

Haiku

Who are you stranger?
Kinsman, or another clan?
Hold! Be recognized!