Difference between revisions of "LlGetObjectPrimCount"

From Second Life Wiki
Jump to: navigation, search
m
Line 14: Line 14:
 
|constants
 
|constants
 
|examples=
 
|examples=
<lsl>default{
+
<<lsl>default
  touch_start( integer vIntTouched ){
+
{
     integer prims = llGetObjectPrimCount( llGetKey() );
+
    touch_start(integer num)
    if( !prims ){ //llGetObjectPrimCount returns zero for attachments.
+
     {
      prims = llGetNumberOfPrims();//avatars can't sit on attachments so this is ok.
+
        integer prims = llGetObjectPrimCount(llGetKey());
 +
        if (prims == 0)
 +
        {
 +
            // llGetObjectPrimCount returns zero for attachments.
 +
            prims = llGetNumberOfPrims();
 +
            // Avatars can't sit on attachments so this is ok.
 +
        }
 +
        llOwnerSay("This object has "
 +
                    + (string)prims
 +
                    + " prims and "
 +
                    + (string)(llGetNumberOfPrims() - prims)
 +
                    + " avatars.");
 
     }
 
     }
    llSay( PUBLIC_CHANNEL, "This object has "
 
                          + (string)prims
 
                          + " prims and "
 
                          + (string)(llGetNumberOfPrims() - prims)
 
                          + " avatars.");
 
  }
 
 
}</lsl>
 
}</lsl>
 
|helpers
 
|helpers

Revision as of 00:52, 4 August 2011

Summary

Function: integer llGetObjectPrimCount( key prim );

Returns an integer that is the total number of prims in the object that contains prim.

• key prim prim UUID that is in the same region

Avatars sitting on the object are not counted[1]. Zero is returned if prim (1) is not found, (2) is part of an attachment[2], or (3) is not a prim.

Caveats

  • This cannot be used to detect if an avatar is seated (by checking for a non-zero return), use llGetAgentInfo instead.
  • The prim count for attachments are not returned[2]. If possible use llGetNumberOfPrims instead.
All Issues ~ Search JIRA for related Bugs

Examples

<<lsl>default {

   touch_start(integer num)
   {
       integer prims = llGetObjectPrimCount(llGetKey());
       if (prims == 0)
       {
           // llGetObjectPrimCount returns zero for attachments.
           prims = llGetNumberOfPrims();
           // Avatars can't sit on attachments so this is ok.
       }
       llOwnerSay("This object has "
                   + (string)prims
                   + " prims and "
                   + (string)(llGetNumberOfPrims() - prims)
                   + " avatars.");
   }
}</lsl>

See Also

Functions

•  llGetNumberOfPrims Returns the number of prims in the current object.

Deep Notes

Search JIRA for related Issues

Footnotes

  1. ^ llGetNumberOfPrims on the other hand does count avatars sitting on the object.
  2. ^ Weather the attachment exception is a bug or a feature is unclear.

Signature

function integer llGetObjectPrimCount( key prim );