Difference between revisions of "User:Toady Nakamura/Scrubber Script"
Jump to navigation
Jump to search
m (header example) |
m (added script after testing it inworld) |
||
Line 43: | Line 43: | ||
==To scrub child prims too== | ==To scrub child prims too== | ||
This script also started with "The Scrubber" by Jopsy Pendragon, Feb 10 2006, Version 1 | |||
:* Update Tigger Genira 27 November 2009 for self distribution | |||
:* Update WDC Voom 8 November 2010 for better child action. | |||
'''Instructions:''' | |||
Put this script in the root prim of a build which is giving you grief. | |||
:* It will distribute itself to all the prims in the link set and reset/unset most persistant prim settings that can only be set by scripts. | |||
:* Once it has sent the script to the child prims you MUST take the whole object into inventory. | |||
:* Re-rez the object | |||
:* Edit it and 'set all scripts to running in selection' | |||
<lsl> | |||
string Me; | |||
integer Pin=3141; | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
Me = llGetScriptName(); | |||
if(llGetLinkNumber() == 1) | |||
{ | |||
//root prim | |||
llOwnerSay("Inserted in root, sending to child prims"); | |||
integer i; | |||
for (i = 2; i <= llGetNumberOfPrims(); i++) | |||
{ | |||
key prim_key = llGetLinkKey (i); | |||
llRemoteLoadScriptPin (prim_key, Me, Pin, TRUE, 0); | |||
} | |||
llOwnerSay("Done"); | |||
} | |||
llSetSitText( "" ); | |||
llSetTouchText( "" ); | |||
llParticleSystem( [ ] ); | |||
llSetText( "", ZERO_VECTOR, 1.0 ); | |||
llTargetOmega( ZERO_VECTOR, 0, 0 ); | |||
llSetCameraAtOffset( ZERO_VECTOR ); | |||
llSetCameraEyeOffset( ZERO_VECTOR ); | |||
llSitTarget( ZERO_VECTOR, ZERO_ROTATION ); | |||
llSetTextureAnim( FALSE , ALL_SIDES, 1, 1, 0, 0, 0.0 ); | |||
integer iScriptCount = llGetInventoryNumber(INVENTORY_SCRIPT)-1; | |||
while(iScriptCount > -1) | |||
{ | |||
if(llGetInventoryName(INVENTORY_SCRIPT,iScriptCount) != Me) | |||
{ | |||
llRemoveInventory(llGetInventoryName(INVENTORY_SCRIPT,iScriptCount)); | |||
} | |||
iScriptCount--; | |||
} | |||
llOwnerSay("This Prim is Clean... "); | |||
llRemoveInventory( Me ); | |||
// vanish without a trace... | |||
} | |||
} | |||
</lsl> |
Revision as of 15:20, 20 April 2013
The Scrubber Originally by Jopsy Pendragon
- Toadified May 1, 2011 --Toady Nakamura
- Resets prim to default states and self-deletes.
- Will not remove your original script.
<lsl> default {
state_entry() { llSetSitText(""); llSetTouchText(""); llSetText("",<0,0,0>,1.0); llParticleSystem([]); llStopSound(); llSetTextureAnim(FALSE,ALL_SIDES,1,1,0,0,0.0); llTargetOmega(ZERO_VECTOR,0,0); llSitTarget(ZERO_VECTOR,ZERO_ROTATION); llSetCameraAtOffset(ZERO_VECTOR); llSetCameraEyeOffset(ZERO_VECTOR); llSetPayPrice(PAY_DEFAULT,[PAY_DEFAULT,PAY_DEFAULT,PAY_DEFAULT,PAY_DEFAULT]); llStopMoveToTarget(); llStopLookAt(); llVolumeDetect(FALSE); llCollisionFilter("", NULL_KEY, TRUE); llForceMouselook(FALSE); llPassCollisions(TRUE); llPassTouches(TRUE); llRemoveVehicleFlags(-1); llSetVehicleType(VEHICLE_TYPE_NONE); llSetRemoteScriptAccessPin(0); llSetBuoyancy(0.0); llSetForceAndTorque(ZERO_VECTOR,ZERO_VECTOR,FALSE) ; llOwnerSay("Prim Scrubbed Clean... "); llRemoveInventory( llGetScriptName() ); // vanish without a trace... }
} </lsl>
To scrub child prims too
This script also started with "The Scrubber" by Jopsy Pendragon, Feb 10 2006, Version 1
- Update Tigger Genira 27 November 2009 for self distribution
- Update WDC Voom 8 November 2010 for better child action.
Instructions:
Put this script in the root prim of a build which is giving you grief.
- It will distribute itself to all the prims in the link set and reset/unset most persistant prim settings that can only be set by scripts.
- Once it has sent the script to the child prims you MUST take the whole object into inventory.
- Re-rez the object
- Edit it and 'set all scripts to running in selection'
<lsl>
string Me; integer Pin=3141;
default {
state_entry() { Me = llGetScriptName(); if(llGetLinkNumber() == 1) { //root prim llOwnerSay("Inserted in root, sending to child prims"); integer i; for (i = 2; i <= llGetNumberOfPrims(); i++) { key prim_key = llGetLinkKey (i); llRemoteLoadScriptPin (prim_key, Me, Pin, TRUE, 0); } llOwnerSay("Done"); } llSetSitText( "" ); llSetTouchText( "" ); llParticleSystem( [ ] ); llSetText( "", ZERO_VECTOR, 1.0 ); llTargetOmega( ZERO_VECTOR, 0, 0 ); llSetCameraAtOffset( ZERO_VECTOR ); llSetCameraEyeOffset( ZERO_VECTOR ); llSitTarget( ZERO_VECTOR, ZERO_ROTATION ); llSetTextureAnim( FALSE , ALL_SIDES, 1, 1, 0, 0, 0.0 ); integer iScriptCount = llGetInventoryNumber(INVENTORY_SCRIPT)-1; while(iScriptCount > -1) { if(llGetInventoryName(INVENTORY_SCRIPT,iScriptCount) != Me) { llRemoveInventory(llGetInventoryName(INVENTORY_SCRIPT,iScriptCount)); } iScriptCount--; } llOwnerSay("This Prim is Clean... "); llRemoveInventory( Me ); // vanish without a trace... }
} </lsl>