X39 – User talk

From Bohemia Interactive Community
Revision as of 11:20, 23 April 2018 by X39 (talk | contribs) (Started rewriting https://community.bistudio.com/wiki/SQF_syntax)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Status Quo Function is the successor of Status Quo Script which is deprecated since Armed Assault.

Language Structure

The SQF Language is fairly simple in how it is built. In fact: there are barely any actual language structures at all.

The functionality is provided via so called operators (or more commonly known). Those operators are one of the following types: Nular, Unary or Binary.

Nular Operators

A Nular Operator is more or less a computed variable. Each time accessed, it will return the current state of something. However, it will not automatically update when its state has changed.

Consider following example on a map with eg. 5 units:

//Put the result of allUnits into a variable.
_unitsArray = allUnits;
//Display the current array size using systemChat.
systemChat str count _unitsArray;
//Create a new unit in the player group.
group player createUnit ["B_RangeMaster_F", position player, [], 0, "FORM"];
//Output the array size again
systemChat str count _unitsArray;
//Output the size of allUnits
systemChat str count allUnits;

Now, what would the output of this look like?

System: 5
System: 5
System: 6

As you can see, _unitsArray was not automatically updated. The reason for this is because allUnits and other Nular commands just return the current state of something and do not return a reference to eg. an Array containing all units. It is generated each time, which is why some of theese commands are extensive

Unary Operators

Binary Operators

Rules Of Precedence

Lowest Precedence 1 || or
2 && and
3 == != > < >= <= >>
4 ALL BINARY OPERATORS
5 else
6 + - max min
7 * / % mod atan2
8 ^
9 ALL UNARY OPERATORS
Highest Precedence 10 ALL NULAR OPERATORS, VARIABLES OR VALUES