Константы

Константа представляет собой идентификатор, которому присваивается определенное значение. В отличие от переменных значение константы не может изменяться. При компиляции имя константы заменяется на то значение, которое ей было присвоено. Константы могут быть числовыми (числа, имена моделей или метки) или строковыми, а также содержать в себе выражение.

Костанты объявляются статически или динамически. Каждый режим редактирования может загрузить статические определения констант из внешнего файла при помощи параметра <constants> в modes.xml. Динамические определения создаются в скрипте при помощи синтаксиса, описанного ниже.

Объявление констант

Для объявления константы используется конструкция CONST..END:

CONST <имя константы> = <значение> END

Именем константы может быть любая комбинация букв, цифр и _, которая не повторяет зарезервированные компилятором имена, такие как Continue, Break, And (см. файл compiler.ini). Значением константы может быть число (а также имя модели или метка), строковый литерал, переменная (а также свойство класса), другая константа.

const
MoneyRequired = 30
PlayerMoney = $PLAYER_CHAR.Money
end
if
PlayerMoney > MoneyRequired
then
PlayerMoney += -1
end

Во время компиляции константа MoneyRequired будет заменена на число 30 , а PlayerMoney на $PLAYER_CHAR.Money.

Если языковая служба включена, список констант можно увидеть при нажатии Ctrl+пробел.

Ограничения

Константы могут использоваться везде, кроме случая:

const
VarName = $Var
IndexName = 25
end
VarName[IndexName] = 0

Чтобы скомпилировать такое выражение, нужно указать номер опкода:

0004: VarName[IndexName] = 0

Также существуют ограничения на использование выражений в качестве константы.