Difference between revisions of "LlGetInventoryPermMask"

From Second Life Wiki
Jump to navigation Jump to search
(add note: In effect, the perms for code published in this LSL Wiki are PERM_COPY until you log in, then PERM_MODIFY or PERM_COPY.)
m (multi lang)
Line 1: Line 1:
{{LSL_Function/inventory|item|uuid=false}}{{LSL_Function
{{Multi-lang}}{{LSL_Function/inventory|item|uuid=false}}{{LSL_Function
|func_id=289|func_sleep=0.0|func_energy=10.0
|func_id=289|func_sleep=0.0|func_energy=10.0
|func=llGetInventoryPermMask|return_type=integer
|func=llGetInventoryPermMask|return_type=integer

Revision as of 05:10, 13 January 2008

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

// 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

Functions

•  llGetObjectPermMask
•  llGetInventoryCreator
•  llGetInventoryKey
•  llGetInventoryType

Articles

•  hex

Deep Notes

Search JIRA for related Issues

Signature

function integer llGetInventoryPermMask( string item, integer mask );