Difference between revisions of "LlGetInventoryPermMask"

From Second Life Wiki
Jump to navigation Jump to search
(Remove pointless example (action approved by Rolig Loon))
m (Correct 3rd example which would not compile (missing commas). Add "none" output where appropriate.)
Line 49: Line 49:
     else if ((perm & PERM_TRANSFER) == PERM_TRANSFER)
     else if ((perm & PERM_TRANSFER) == PERM_TRANSFER)
         output += "transfer";
         output += "transfer";
    else
        output += "none";


     //  Remember, items in Second Life must have either
     //  Remember, items in Second Life must have either
Line 54: Line 56:
     //  owner perms or perms for next owner.
     //  owner perms or perms for next owner.


     return
     return output;
        output;
}
}


Line 64: Line 65:
         string inventoryItemName = "inventory item name goes here";
         string inventoryItemName = "inventory item name goes here";


         integer basePerms = llGetInventoryPermMask(inventoryItemName MASK_BASE);
         integer basePerms     = llGetInventoryPermMask(inventoryItemName, MASK_BASE);
         integer ownerPerms = llGetInventoryPermMask(inventoryItemName MASK_OWNER);
         integer ownerPerms     = llGetInventoryPermMask(inventoryItemName, MASK_OWNER);
         integer nextOwnerPerms = llGetInventoryPermMask(inventoryItemName MASK_NEXT);
         integer nextOwnerPerms = llGetInventoryPermMask(inventoryItemName, MASK_NEXT);
         integer groupPerms = llGetInventoryPermMask(inventoryItemName MASK_GROUP);
         integer groupPerms     = llGetInventoryPermMask(inventoryItemName, MASK_GROUP);
         integer everyonePerms = llGetInventoryPermMask(inventoryItemName MASK_EVERYONE);
         integer everyonePerms = llGetInventoryPermMask(inventoryItemName, MASK_EVERYONE);


    //  PUBLIC_CHANNEL has the integer value 0
         llSay(0, "/me [" + inventoryItemName
 
         llSay(PUBLIC_CHANNEL, "/me [" + inventoryItemName
             + "]: base" + getPermsAsReadableString(basePerms));
             + "]: base" + getPermsAsReadableString(basePerms));
         llSay(PUBLIC_CHANNEL, "/me [" + inventoryItemName
         llSay(0, "/me [" + inventoryItemName
             + "]: owner" + getPermsAsReadableString(ownerPerms));
             + "]: owner" + getPermsAsReadableString(ownerPerms));
         llSay(PUBLIC_CHANNEL, "/me [" + inventoryItemName
         llSay(0, "/me [" + inventoryItemName
             + "]: next owner" + getPermsAsReadableString(nextOwnerPerms));
             + "]: next owner" + getPermsAsReadableString(nextOwnerPerms));
         llSay(PUBLIC_CHANNEL, "/me [" + inventoryItemName
         llSay(0, "/me [" + inventoryItemName
             + "]: group" + getPermsAsReadableString(groupPerms));
             + "]: group" + getPermsAsReadableString(groupPerms));
         llSay(PUBLIC_CHANNEL, "/me [" + inventoryItemName
         llSay(0, "/me [" + inventoryItemName
             + "]: everyone" + getPermsAsReadableString(everyonePerms));
             + "]: everyone" + getPermsAsReadableString(everyonePerms));
     }
     }

Revision as of 10:52, 3 January 2013

Summary

Function: integer llGetInventoryPermMask( string item, integer mask );

Returns an integer bitfield that is the requested permission mask for the inventory item

• string item an item in the inventory of the prim this script is in
• integer mask MASK_* flag

Category Description
MASK_BASE 0 The base permissions.
MASK_OWNER 1 Current owner permissions.
MASK_GROUP 2 Active group permissions.
MASK_EVERYONE 3 Permissions everyone has.
MASK_NEXT 4 Permissions the next owner will have.
Permissions Value Description
PERM_ALL 0x7FFFFFFF Move/Modify/Copy/Transfer permissions
PERM_COPY 0x00008000 Copy permission
PERM_MODIFY 0x00004000 Modify permission
PERM_MOVE 0x00080000 Move permission
PERM_TRANSFER 0x00002000 Transfer permission

Caveats

  • If item is missing from the prim's inventory then an error is shouted on DEBUG_CHANNEL.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> if ((permsYouHave & permsYouWant) == permsYouWant)

   llSay(PUBLIC_CHANNEL, "You have the perms you want.");

else

   llSay(PUBLIC_CHANNEL, "You don't have the perms you want.");

</lsl> <lsl> integer ownerPerms = llGetInventoryPermMask("inventory item name goes here", MASK_OWNER);

integer copyAndModPerms = PERM_COPY

Notes

See Also

Functions

•  llGetObjectPermMask
•  llGetInventoryName Returns the inventory item's name
•  llGetInventoryType Tests to see if an inventory item exists and returns its type
•  llGetInventoryNumber Returns the number of items of a specific type in inventory
•  llGetInventoryKey Returns the inventory item's UUID (if full perm)
•  llGetInventoryCreator Returns the inventory item's creator

Articles

•  hex

Deep Notes

Search JIRA for related Issues

Tests

•  llGetInventoryPermMask Test

Signature

function integer llGetInventoryPermMask( string item, integer mask );