Difference between revisions of "LlGetObjectPrimCount"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
{{LSL_Function/prim|prim|sim=*|}}{{LSL_Function
{{LSL_Function
|inject-1={{LSL_Function/prim|prim|sim=*|}}
|func_id=323|func_sleep=0.0|func_energy=10.0
|func_id=323|func_sleep=0.0|func_energy=10.0
|func=llGetObjectPrimCount
|func=llGetObjectPrimCount
|return_type=integer
|return_type=integer
|p1_type=key|p1_name=prim|p1_desc
|p1_type=key|p1_name=prim|p1_desc
|func_footnote=Avatars sitting on the object are not counted{{Footnote|[[llGetNumberOfPrims]] on the other hand does count avatars sitting on the object.|llGetNumberOfPrims on the other hand does count avatars sitting on the object.}}. If '''id''' is not found or it is not a prim, zero is returned.
|func_footnote=Avatars sitting on the object are not counted{{Footnote|[[llGetNumberOfPrims]] on the other hand does count avatars sitting on the object.|llGetNumberOfPrims on the other hand does count avatars sitting on the object.}}. Zero is returned if '''prim''' {{HoverText|(1)|is not found}} is not found, {{HoverText|(2)|is part of an attachment}} is part of an attachment{{Footnote|Weather the attachment exception is a bug or a feature is unclear.|handle=attachment}}, or {{HoverText|(3)|is not a prim}} is not a prim.
|func_desc
|func_desc
|return_text=that is the total number of prims in the object that contains '''prim'''.
|return_text=that is the total number of prims in the object that contains '''prim'''.
|spec
|spec
|caveats=
|caveats=
*This cannot be used to detect if an avatar is seated (by checking for a non-zero return), use [[llGetAgentInfo]] instead.
* 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{{Footnote|handle=attachment}}. If possible use [[llGetNumberOfPrims]] instead.
|constants
|constants
|examples=
|examples=
Line 15: Line 17:
   touch_start( integer vIntTouched ){
   touch_start( integer vIntTouched ){
     integer prims = llGetObjectPrimCount( llGetKey() );
     integer prims = llGetObjectPrimCount( llGetKey() );
    if( !prims ){
      prims = llGetNumberOfPrims(); //was probably attached
    }
     llSay( PUBLIC_CHANNEL, "This object has "
     llSay( PUBLIC_CHANNEL, "This object has "
                           + (string)prims
                           + (string)prims
Line 28: Line 33:
|also_events
|also_events
|also_articles
|also_articles
|notes=
|notes
[[llGetObjectPrimCount]] can be used as an alternative for [[llGetAgentSize]] for testing if a uuid that is known to be in the sim is an avatar. The big difference being the two is that [[llGetObjectPrimCount]] returns zero on avatars while [[llGetAgentSize]] returns [[ZERO_VECTOR]] on prims. These two could be used in conjunction to test if the uuid is in the sim but [[llGetBoundingBox]] maybe a better choice.
|cat1=Object
|cat1=Object
|cat2
|cat2

Revision as of 10:01, 6 April 2010

Summary

Function: integer llGetObjectPrimCount( key prim );
0.0 Forced Delay
10.0 Energy

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.

Examples

<lsl>default{

 touch_start( integer vIntTouched ){
   integer prims = llGetObjectPrimCount( llGetKey() );
   if( !prims ){
     prims = llGetNumberOfPrims(); //was probably attached
   }
   llSay( PUBLIC_CHANNEL, "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

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 );