breakTo: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category:[ _]?Scripting[ _]Commands[ _]Arma[ _]2(\|.*)]]" to "{{GameCategory|arma2|Scripting Commands}}")
m (better clarification.)
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma1 |Game name=
|game1= arma1
|version1= 1.00


|gr1= Program Flow |GROUP1=
|game2= arma2
|version2= 1.00


|game3= arma2oa
|version3= 1.50


|game4= tkoh
|version4= 1.00


|1.00|Game version=
|game5= arma3
____________________________________________________________________________________________
|version5= 0.50


| Breaks block to scope named '''name'''. Nil is returned.
|gr1= Program Flow


Scope name can be assigned using [[scopeName]] command. |DESCRIPTION=
|descr= Breaks block to scope named ''name''. Nil is returned.
____________________________________________________________________________________________


| '''breakTo''' name |SYNTAX=
Scope name can be assigned using [[scopeName]] command.


|p1= name: [[String]] |PARAMETER1=
|s1= [[breakTo]] name


| [[Nothing]] |RETURNVALUE=
|p1= name: [[String]]


|x1= <code>[[scopeName]] "main";
|r1= [[Nothing]]
while {[[true]]} do {
 
[[scopeName]] "loop1";
|x1= <sqf>scopeName "main";
while {[[true]]} do {
while { true } do
[[scopeName]] "loop2";
{
if (condition1) then {[[breakTo]] "main"}; // Breaks all scopes and return to "main"
scopeName "loop1";
if (condition2) then {[[breakOut]] "loop2"}; // Breaks scope named "loop2"
while { true } do
[[sleep]] 1;
{
scopeName "loop2";
if (condition1) then { breakTo "main" }; // breaks all scopes and return to "main"
if (condition2) then { breakOut "loop2" }; // breaks scope named "loop2"
sleep 1;
};
};
[[sleep]] 1;
sleep 1;
};
};</sqf>
</code> |EXAMPLE1=
____________________________________________________________________________________________
 
| [[scopeName]], [[breakOut]], [[exitWith]] |SEEALSO=


|seealso= [[scopeName]] [[breakOut]] [[exitWith]]
}}
}}


<h3 style="display:none">Notes</h3>
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->


<!-- Note Section END -->
<dt></dt>
</dl>
<dd class="notedate">Posted on 2017-05-18 - 18:19 (UTC)</dd>
 
<dt class="note">[[User:Nelis.75733126|Nelis.75733126]]</dt>
<h3 style="display:none">Bottom Section</h3>
 
[[Category:Scripting Commands|BREAKTO]]
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on May 18, 2017 - 18:19 (UTC)</dd>
<dt class="note">[[User:IT07|IT07]]</dt>
<dd class="note">
<dd class="note">
This command can not be used to re-execute scopes in which command is inside of. Example:
I wish to clarify the behaviour of this command by saying that the <sqf inline>breakTo</sqf> command will literally break the scope in which it has been placed, and continue reading whatever is after and outside of that scope.<br>
<code>scopeName "whatever";
Example:
if true then {
<sqf>scopeName "something";
  breakTo "whatever"
if true then
{
breakTo "something";
    _v = 0; // this line will be skipped
};
};
</code>
_a = 0; // this is where script execution will jump to.</sqf>
The example above will not make the engine jump back to line 1 and re-execute the 2nd line. Instead, it will just jump across line 2 to line 5 if it [ line 5 ] exists.
</dd>
</dd>
</dl>
</dl>
<!-- DISCONTINUE Notes -->

Revision as of 20:57, 16 April 2024

Hover & click on the images for description

Description

Description:
Breaks block to scope named name. Nil is returned. Scope name can be assigned using scopeName command.
Groups:
Program Flow

Syntax

Syntax:
breakTo name
Parameters:
name: String
Return Value:
Nothing

Examples

Example 1:
scopeName "main"; while { true } do { scopeName "loop1"; while { true } do { scopeName "loop2"; if (condition1) then { breakTo "main" }; // breaks all scopes and return to "main" if (condition2) then { breakOut "loop2" }; // breaks scope named "loop2" sleep 1; }; sleep 1; };

Additional Information

See also:
scopeName breakOut exitWith

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
Posted on 2017-05-18 - 18:19 (UTC)
Nelis.75733126
I wish to clarify the behaviour of this command by saying that the breakTo command will literally break the scope in which it has been placed, and continue reading whatever is after and outside of that scope.
Example:
scopeName "something"; if true then { breakTo "something"; _v = 0; // this line will be skipped }; _a = 0; // this is where script execution will jump to.