Специальные типы переменных
Ты конечно можешь использовать обычный val
val staticVariable: String = "Эта переменая - не изменяемая"
Но если нужно сохранить денные этой переменной, то оно не сработает, т.к. после перезапуска скрипта - значение переменной сбросится. На такой случай есть 3 специальных типа переменных:
// Переменаня, которая сохраняет значение пока скрипт работает //
// Не совместим с var //
val lazyVariable by lazy { ... }
// Переменная, которая имеет память и сохраняет её до выхода из мира //
var runtimeVariable by runtime { ... }
// Переменная, которая имеет гига-память //
// т.е. даже после перезахода в игру - она сохранит своё значение //
val saveableVariable by saveable { ... }
И уже в
{ ...}
вы можете записать как и обычное значение:var health by lazy {10}
, так и целые кусочки кода:
var moneys by saveable {
If({ me().health >= 10f }) {
620
} Else {
0
}
}
Да, есть ещё конечно и var
- но работать так как обычно он должен работать - не
будет в скриптах.
Именно по этому для скриптов есть универсальный метод next
:
next {
код, который должен будет выполнятся во время работы скрипта, а не во время
его компиляции.
}
Пример
var dynamicVariable = "Это динамическая переменная"
next { dynamicVariable = "Теперь тут хранится совершенно другое"}
next {
val privateVariable = 10 // До неё не достучаться вне next
dynamicVariable = "Здесь есть число $privateVariable"
}