Constants
A constant is an identifier with an associated predefined value. The identifier must be unique in the current compilation context (the main source file and all includes).
In compile-time the constant gets replaced with the value associated with it, e.g., a number or a string literal. Contrary to a variable the value of the constant cannot be changed in run-time.
Constants are declared either statically or dynamically. Each edit mode can load static constant definitions from a file using the
<constants>
parameter in the modes.xml
. Dynamic declarations get created in the script code with the syntax outlined below.To declare a new constant in the code, use the
const
keyword.const <constant name> = <constant value>
A constant name is any allowed identifier (a combination of letters, numbers and
_
). There are names reserved by the compiler that cannot be used, such as Continue
, Break
, And
etc. (see compiler.ini)
.
A constant value might be a number (also a model identifier or a label); a string literal; a variable (also a class property); another constant.For example:
const x = 5
You can declare multiple constants separating each declaration with a comma like this:
const a = 1, b = 2, c = 3
If you prefer to have each declaration on its own line, conclude them in a
CONST..END
construct:const
a = 1
b = 2
c = 3
end
More complex example:
var
$PLAYER_CHAR: Player
end
const
MoneyRequired = 30
PlayerMoney = $PLAYER_CHAR.Money
end
if
PlayerMoney > MoneyRequired
then
PlayerMoney += -1
end
During compilation the constant
MoneyRequired
gets replaced with the number 30
and PlayerMoney
with $PLAYER_CHAR.Money
Last modified 1mo ago