Difference between revisions of "LlGetLinkNumber"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
m (Added the sentence that begins "Links are numbered in the reverse order ... This was taken from the "old" lsl wiki, which I assume to be in the public domain.) |
Lou Netizen (talk | contribs) m (Added a note about using double negation to get a link number that can be used with an unlinked prim or the root of a linkset.) |
||
Line 15: | Line 15: | ||
llOwnerSay((string) llGetLinkNumber()); | llOwnerSay((string) llGetLinkNumber()); | ||
llOwnerSay((string) llGetNumberOfPrims()); | llOwnerSay((string) llGetNumberOfPrims()); | ||
} | |||
}</source> | |||
A non-obvious feature is using double-negation to obtain a link number zero (for an unlinked prim) or one (for the root of a linkset). Unlike constants like [[LINK_ROOT]], this number can be used directly with functions like [[llGetLinkPrimitiveParams]] without first determining whether a prim is part of a linkset: | |||
<source lang="lsl2">default | |||
{ | |||
state_entry() | |||
{ | |||
integer rootLinkNum = !!llGetLinkNumber(); | |||
// returns 0 in an unlinked prim, 1 in a linkset | |||
integer isFullBright = llList2Integer(llGetLinkPrimitiveParams(rootLinkNum,[PRIM_FULLBRIGHT, ALL_SIDES]),0); | |||
// TRUE if all sides of an unlinked prim or the root of a linkset are set to full bright, FALSE otherwise | |||
} | } | ||
}</source> | }</source> |
Latest revision as of 15:57, 25 August 2018
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: integer llGetLinkNumber( );139 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns an integer that is the link number of the prim containing the script.
0
means the prim is not linked, 1
the prim is the root, 2
the prim is the first child, etc. Links are numbered in the reverse order in which they were linked -- if you select a box, a sphere and a cylinder in that order, then link them, the cylinder is 1, the sphere is 2 and the box is 3. The last selected prim has the lowest link number.
Caveats
- By design may equal llGetNumberOfPrims, e.g., when prim is last, object contains multiple prims, and no sitting avatars
Examples
default
{
state_entry()
{
llOwnerSay((string) llGetLinkNumber());
llOwnerSay((string) llGetNumberOfPrims());
}
}
A non-obvious feature is using double-negation to obtain a link number zero (for an unlinked prim) or one (for the root of a linkset). Unlike constants like LINK_ROOT, this number can be used directly with functions like llGetLinkPrimitiveParams without first determining whether a prim is part of a linkset:
default
{
state_entry()
{
integer rootLinkNum = !!llGetLinkNumber();
// returns 0 in an unlinked prim, 1 in a linkset
integer isFullBright = llList2Integer(llGetLinkPrimitiveParams(rootLinkNum,[PRIM_FULLBRIGHT, ALL_SIDES]),0);
// TRUE if all sides of an unlinked prim or the root of a linkset are set to full bright, FALSE otherwise
}
}
See Also
Functions
• | llGetKey | |||
• | llGetNumberOfPrims |