goto: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(Somewhat improved formatting and clarified.)
No edit summary
Line 1: Line 1:
[[Category:Scripting Commands|GOTO]]
{{Command|= Comments
[[Category:Scripting Commands OFP 1.96|GOTO]]
____________________________________________________________________________________________
[[Category:Scripting Commands OFP 1.46|GOTO]]
[[Category:Scripting Commands ArmA|GOTO]]
[[Category:Armed Assault: Control Flows|GOTO]]


| ofp |= Game name


<h2 style="color:#000066"> '''goto ''label'''''</h2>
|1.00|= Game version
____________________________________________________________________________________________


| 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 #. |= Description
____________________________________________________________________________________________


'''Operand types:'''
| '''goto''' |= Syntax


'''label:''' [[String]]
|p1= label: [[String]] |= Parameter 1


'''Type of returned value:'''
| [[Nothing]] |= Return value
____________________________________________________________________________________________


[[Nothing]]
|  |= See also


'''Description:'''
}}


In script only: Go to given '''label'''.<br>
<h3 style="display:none">Notes</h3>
'''Note:''' String argument is used here.<br>
<dl class="command_description">
Be sure to use double quotes around label name in '''goto'''.
<!-- Note Section BEGIN -->


Define the label with '''#'''.
<!-- Note Section END -->
</dl>


 
<h3 style="display:none">Bottom Section</h3>
'''Example:'''
Old Notes (temporary):
 
'''''goto''' "Skip"''
  ''these lines''
  ''will be''
  ''skipped''
''#Skip
 
 
 
'''Comments:'''


* This function works only inside of [[Script syntax|SQS script]].
* This function works only inside of [[Script syntax|SQS script]].
*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.
* Because of the searching order, it is faster to place loops which are executed often at the top of a script.
* Because of the searching order, it is faster to place loops which are executed often 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''
  ''#wait''
Line 60: Line 50:
*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.
*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.
*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.
*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 even a [[Script syntax|@]] statement to detect a condition is a complicated matter and should be subject to experimentation.
*Deciding whether to use a script with a loop or a trigger or even a [[Script syntax|@]] statement to detect a condition is a complicated matter and should be subject to experimentation.
[[Category:Scripting Commands|GOTO]]
[[Category:Scripting Commands OFP 1.96|GOTO]]
[[Category:Scripting Commands OFP 1.46|GOTO]]
[[Category:Scripting Commands ArmA|GOTO]]
[[Category:Armed Assault: Control Flows|GOTO]]

Revision as of 01:26, 2 August 2006

Hover & click on the images for description

Description

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 #.
Groups:
Uncategorised

Syntax

Syntax:
goto
Parameters:
label: String
Return Value:
Nothing

Examples

Examples:
Example needed

Additional Information

See also:
See also needed

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Bottom Section

Old Notes (temporary):

  • This function works only inside of SQS script.
  • 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.
  • Because of the searching order, it is faster to place loops which are executed often 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 even a @ statement to detect a condition is a complicated matter and should be subject to experimentation.