LlGetInventoryPermMask
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