goto: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 37: | Line 37: | ||
'''Comments:''' | '''Comments:''' | ||
*The search for labels always begins at the top of the script so that if there are multiple occurrences of a label the first occurrence will always be the one found. | *The search for labels always begins at the top of the script so that if there are multiple occurrences of a label the first occurrence will always be the one found. | ||
Furthermore, loops which are executed often, should be placed at the top of a script. | |||
*Labels are not case sensitive. | *Labels are not case sensitive. | ||
*Loops which look something like the example below should be avoided as many of them could cause the mission to slow down | *Loops which look something like the example below should be avoided as many of them could cause the mission to slow down: | ||
''#wait'' | |||
''[[if]] (condition) [[then]] {'''goto''' "wait"}'' | |||
It is better to use the [[Script syntax|@]] command to wait for a condition to be true, or put a small delay into the wait loop. | It is better to use the [[Script syntax|@]] command to wait for a condition to be true, or put a small delay into the wait loop. | ||
*While it is not required to include a delay in a loop, such a loop without a delay can cause the script to slow | Example | ||
*While it is not required to include a delay in a loop, such a loop without a delay can cause the script to slow the game down, as the loop will be executed many times before the game engine interrupts the script. | |||
Unless you really want the loop to execute multiple times during a frame, you should include a small delay. | |||
You would need to have many scripts running for this to be a significant issue. | |||
*Deciding whether to use a script with a loop or a trigger or | *Deciding whether to use a script with a loop or a trigger or a [[Script syntax|@]] statement to detect a condition is a complicated matter and should be subject to experimentation. |
Revision as of 03:20, 3 July 2006
goto label
Operand types:
label: String
Type of returned value:
Description:
In script only: Go to given label.
Note: String argument is used here.
Be sure to use double quotes around label name in goto.
Define the label with #.
Example:
goto "Skip"
. these lines
. will be
. skipped
#Skip
Comments:
- The search for labels always begins at the top of the script so that if there are multiple occurrences of a label the first occurrence will always be the one found.
Furthermore, loops which are executed often, should be placed at the top of a script.
- Labels are not case sensitive.
- Loops which look something like the example below should be avoided as many of them could cause the mission to slow down:
#wait
if (condition) then {goto "wait"}
It is better to use the @ command to wait for a condition to be true, or put a small delay into the wait loop.
Example
- While it is not required to include a delay in a loop, such a loop without a delay can cause the script to slow the game down, as the loop will be executed many times before the game engine interrupts the script.
Unless you really want the loop to execute multiple times during a frame, you should include a small delay.
You would need to have many scripts running for this to be a significant issue.
- Deciding whether to use a script with a loop or a trigger or a @ statement to detect a condition is a complicated matter and should be subject to experimentation.