Jump to content

LlGetInventoryPermMask

From OSgrid Wiki
Revision as of 22:27, 31 December 2017 by Osgridadmin (talk | contribs) (Created page with "==Function: integer llGetInventoryPermMask( string item, integer mask );== Returns an integer bitfield that is the requested permission mask for the inventory item <br> • st...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 prim's inventory
• integer mask – MASK_* flag

Mask 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.

Examples

<source lang="lsl">

// Complain unless this script is Open/ Yes Mod/ Yes Copy/ Yes Transfer.

warnIfClosed() {

   integer PERMS_OPEN = (PERM_MODIFY | PERM_COPY | PERM_TRANSFER);
   string item = llGetScriptName();
   integer everyonePerms = llGetInventoryPermMask(item, MASK_EVERYONE);
   integer nextPerms = llGetInventoryPermMask(item, MASK_NEXT);
   if ((everyonePerms & PERM_COPY))
   {
       if ((nextPerms & PERMS_OPEN) == PERMS_OPEN)
       {
           llOwnerSay("Open/ Yes Mod/ Yes Copy/ Yes Transfer/ Thank you");
           return;
       }
   }
   llSay(0, "Q: Open/ Yes Mod/ Yes Copy/ Yes Transfer? A: Not so!!!");

}

default {

   on_rez(integer start_param)
   {
       llResetScript();
   }
   state_entry()
   {
       warnIfClosed();
   }

} </source>


Notes
• In effect, the perms for articles published on this Wiki are PERM_COPY and PERM_TRANSFER until you log in, then PERM_MODIFY, PERM_MOVE, PERM_COPY and PERM_TRANSFER.
• The perms of a newly created script are: Base = PERM_ALL, Owner = PERM_ALL, Next = PERM_MOVE or PERM_TRANSFER, Group = 0 (none), Everyone = 0 (none). These perms are the same, no matter if the script is created in user inventory or in an object.

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