if I "take copy", the script loses PERMISSION_DEBIT
tracked
Tapple Gao
If one person takes a copy of another person's object, the object left in-world loses
PERMISSION_DEBIT
. I didn't test other permissions- Rez an object and insert this script:
default {
state_entry() {
llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
}
touch_start(integer count) {
llOwnerSay("Permissions: " + (string)llGetPermissionsKey() + ": " + (string)llGetPermissions());
}
}
- Grant debit permission
- Click to make sure it has permission
- Sign onto an alt that has object edit permissions
- On the Alt, right click > Take Copy
- Click the object still rezzed in world. It no longer has debit permission
Log In
Maestro Linden
marked this post as
tracked
Maestro Linden
This actually seems to apply to any permissions that have been granted. It seems that "take copy" by another agent causes CHANGED_OWNER to trigger on the original object, which coincides with it losing all runtimel permissions. There isn't an additional run_time_permissions() event when permissions are stripped, the script state is otherwise preserved (such as the 'touch count' in this example):
integer c;
default {
state_entry() {
llSay(0, "Requesting PERMISSION_TRIGGER_ANIMATION");
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}
run_time_permissions(integer p) {
if(p & PERMISSION_TRIGGER_ANIMATION) llSay(0, "Got PERMISSION_TRIGGER_ANIMATION");
}
changed(integer c) {
if(c & CHANGED_OWNER) llSay(0, "CHANGED_OWNER triggered");
}
touch_start(integer count) {
llSay(0, "Touched this many times: " + (string)(++c));
llSay(0, "Permissions: " + (string)llGetPermissionsKey() + ": " + (string)llGetPermissions());
}
}
I see that https://github.com/secondlife/jira-archive/issues/9932 covers both of these issues.