Watchdog: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 21: | Line 21: | ||
llResetOtherScript(watchee); | llResetOtherScript(watchee); | ||
llSetScriptState(watchee, TRUE); | llSetScriptState(watchee, TRUE); | ||
llRegionSay(DEBUG_CHANNEL, "Watchdog Trip: The script "+watchee+" has crashed and has been restarted."); | llRegionSay(DEBUG_CHANNEL, "Watchdog Trip: The script ["+watchee+"] has crashed and has been restarted."); | ||
llSleep(1); | llSleep(1); | ||
llResetScript(); | llResetScript(); | ||
Revision as of 01:36, 17 January 2012
LSL WATCHDOG
These are some simple scripts that watch other scripts in the same prim and restarts them if they crash.
BASIC LSL WATCHDOG FOR A SINGLE PRIMARY SCRIPT <lsl> // Basic LSL Watchdog Script to watch a single script // 2012-01-17 By Tika Oberueng // Released to the public domain. // You break it, you get to keep both pieces. // string watchee = "New Script"; // Set this to the name of a script in prim inventory to watch
default {
state_entry() {
llSetTimerEvent(10); // Set this to desired watchdog interval. Probably best to leave quite high.
}
timer() {
llSetTimerEvent(0);
if (!llGetScriptState(watchee)) {
llResetOtherScript(watchee);
llSetScriptState(watchee, TRUE);
llRegionSay(DEBUG_CHANNEL, "Watchdog Trip: The script ["+watchee+"] has crashed and has been restarted.");
llSleep(1);
llResetScript();
}
}
} </lsl>
BASIC LSL WATCHDOG FOR MULTIPLE SCRIPTS <lsl> // Basic LSL Watchdog Script to watch all other scripts // 2012-01-17 By Tika Oberueng // Released to the public domain. // You break it, you get to keep both pieces. // </lsl>