Difference between revisions of "LlGetObjectPermMask"
Jump to navigation
Jump to search
(make example shorter & more useful -- float a label over an object: its name, description, and permissions) |
m (clarify to "an object permissions mask" from "a permissions mask") |
||
Line 10: | Line 10: | ||
|constants={{LSL Constants Perm Mask}} | |constants={{LSL Constants Perm Mask}} | ||
|examples= | |examples= | ||
Picking apart | Picking apart an object permissions mask can produce such labels as "Open/ Yes Mod/ Yes Copy/ Yes Transfer", for example: | ||
<pre> | <pre> | ||
// Float a label over an object: its name, description, and permissions. | // Float a label over an object: its name, description, and permissions. |
Revision as of 08:48, 4 October 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: integer llGetObjectPermMask( integer mask );287 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns an integer that is the requested permission mask for the root object the task is attached to.
• integer | mask |
|
|
Caveats
Examples
Picking apart an object permissions mask can produce such labels as "Open/ Yes Mod/ Yes Copy/ Yes Transfer", for example:
// Float a label over an object: its name, description, and permissions. string perms2String(integer everyonePerms, integer nextPerms) { integer PERMS_OPEN = (PERM_MODIFY | PERM_COPY | PERM_TRANSFER); string line = "Closed"; if ((nextPerms & PERMS_OPEN) == PERMS_OPEN) { if (everyonePerms & PERM_COPY) { line = "Open"; } } if (nextPerms & PERM_MODIFY) { line += "/ Yes Mod"; } if (nextPerms & PERM_COPY) { line += "/ Yes Copy"; } if (nextPerms & PERM_TRANSFER) { line += "/ Yes Transfer"; } return line; } default { on_rez(integer start_param) { llResetScript(); } state_entry() { string name = llGetObjectName(); string description = llGetObjectDesc(); integer everyonePerms = llGetObjectPermMask(MASK_EVERYONE); integer nextPerms = llGetObjectPermMask(MASK_NEXT); string permissions = perms2String(everyonePerms, nextPerms); string between = "\n---\n"; vector color = <1.0, 1.0, 1.0>; // color = <R, G, B> float opacity = 1.0; // opacity = alpha = 1.0 - transparency string lines = name + between + description + between + permissions; llSetText(lines, color, opacity); } }
See Also
Functions
• | llGetInventoryPermMask |