Difference between revisions of "User:Daemonika Nightfire/Scripts/Anti copy trans"

From Second Life Wiki
Jump to: navigation, search
(Created page with "==*DS* Anti (copy & transfer)== This funktion allows you to give away scripts with copy & transfer permissions and force the reseller to change the permission. Additionally the s…")
 
(*DS* Anti (copy & transfer))
Line 1: Line 1:
 
==*DS* Anti (copy & transfer)==
 
==*DS* Anti (copy & transfer)==
 
This funktion allows you to give away scripts with copy & transfer permissions and force the reseller to change the permission.
 
This funktion allows you to give away scripts with copy & transfer permissions and force the reseller to change the permission.
Additionally the script will delete itself when the customer of the reseller receives it with both permissions. Because it is a global funkcion, it can be used universally.
+
Additionally the script will delete itself when the customer of the reseller receives it with both permissions. Because it is a global function, it can be used universally.
  
 
  Make sure that you not give away scripts with modify rights which contains this function.
 
  Make sure that you not give away scripts with modify rights which contains this function.

Revision as of 12:54, 1 November 2012

*DS* Anti (copy & transfer)

This funktion allows you to give away scripts with copy & transfer permissions and force the reseller to change the permission. Additionally the script will delete itself when the customer of the reseller receives it with both permissions. Because it is a global function, it can be used universally.

Make sure that you not give away scripts with modify rights which contains this function.

<lsl> /*

   ╔═════════════════════════════════════−−−­­­­­­→
   ║ *DS* Anti (copy & transfer) © by Daemonika Nightfire (daemonika.nightfire)
   ╚══════════════════════−−−­­­→
  • /

// stored key's (UUID) of creator and reseller list CreatorKey = ["61ee201a-81cf-4322-b9a8-a5eb8da777c2","00000000-0000-0000-0000-000000000000"]; // expandable

////////// global function \\\\\\\\\\ CorrectPerms?() {

   string Script = llGetScriptName(); // ask for scriptname
   llSetText("", ZERO_VECTOR, 0.0); // clear floatingtext
   
   // compares the ownerkey with the key's in the list
   if(llListFindList(CreatorKey, llCSV2List(llGetOwner())) == -1)
   {
       // if the ownerkey don't match, the script will delete itself when permission copy & tranfer is given
       integer MaskOwner = llGetInventoryPermMask(Script, MASK_OWNER);
       if((MaskOwner & PERM_TRANSFER) && (MaskOwner & PERM_COPY) != 0)
       {
           llOwnerSay("/me " + Script + ": Sorry, i was not made for you. Goodbye");
           llRemoveInventory(Script);
       }
   }
   
   // force the reseller to set (no copy) or (no trans), otherwise the script will not work
   integer MaskNext = llGetInventoryPermMask(Script, MASK_NEXT);
   if((MaskNext & PERM_TRANSFER) && (MaskNext & PERM_COPY) != 0)
   {
       llSetText("please correct the script-permission to:\n(copy/no transfer) or (no copy/transfer)", <1,1,0>, 1.0);
       state Offline;
   }

}

default {

   state_entry()
   {
       CorrectPerms?(); // starts the global function
   }
   touch_start(integer total_number) // just for show that it work
   {
       llSay(0, "Yay, script-permission correct.");
   }
   
   changed(integer change)
   {
       if(change & (CHANGED_OWNER|CHANGED_INVENTORY))
       {
           llResetScript();
       }
   }
   
   on_rez(integer Dae)
   {
       llResetScript();
   }

}

state Offline {

   state_entry()
   {
       llOwnerSay("Sorry, please correct the script-permission");
   }
   
   changed(integer change)
   {
       if(change & (CHANGED_OWNER|CHANGED_INVENTORY))
       {
           llResetScript();
       }
   }
   
   on_rez(integer Dae)
   {
       llResetScript();
   }

} </lsl>