АрдаАрда


Новости

Арда

Карта мира

Кладезь знаний

Библиотека

Творцам

Беседы у огня

Бессмертные

На распутьи

Фото

Кто есть кто



Програмирование zMUD. Переменные.

Переменные в Tintin предназначены для сохранения значений - числовых или строковых. На самом деле, все переменные являются строковыми значениями, но при попытке применить арифметическую операцию к переменной, ее значение сначала рассматривается как числовое, и, если это удалось, то применяется операция по правилам работы с числами. В противном случае, работа с переменной осуществляется как работа со строкой.

Синтаксис.

#var <имя_переменной> <значение> [<значение_по_умолчанию>] [<класс>] #variable <имя_переменной> <значение> [<значение_по_умолчанию>] [<класс>] // В некоторых версиях Tintin можно вместо ключевого слова VAR использовать слово // FUNCTION, или только его. #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 осуществляет сцепку строк мойПет=%concat("хомЯчок"," ","убийца") // Правильное арифметическое вычисление всегоКвестОчков=%eval(@всегоКвестОчков+%1) // Неправильное арифметическое вычисление всегоКвестОчков=@всегоКвестОчков+%1

Отложенная ссылка на переменную.

Помимо всего прочего, ссылаться на переменную можно не непосредственно по ее имени, но и по значению другой переменной или параметра алиаса. К примеру, алиас, который увеличивает значение любой переменной на 1 при условии, что параметром алиаса является имя этой переменной.

#alias инкремент { %1=%eval(@%1+1) } // Пример вызова инкремент текущееВремя

В оглавление