Code: Difference between revisions

From Bohemia Interactive Community
Category: Data Types
m (Some wiki formatting)
(Remove String'ed code information, leave it for Code vs. Strings)
Line 1: Line 1:
'''Code''' represents data consisting of commands and their parameters. The contents of [[SQF Syntax|SQF]] and [[SQS Syntax|SQS]] files, for example are 'Code'.
'''Code''' represents data consisting of commands and their parameters.
In turn, it can also be the case that one of the scripting commands gets passed further scripting commands, e.g.
The contents of [[SQF Syntax|SQF]] and [[SQS Syntax|SQS]] files, for example are 'Code'.
<sqf inline>while { code } do { code }; unit addEventHandler ["EventHandlerType", { code }]; onMapSingleClick "Code"</sqf>.
In turn, it can also be the case that one of the scripting commands gets passed further scripting commands. Examples:
 
<sqf>
Code literals (or code '''blocks''') are usually represented by enclosing text into curly braces: <sqf inline>{</sqf> and <sqf inline>}</sqf>.
while { alive player } do { sleep 1; hintSilent format ["Health: %1/100", round ((1 - damage player) * 100)]; };
Any such code is precompiled by the script engine. Sometimes it may become necessary to first read in certain commands as [[String]].
unit addEventHandler ["Killed", { systemChat format ["%1 is dead", name (_this select 0)]; }];
In order to convert code from data type String into data type Code, the command [[compile]] can be used. See [[Code vs. Strings]] for more information on code data typing.
onMapSingleClick { systemChat format ["You clicked at %1", _pos]; };
</sqf>




== Examples ==
{{Feature|informative|See [[Code vs. Strings]] for more information on code/string data typing.}}
 
<sqf>{ _x setDamage 1 } forEach ArrayToKill</sqf>
<sqf>
private _codeToExecute = { hint "it works!" };
private _codeStr = toString _codeToExecute; // ' hint "it works!" '
 
call _codeToExecute; // identical to
call compile _codeStr;
</sqf>




[[Category: Data Types]]
[[Category: Data Types]]

Revision as of 17:35, 2 March 2026

Code represents data consisting of commands and their parameters. The contents of SQF and SQS files, for example are 'Code'. In turn, it can also be the case that one of the scripting commands gets passed further scripting commands. Examples:

while { alive player } do { sleep 1; hintSilent format ["Health: %1/100", round ((1 - damage player) * 100)]; }; unit addEventHandler ["Killed", { systemChat format ["%1 is dead", name (_this select 0)]; }]; onMapSingleClick { systemChat format ["You clicked at %1", _pos]; };


See Code vs. Strings for more information on code/string data typing.