Difference between revisions of "LlGetObjectPermMask"
Jump to navigation
Jump to search
m (clarify to "an object permissions mask" from "a permissions mask") |
m (tweaks to the example - make draggable from inventory, make no change visible, make missing name/ description loud, factor out llDumpList2String) |
||
Line 9: | Line 9: | ||
|caveats | |caveats | ||
|constants={{LSL Constants Perm Mask}} | |constants={{LSL Constants Perm Mask}} | ||
|examples= | |examples=Label an object for sale by dragging a script from inventory on to an object. See the label blink out and then come back to say something like "Open/ Yes Mod/ Yes Copy/ Yes Transfer". | ||
<pre> | <pre> | ||
// Float a label over an object: its name, description, and permissions. | // Float a label over an object: its name, description, and permissions. | ||
// http://wiki.secondlife.com/wiki/llGetObjectPermMask | |||
string perms2String(integer everyonePerms, integer nextPerms) | string perms2String(integer everyonePerms, integer nextPerms) | ||
Line 41: | Line 41: | ||
return line; | 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 | default | ||
{ | { | ||
state_entry() | state_entry() | ||
{ | { | ||
llSetText("", <0.0, 0.0, 0.0>, 0.0); | |||
llSleep(0.1); | |||
floatLabels(getLabels()); | |||
llRemoveInventory(llGetScriptName()); | |||
} | } | ||
} | } |
Revision as of 16:47, 7 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
Label an object for sale by dragging a script from inventory on to an object. See the label blink out and then come back to say something like "Open/ Yes Mod/ Yes Copy/ Yes Transfer".
// 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()); } }
See Also
Functions
• | llGetInventoryPermMask |