llGetObjectPermMask
function
Function syntax
integer llGetObjectPermMask(integer group// MASK_* group (e.g.,MASK_BASE,MASK_OWNER,MASK_GROUP,MASK_EVERYONE, orMASK_NEXT) to get. Values: AssetPermissionCategoryOrFlag
);- Returns
integer- Energy
- 10
Returns an integer of the requested permission category for the object containing this script.
integer result = llGetObjectPermMask(0);Specification
Section titled “Specification”
|
|
Examples
Section titled “Examples”Example 1
if ((permsYouHave & permsYouWant) == permsYouWant) llSay(0, "You have the perms you want.");else llSay(0, "You don't have the perms you want.");Example 2
integer ownerPerms = llGetObjectPermMask(MASK_OWNER);integer copyAndModPerms = PERM_COPY | PERM_MODIFY;
if ((ownerPerms & copyAndModPerms) == copyAndModPerms) llSay(0, "Owner has copy & modify perms.");else llSay(0, "Owner does not have copy & modify perms.");Example 3
58 collapsed lines
string getPermsAsReadableString(integer perm){ integer allPerms = PERM_ALL; integer fullPerms = PERM_COPY | PERM_MODIFY | PERM_TRANSFER;
integer copyModMovePerms = PERM_COPY | PERM_MODIFY | PERM_MOVE; integer copyModPerms = PERM_COPY | PERM_MODIFY;
integer copyTransMovePerms = PERM_COPY | PERM_TRANSFER | PERM_MOVE; integer copyTransPerms = PERM_COPY | PERM_TRANSFER;
integer modTransMovePerms = PERM_MODIFY | PERM_TRANSFER | PERM_MOVE; integer modTransPerms = PERM_MODIFY | PERM_TRANSFER;
integer copyMovePerms = PERM_COPY | PERM_MOVE;
integer transMovePerms = PERM_TRANSFER | PERM_MOVE;
string output = " perms: ";
if ((perm & allPerms) == allPerms) output += "full and move"; else if ((perm & fullPerms) == fullPerms) output += "full"; else if ((perm & copyModMovePerms) == copyModMovePerms) output += "copy & modify & move"; else if ((perm & copyModPerms) == copyModPerms) output += "copy & modify"; else if ((perm & copyTransMovePerms) == copyTransMovePerms) output += "copy & transfer & move"; else if ((perm & copyTransPerms) == copyTransPerms) output += "copy & transfer"; else if ((perm & modTransMovePerms) == modTransMovePerms) output += "modify & transfer & move"; else if ((perm & modTransPerms) == modTransPerms) output += "modify & transfer"; else if ((perm & copyMovePerms) == copyMovePerms) output += "copy & move"; else if ((perm & PERM_COPY) == PERM_COPY) output += "copy"; else if ((perm & transMovePerms) == transMovePerms) output += "transfer & move"; else if ((perm & PERM_TRANSFER) == PERM_TRANSFER) output += "transfer"; else if ((perm & PERM_MOVE) == PERM_MOVE) output += "move"; else output += "none";
// Remember, items in Second Life must have either // PERM_COPY or PERM_TRANSFER when "talking about" // owner perms or perms for next owner.
return output;}default{ state_entry() { integer basePerms = llGetObjectPermMask(MASK_BASE); integer ownerPerms = llGetObjectPermMask(MASK_OWNER); integer nextOwnerPerms = llGetObjectPermMask(MASK_NEXT); integer groupPerms = llGetObjectPermMask(MASK_GROUP); integer everyonePerms = llGetObjectPermMask(MASK_EVERYONE);
llSay(0, "base" + getPermsAsReadableString(basePerms));6 collapsed lines
llSay(0, "owner" + getPermsAsReadableString(ownerPerms)); llSay(0, "next owner" + getPermsAsReadableString(nextOwnerPerms)); llSay(0, "group" + getPermsAsReadableString(groupPerms)); llSay(0, "everyone" + getPermsAsReadableString(everyonePerms)); }}Example 4
integer isLocked(){ return !(llGetObjectPermMask(MASK_OWNER) & PERM_MOVE);}The perms of a newly created object are often:
Base = PERM_ALL
Owner = PERM_ALL
Next = PERM_MOVE or PERM_TRANSFER
Group = 0 (none)
Everyone = 0 (none)
See also
Section titled “See also”Functions
Section titled “Functions”Articles
Section titled “Articles”Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.