Difference between revisions of "LlGetObjectPermMask"
Jump to navigation
Jump to search
(guess why llGetObjectPermMask is missing from Category:LSL_Functions) |
(add first example - promptly complain any time the SL GUI restricts copying differently than you wish) |
||
Line 9: | Line 9: | ||
|caveats | |caveats | ||
|constants={{LSL Constants Perm Mask}} | |constants={{LSL Constants Perm Mask}} | ||
|examples | |examples= | ||
Promptly complain any time the SL GUI restricts copying differently than you wish. | |||
<pre> | |||
// Remember the last perms described. | |||
integer everyonePerms; | |||
integer nextPerms; | |||
integer troubles; | |||
fetchPerms() | |||
{ | |||
everyonePerms = llGetObjectPermMask(MASK_EVERYONE); | |||
nextPerms = llGetObjectPermMask(MASK_NEXT); | |||
} | |||
// Describe the perms. | |||
permsShouldBe() | |||
{ | |||
integer wasTroubles = troubles; | |||
troubles = 0; | |||
if (!(everyonePerms & PERM_COPY)) | |||
{ | |||
llOwnerSay("No = Allow anyone to copy " + llGetObjectName()); | |||
troubles += 1; | |||
} | |||
if (!(nextPerms & PERM_MODIFY)) | |||
{ | |||
llOwnerSay("No = Next owner can modify " + llGetObjectName()); | |||
troubles += 1; | |||
} | |||
if (!(nextPerms & PERM_COPY)) | |||
{ | |||
llOwnerSay("No = Next owner can copy " + llGetObjectName()); | |||
troubles += 1; | |||
} | |||
if (!(nextPerms & PERM_TRANSFER)) | |||
{ | |||
llOwnerSay("No = Next owner can resell/ give away " + llGetObjectName()); | |||
troubles += 1; | |||
} | |||
if (wasTroubles && !troubles) | |||
{ | |||
llOwnerSay("Open / Yes Mod/ Yes Copy/ Yes Transfer"); | |||
} | |||
if (wasTroubles || troubles) | |||
{ | |||
llOwnerSay(""); | |||
} | |||
} | |||
// Describe the perms when rezzed or reset, and when the perms change. | |||
default | |||
{ | |||
on_rez(integer start_param) | |||
{ | |||
llResetScript(); | |||
} | |||
state_entry() | |||
{ | |||
fetchPerms(); | |||
permsShouldBe(); | |||
llSetTimerEvent(1.0); // 1.0 = once per second | |||
} | |||
timer() | |||
{ | |||
integer wasEveryonePerms = everyonePerms; | |||
integer wasNextPerms = nextPerms; | |||
fetchPerms(); | |||
if (everyonePerms != wasEveryonePerms) | |||
{ | |||
permsShouldBe(); | |||
} | |||
else if (nextPerms != wasNextPerms) | |||
{ | |||
permsShouldBe(); | |||
} | |||
} | |||
} | |||
</pre> | |||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow||{{LSLG|llGetInventoryPermMask}}|}} | |also_functions={{LSL DefineRow||{{LSLG|llGetInventoryPermMask}}|}} |
Revision as of 21:42, 2 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
Promptly complain any time the SL GUI restricts copying differently than you wish.
// Remember the last perms described. integer everyonePerms; integer nextPerms; integer troubles; fetchPerms() { everyonePerms = llGetObjectPermMask(MASK_EVERYONE); nextPerms = llGetObjectPermMask(MASK_NEXT); } // Describe the perms. permsShouldBe() { integer wasTroubles = troubles; troubles = 0; if (!(everyonePerms & PERM_COPY)) { llOwnerSay("No = Allow anyone to copy " + llGetObjectName()); troubles += 1; } if (!(nextPerms & PERM_MODIFY)) { llOwnerSay("No = Next owner can modify " + llGetObjectName()); troubles += 1; } if (!(nextPerms & PERM_COPY)) { llOwnerSay("No = Next owner can copy " + llGetObjectName()); troubles += 1; } if (!(nextPerms & PERM_TRANSFER)) { llOwnerSay("No = Next owner can resell/ give away " + llGetObjectName()); troubles += 1; } if (wasTroubles && !troubles) { llOwnerSay("Open / Yes Mod/ Yes Copy/ Yes Transfer"); } if (wasTroubles || troubles) { llOwnerSay(""); } } // Describe the perms when rezzed or reset, and when the perms change. default { on_rez(integer start_param) { llResetScript(); } state_entry() { fetchPerms(); permsShouldBe(); llSetTimerEvent(1.0); // 1.0 = once per second } timer() { integer wasEveryonePerms = everyonePerms; integer wasNextPerms = nextPerms; fetchPerms(); if (everyonePerms != wasEveryonePerms) { permsShouldBe(); } else if (nextPerms != wasNextPerms) { permsShouldBe(); } } }
See Also
Functions
• | llGetInventoryPermMask |