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 );

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.
All Issues ~ Search JIRA for related Bugs

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

All Issues

~ Search JIRA for related Issues
   Scripts deactivated by llSetScriptState are reset when the region is reset, when they are taken into inventory and re-rezzed and when crossing sim boundaries.

Signature

function void llSetScriptState( string name, integer run );