Difference between revisions of "LlSetScriptState"

From Second Life Wiki
Jump to navigation Jump to search
(backed out last change (wrong function!))
(Added note that scripts sent via llGiveInventory can't be started, but llRemoteLoadScriptPin(running=false) can be started.)
Line 10: Line 10:
|spec
|spec
|caveats=*Cannot be used to restart a script that has encoutered a {{LSLGC|Error|run-time error}}.
|caveats=*Cannot be used to restart a script that has encoutered a {{LSLGC|Error|run-time error}}.
*Cannot be used to start a script that has been added via [[llGiveInventory]].  Scripts sent via [[llRemoteLoadScriptPin]], and which have the running state set FALSE by that command, may be started.
*The script appears to stop when its time slice ends, not sooner. If a script tries to stop itself then some LSL code following the llSetScriptState call may be executed before the script stops.
*The script appears to stop when its time slice ends, not sooner. If a script tries to stop itself then some LSL code following the llSetScriptState call may be executed before the script stops.
|constants
|constants

Revision as of 00:46, 23 November 2009

Summary

Function: llSetScriptState( string name, integer run );
0.0 Forced Delay
10.0 Energy

Set the running state of the script name.

• string name a script in the inventory of the prim this script is in
• integer run boolean, if FALSE the script will be disabled.

Caveats

  • If name is missing from the prim's inventory or it is not a script then an error is shouted on DEBUG_CHANNEL.
  • Cannot be used to restart a script that has encoutered a run-time error.
  • Cannot be used to start a script that has been added via llGiveInventory. Scripts sent via llRemoteLoadScriptPin, and which have the running state set FALSE by that command, may be started.
  • The script appears to stop when its time slice ends, not sooner. If a script tries to stop itself then some LSL code following the llSetScriptState call may be executed before the script stops.

Examples

<lsl>//Stops the Script, at some non-deterministic time later, until invoked with TRUE, in another script llSetScriptState(llGetScriptName(),FALSE); // Stall until end of time slice llSleep(0.1);</lsl> <lsl>//Starts Another Script

llSetScriptState("somescript",TRUE);</lsl>

See Also

Functions

•  llGetScriptState
•  llResetOtherScript

Deep Notes

Signature

function void llSetScriptState( string name, integer run );