llGetScriptState
		
		
		
		Jump to navigation
		Jump to search
		
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | 
Caveats
- If script is missing from the prim's inventory or it is not a script then an error is shouted on DEBUG_CHANNEL.
Examples
default
{
    touch_start(integer num_detected)
    {
        integer numberOfScripts = llGetInventoryNumber(INVENTORY_SCRIPT);
        integer index;
        do
        {
            string scriptName = llGetInventoryName(INVENTORY_SCRIPT, index);
            integer scriptState = llGetScriptState(scriptName);
        //  default value
            string output = "FALSE";
        //  else
            if (scriptState) output = "TRUE";
            // PUBLIC_CHANNEL has the integer value 0
            llSay(PUBLIC_CHANNEL,
                "Script named '" + scriptName + "' has current script state '" + output + "'.");
        }
        while (++index < numberOfScripts);
    }
}
// Monitor other scripts in the object, then report, restart or both if some have crashed
// NB: cannot distinguish a manually stopped script or restart one
integer TRY_RESTART = FALSE;
integer REPORT = TRUE;
default
{
    state_entry() {
        // monitoring rate = once per minute
        llSetTimerEvent(60);
    }
    
    timer() {
        integer i = llGetInventoryNumber(INVENTORY_SCRIPT);
        string script_name;
        list stopped;
        
        while(--i >= 0) {
            // the script will also monitor itself, but there is little reason to specifically skip
            script_name = llGetInventoryName(INVENTORY_SCRIPT, i);
            if(!llGetScriptState(script_name)) {
                if(TRY_RESTART)
                    llResetOtherScript(script_name);
                if(REPORT)
                    stopped += script_name;
            }
        }
        if(stopped) {
            string message = "The following scripts were crashed/stopped: " + llList2CSV(stopped) + ".";
            if(TRY_RESTART)
                message += " A restart was attempted.";
            llInstantMessage(llGetOwner(), message);
        }
    }
}
See Also
Functions
| • | llSetScriptState | |||
| • | llResetOtherScript | 
Deep Notes
History
- There was a time when llGetScriptState would return TRUE even if the script had encountered a run-time error. This is no longer the case.
| Signature | 
|---|
| function integer llGetScriptState( string script ); |