Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- showAllPerms(integer showCombined)
- {
- // optionally include combined permissions
- integer combinedMask = 0;
- if(showCombined) combinedMask = MASK_COMBINED;
- integer basePerms = llGetObjectPermMask(MASK_BASE | combinedMask);
- integer ownerPerms = llGetObjectPermMask(MASK_OWNER |combinedMask);
- integer nextOwnerPerms = llGetObjectPermMask(MASK_NEXT | combinedMask);
- integer groupPerms = llGetObjectPermMask(MASK_GROUP | combinedMask);
- integer everyonePerms = llGetObjectPermMask(MASK_EVERYONE | combinedMask);
- llSay(0, "base" + getPermsAsReadableString(basePerms));
- llSay(0, "owner" + getPermsAsReadableString(ownerPerms));
- llSay(0, "next owner" + getPermsAsReadableString(nextOwnerPerms));
- llSay(0, "group" + getPermsAsReadableString(groupPerms));
- llSay(0, "everyone" + getPermsAsReadableString(everyonePerms));
- }
- default
- {
- touch_start(integer total_number)
- {
- llSay(0, "Prior to transfer, object permissions *excluding* contents are:");
- showAllPerms(FALSE);
- llSay(0, "Prior to transfer, combined object permissions (including contents) are:");
- showAllPerms(TRUE);
- integer result = llTransferOwnership(llDetectedKey(0),FALSE,[]);
- llSay(0,"transfer result= " + (string)result);
- }
- changed(integer change)
- {
- if( !(change & CHANGED_OWNER) ) return;
- llSay(0, "Post transfer, object permissions *excluding* contents are:");
- showAllPerms(FALSE);
- llSay(0, "Post transfer, combined object permissions (including contents) are:");
- showAllPerms(TRUE);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement