Програмирование zMUD. Переменные.
Переменные в Tintin предназначены для
сохранения значений - числовых или
строковых. На самом деле, все переменные
являются строковыми значениями, но при
попытке применить арифметическую операцию
к переменной, ее значение сначала
рассматривается как числовое, и, если это
удалось, то применяется операция по
правилам работы с числами. В противном
случае, работа с переменной осуществляется
как работа со строкой.
Синтаксис.
#
var <
имя_переменной> <
значение> [<
значение_по_умолчанию>] [<
класс>]
#
variable <
имя_переменной> <
значение> [<
значение_по_умолчанию>] [<
класс>]
#
function <
имя_переменной> <
значение> [<
значение_по_умолчанию>] [<
класс>]
С именем переменной все понятно...
Значение - это строка или число, вобщем, тоже
все понятно. Значение по умолчанию - это то
значение, которое будет приобретать
переменная при загрузке zMUD, класс - тоже все
ясно (кому не ясно - см. Главу 01). В случае,
если в значении переменной содержатся
пробелы, необходимо указывать такое
значение в кавычках.
#
variable всегоКвестОчков 10000
_nodef {Miscellaneous|Quest}
#
variable текущееВремя 0 0 {Miscellaneous|Timer}
#
variable мойПет "хомЯчок"
Здесь ключевое слово _nodef означает, что
переменная не имеет значения по умолчанию.
Для того, чтобы получить доступ к значению
переменной, необходимо указать ее имя,
предварив его символом @ (в zMUD по умолчанию).
#
if (@всегоКвестОчков>1000) {yell Ура! У меня @всегоКвестОчков купы!}
Для того, чтобы поместить в переменную
какое-то значение, ее необходимо создать
заново. Если она уже создана, то можно не
указывать значение по умолчанию и класс
переменной.
Для работы с численными переменными в Tintin
предусмотрена команда #add. В случае, если
либо сама переменная содержит строковую
величину, либо параметр команды, вместо
сложения величин будет выполнена сцепка
строк.
#
add <
имя_переменной> <
значение>
#
add всегоКвестОчков 500
#
add текущееВремя 1
#
add мойПет " убийца"
По мимо команды add Tintin, в zMUD есть
команда #sub, имеющая такой же синтаксис,
но осуществляющая вычитание для числовых
значений.
В случае, если настройки МАД-клиента
позволяют (в zMUD это так), переменной можно
присваивать непосредственное значение.
мойПет="хомЯчок"
всегоКвестОчков=10000
Если на момент присваивания переменная не
существует, она будет создана с классом none
и отсутствующим значением по умолчанию.
Переменной можно также присваивать
результаты вычисления функций. В случае,
если вы хотите присвоить переменной
результат некоторых арифметических
вычислений, необходимо использовать
встроенную функцию %eval, иначе строка
вычислений будет рассматриваться как
строковая константа.
мойПет=%
concat("хомЯчок"," ","убийца")
всегоКвестОчков=%
eval(@всегоКвестОчков+%1)
всегоКвестОчков=@всегоКвестОчков+%1
Отложенная ссылка на переменную.
Помимо всего прочего, ссылаться на
переменную можно не непосредственно по ее
имени, но и по значению другой переменной
или параметра алиаса. К примеру, алиас,
который увеличивает значение любой
переменной на 1 при условии, что параметром
алиаса является имя этой переменной.
#
alias инкремент {
%1=%
eval(@%1+1)
}
инкремент текущееВремя