Advertisement
Guest User

Untitled

a guest
Jun 11th, 2013
468
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // list of people's prims to keep (owner UUIDs)
  2. list do_not_return =
  3. [
  4.     "6a5aef83-93a6-42e1-9d76-bd03b4f5e8aa",  // Darien Caldwell
  5.     "b91d12f1-4e0f-4752-8199-73d71fdeeee5"   // Lucia Nightfire
  6. ];
  7. // list of people who can trigger a cleanup (return)
  8. // doesn't have to be the same as above, but probably will be
  9. list allowed_to_trigger_return =
  10. [
  11.     "6a5aef83-93a6-42e1-9d76-bd03b4f5e8aa",  // Darien Caldwell
  12.     "b91d12f1-4e0f-4752-8199-73d71fdeeee5"   // Lucia Nightfire
  13. ];
  14. default
  15. {
  16.     state_entry()
  17.     {
  18.         llRequestPermissions(llGetOwner(),PERMISSION_RETURN_OBJECTS);
  19.     }
  20.    
  21.     on_rez(integer param)
  22.     {
  23.         llRequestPermissions(llGetOwner(),PERMISSION_RETURN_OBJECTS);
  24.     }
  25.    
  26.     run_time_permissions(integer perm)
  27.     {
  28.         if (perm & PERMISSION_RETURN_OBJECTS)
  29.         {
  30.             llOwnerSay("Permission Granted, ready to return stuff!");
  31.         }
  32.     }
  33.    
  34.     touch_start(integer total_number)
  35.     {
  36.         string toucher = llDetectedKey(0);
  37.         if (llListFindList(allowed_to_trigger_return,[toucher]) != -1 || toucher == llGetOwner())
  38.         {            
  39.             // get list of prim owners on parcel
  40.             list prim_owners = llGetParcelPrimOwners(llGetPos());
  41.             list prim_interlopers=[];
  42.             integer x=0;
  43.            
  44.             llRegionSayTo(toucher,0,"Prim Owners Detected");
  45.             llRegionSayTo(toucher,0,"\n--------------------");
  46.             do {
  47.                 llRegionSayTo(toucher,0,llList2String(prim_owners,x)+": "+llList2String(prim_owners,x+1)+" objects.");
  48.                 if (llListFindList(do_not_return,[llList2Key(prim_owners,x)]) == -1)
  49.                 {
  50.                     // not on the keep list, so queue for removal
  51.                     prim_interlopers+=llList2Key(prim_owners,x);
  52.                 }
  53.                 x=x+2;            
  54.             }
  55.             while(llGetListLength(prim_owners)>x);
  56.            
  57.             // if we have prims to delete, do it.
  58.             if (prim_interlopers!= [])
  59.             {
  60.                 x=0;
  61.                 do {
  62.                     llReturnObjectsByOwner(llList2Key(prim_interlopers,x),OBJECT_RETURN_PARCEL);
  63.                     x++;
  64.                 }
  65.                 while(llGetListLength(prim_interlopers)>x);
  66.             }
  67.            
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement