Difference between revisions of "LlGetObjectPermMask"
Jump to navigation
Jump to search
Gally Young (talk | contribs) m (Multi-lang) |
Gally Young (talk | contribs) m (fixe) |
||
Line 1: | Line 1: | ||
{{LSL_Function | {{LSL_Function | ||
|func_id=287|func_sleep=0.0|func_energy=10.0 | |func_id=287|func_sleep=0.0|func_energy=10.0 |
Revision as of 13:12, 29 January 2008
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 | – | MASK_* flag |
|
|
Caveats
Examples
See the text floating above an object blink out and then come back to say something like:
Open Object --- by Anonymous --- Open/ Yes Mod/ Yes Copy/ Yes Transfer
when you drag the following script from inventory on to the object:
// Float a label over an object: its name, description, and permissions. // http://wiki.secondlife.com/wiki/llGetObjectPermMask 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; } list getLabels() { string name = llGetObjectName(); if (name == "Object") { name = "(No Name)"; } string description = llGetObjectDesc(); if (description == "") { description = "(No Description)"; } integer everyonePerms = llGetObjectPermMask(MASK_EVERYONE); integer nextPerms = llGetObjectPermMask(MASK_NEXT); string permissions = perms2String(everyonePerms, nextPerms); return [name, description, permissions]; } floatLabels(list lines) { string label = llDumpList2String(lines, "\n---\n"); vector color = <1.0, 1.0, 1.0>; // color = <R, G, B> float opacity = 1.0; // opacity = alpha = 1.0 - transparency llSetText(label, color, opacity); } default { state_entry() { llSetText("", <0.0, 0.0, 0.0>, 0.0); llSleep(0.1); floatLabels(getLabels()); llRemoveInventory(llGetScriptName()); } }
Notes
The perms of a newly created object often are Base = PERM_ALL, Owner = PERM_ALL, Next = PERM_MOVE or PERM_TRANSFER, Group = 0 (none), Everyone = 0 (none). The perms2String example describes those perms as "Closed / Yes Transfer".