Difference between revisions of "LlGetNumberOfPrims"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
m (I really like voids edit, I'm rearranging it so it's more obvious that it returns zero when attached.) |
(zusätzliches Beispiel zugefügt) |
||
Line 18: | Line 18: | ||
}</lsl> | }</lsl> | ||
|helpers=<lsl> | |helpers=<lsl> | ||
// determine the number of prims in linkset (by Fin's Corp.) | |||
getNumberOfPrims() | |||
{ | |||
maxLinkNumber = llGetNumberOfPrims(); | |||
// subtract seated avatars | |||
if(1 < maxLinkNumber) { | |||
while( llGetAgentSize( llGetLinkKey(maxLinkNumber) ) ) { | |||
--maxLinkNumber; | |||
} | |||
} | |||
} // END getNumberOfPrims() | |||
// Returns the number of prims in the object, ignoring seated avatars | // Returns the number of prims in the object, ignoring seated avatars | ||
integer GetNumberOfPrims() | integer GetNumberOfPrims() |
Revision as of 10:21, 10 September 2013
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: integer llGetNumberOfPrims( );275 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns an integer that is the number of prims in a link set the script is attached to.
Caveats
- The number of prims returned also includes the number of avatars sitting on the object.
Examples
<lsl>default {
state_entry() { llOwnerSay((string)llGetLinkNumber()); llOwnerSay((string)llGetNumberOfPrims()); }}</lsl>
Useful Snippets
<lsl> // determine the number of prims in linkset (by Fin's Corp.) getNumberOfPrims() {
maxLinkNumber = llGetNumberOfPrims(); // subtract seated avatars if(1 < maxLinkNumber) { while( llGetAgentSize( llGetLinkKey(maxLinkNumber) ) ) { --maxLinkNumber; } }
} // END getNumberOfPrims()
// Returns the number of prims in the object, ignoring seated avatars
integer GetNumberOfPrims()
{
if (llGetAttached()) { // llGetObjectPrimCount fails on attachments, but you can't sit on an attachment return llGetNumberOfPrims(); } return llGetObjectPrimCount(llGetKey());
}
//-- inline version of the above (llGetObjectPrimCount( llGetKey() ) + llGetNumberOfPrims() * !!llGetAttached())
// Returns the number of agents on the object integer GetNumberOfAgents() {
return llGetNumberOfPrims() - GetNumberOfPrims();
}
//-- inline version of the previous ((llGetNumberOfPrims() - llGetObjectPrimCount( llGetKey() )) * !llGetAttached()) </lsl>
See Also
Functions
• | llGetObjectPrimCount | – | Returns the number of prims in any object. | |
• | llGetLinkNumber | – | Returns the link number of the prim the script is in. |