Difference between revisions of "LlGetInventoryPermMask"

From Second Life Wiki
Jump to: navigation, search
m (adjusted testing for opposite based on discussion at http://forums.secondlife.com/showthread.php?t=315395)
m
Line 46: Line 46:
  
 
<lsl>((PERM_COPY & llGetInventoryPermMask(myitem, MASK_OWNER)) == 0)</lsl>
 
<lsl>((PERM_COPY & llGetInventoryPermMask(myitem, MASK_OWNER)) == 0)</lsl>
 +
 +
To remind the next owner what permissions to set before selling on
 +
choose which need to be set;
 +
 +
<lsl>CheckPerms()
 +
{       
 +
    string item = llGetScriptName();
 +
    if((PERM_COPY & llGetInventoryPermMask(item, MASK_NEXT)) != 0)
 +
    {
 +
        llOwnerSay("Set no copy");
 +
    }
 +
    if((PERM_MODIFY & llGetInventoryPermMask(item, MASK_NEXT)) != 0)
 +
    {
 +
        llOwnerSay("Set no mod");
 +
    }
 +
    if((PERM_TRANSFER & llGetInventoryPermMask(item, MASK_NEXT)) != 0)
 +
    {
 +
        llOwnerSay("Set no transfer");
 +
    }
 +
    return;
 +
}
 +
 +
default
 +
{
 +
    on_rez(integer start_param)
 +
    {
 +
        llResetScript();
 +
    }
 +
    state_entry()
 +
    {
 +
        if(llGetOwner() != llGetInventoryCreator(llGetScriptName()))
 +
        {
 +
            CheckPerms();
 +
        }
 +
    }
 +
</lsl>
  
  

Revision as of 15:28, 13 March 2012

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>// Complain unless this script is Open/ Yes Mod/ Yes Copy/ Yes Transfer.

warnIfClosed() {

integer PERMS_OPEN = (PERM_MODIFY

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