Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Script eraser by Dahlia Orfan (2012)
- // Drop this script in a linkset (rez on the ground or attachment)
- // When the script tells that it is ready, unrez and rerez the linkset
- // Set all scripts to running using the menu of the viewer
- // Wait until it is done.
- integer prims;
- integer DELETE;
- erase()
- {
- integer n = llGetInventoryNumber(INVENTORY_SCRIPT);
- while(n)
- {
- --n;
- if (llGetInventoryName(INVENTORY_SCRIPT,n) != llGetScriptName())
- llRemoveInventory(llGetInventoryName(INVENTORY_SCRIPT,n));
- }
- }
- default
- {
- link_message(integer sender_num, integer num, string str, key id)
- {
- if (num == DELETE)
- {
- --prims;
- llSetText((string)prims + " prims to clean up.",<1.0,1.0,1.0>,1.0);
- if (prims == 1)
- {
- erase();
- llOwnerSay("done.");
- llSetText("",<1.0,1.0,1.0>,1.0);
- llRemoveInventory(llGetScriptName());
- }
- }
- }
- state_entry()
- {
- DELETE = (integer)("0x"+llGetSubString(llMD5String((string)llGetOwner(),31415),0,6));
- if (llGetLinkNumber() <= 1)
- {
- prims = llGetNumberOfPrims();
- if(1 < prims)
- while(llGetAgentSize(llGetLinkKey(prims)))
- --prims;
- if (prims >= 2)
- {
- llOwnerSay("Duplication of the script in all child prims.");
- integer n = prims;
- while(n > 1)
- {
- llGiveInventory(llGetLinkKey(n),llGetScriptName());
- --n;
- }
- llSetText((string)prims + " prims to clean up.",<1.0,1.0,1.0>,1.0);
- llOwnerSay("Unrez and rerez the linkset; set scripts to running using the menu of the viewer to erase all scripts in child prims.");
- }
- else
- {
- erase();
- llOwnerSay("done.");
- llSetText("",<1.0,1.0,1.0>,1.0);
- llRemoveInventory(llGetScriptName());
- }
- }
- else
- {
- erase();
- llMessageLinked(LINK_ROOT,DELETE,"",NULL_KEY);
- llRemoveInventory(llGetScriptName());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement