llGetNumberOfPrims

From Second Life Wiki
Revision as of 19:53, 10 September 2013 by Strife Onizuka (talk | contribs) (Duplicates my GetNumberOfPrims from Febuary 2006 posted on the LSL Wiki, removing the "if" updated it to the August 2007 revision that was posted here.)
Jump to navigation Jump to search

Summary

Function: integer llGetNumberOfPrims( );

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.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>default {

   state_entry()
   {
       llOwnerSay((string)llGetLinkNumber());
       llOwnerSay((string)llGetNumberOfPrims());
   }
}</lsl>

Useful Snippets

<lsl> // 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> This method uses a loop, it is less efficient and only included for completeness. It's more efficient to ask the physics engine (via llGetObjectPrimCount) how many prims are in the object. <lsl> // determine the number of prims in linkset integer getNumberOfPrims() {

   integer maxLinkNumber = llGetNumberOfPrims();
   // subtract seated avatars
   while( llGetAgentSize( llGetLinkKey(maxLinkNumber) ) ) {
       --maxLinkNumber;
   }
   return maxLinkNumber;

} // END getNumberOfPrims() </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.

Deep Notes

Search JIRA for related Issues

Signature

function integer llGetNumberOfPrims();