LlGetInventoryPermMask - Second Life Wiki

LlGetInventoryPermMask

From Second Life Wiki

(Redirected from LSL llGetInventoryPermMask)
Jump to: navigation, search

Contents

Description

Function: integer llGetInventoryPermMask( string item, integer mask );
289 Function ID
0.0 Delay
10.0 Energy

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

// 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();
    }
}

Notes

  • In effect, the perms for scripts published in this LSL Wiki are PERM_COPY until you log in, then PERM_MODIFY or PERM_COPY.
  • Often 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). Often these perms are the same, no matter if you create the script in inventory or in an object.

See Also

This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.