Переменные имеют вид имен, окруженных символами '%', например %actor%.

Перед обработкой команды, строка сканируется и все переменные заменяются на их значения. Сначала проверяется список локальных переменных. Если такой переменной не найдено, проверяются глобальные переменные. Если переменная все еще не найдена, проверяется список 'встроенных' переменных (не тех, которые определяются скриптом). Если переменная не найдена, она будет замещена пустой строкой (строка с процентами будет убрана из текста и ничего не останется на ее месте). Два знака '%', следующих сразу друг за другом будут интерпретированы как одиночный '%'.

Есть два типа переменных, локальные и глобальные. Все локальные переменные удаляются когда триггер заканчивает работу и могут использовать только этим триггером. Глобальные переменные остаются пока их не уберут командой unset или не будет удален скрипт.

У глобальных переменных есто так же параметр context. Параметр context есть так же и у скрипта. По умолчанию он равен нулю. С помощью команды 'context <value>' можно установить context скрипта в любое целое положительное значение. Сontext глобальной переменной всегда устанавливается в текущее (в момент объявления ее глобальной) значение context'a скрипта.
Если context глобальной переменной равен нулю или текущему значению context'a скрипта - она будет 'видна'. В противном случае она будет недоступна для работы с ней.

Имена и поля переменных чувствительны к регистрам.


Поля переменных

Чтобы получить поле, используйте синтаксис %переменная.поле%. Допустимые поля для каждого типа игровых объектов указаны ниже.

Переменная actor

Поле

Описание поля

alias Список алиасов персонажа.
align Наклонности персонажа в числовой (!) форме.
canbeseen Истина если персонаж виден мобу (всегда истина в триггерах предметов и комнат).
str, int, wis, con, dex, cha Параметры персонажа (сила, интеллект, мудрость, ловкость, харизма).
class Профессия персонажа в виде строки. (Маг/Жрец/Вор/Воин/..)
stradd Количество возможных тренировок параметров персонажа.
eq(позиция) Предмет одетый на персонаже на позиции, если такой есть. Позиция может быть задана как числом так и названием (голова, тело, и тд.)
gold Количество денег у персонажа.
id Уникальный id-номер персонажа.
level Уровень персонажа.
name Имя персонажа (короткое описание для мобов).
rname, dname, vname, tname, pname Имя персонажа в родительном, дательном, винительном, творительном или предложном падежах.
next_in_room Следующий персонаж в комнате, если такой отсутствует возвращается пустое значение.
race Раса персонажа, в виде числа (!).
fighting Возвращает ID того с кем сражается персонаж, иначе возвращает nobody.
room Vnum комнаты, в которой находится персонаж.
sex Пол персонажа, как строка (Neutral, Male, Female).
skill(умение) Возвращает умение в процентах. Пример: %actor.skill(спрятаться)%.
vnum Виртуальный номер персонажа. -1 для игроков.
weight Вес персонажа.
size Размер персонажа.
slava Количество славы у игрока. (Адамант МАД).
haveobj(vnum) Имеет ли персонаж предмет vnum
Возвращаемые значения:
none - нет
inv - предмет находится в инвентори
eq - предмет надет
Предметы в предметах не видит.

Предметы

Поле

Описание поля

id Уникальный id-номер предмета
name Список алиасов предмета
shortdesc Короткое описание предмета
type Тип предмета - например WAND, ARMOR, или KEY
val0 Value 0 of the object, defined in values.doc
val1 Value 1 of the object, defined in values.doc
val2 Value 2 of the object, defined in values.doc.
val3 Value 3 of the object, defined in values.doc
vnum Виртуальный номер предмета

Комнаты

Поле

Описание поля

id Уникальный id-номер комнаты
name Название комнаты
direction (north/south/east/west/up/down) Список флагов выхода в указанном направлении
vnum Виртуальный номер комнаты
people Возвращает первого персонажа в комнате, или пустое значение

Текстовые переменные

Это переменная %speech% или любая переменная созданная в триггере и содержащая текст.

Поле

Описание поля

strlen Возвращает количество символов в тексте
trim Возвращает текст без пробелов в начале и конце.
car Возвращает первое слово из текста. Например для %text% ="Это текстовая переменная" %text.car% вернет значение "Это"
cdr Возвращает текст без первого слова и с обрезанными пробелами в начале и конце. Например для %text%="Это текстовая переменная" %text.cdr% вернет значение "текстовая"

Специальные переменные

Поле

Описание поля

self Объект (моб, предмет или комната) которому принадлежит скрипт. Все поля для переменной соответствующего типа могут быть использованы.
time.<поле> Полем может быть hour, day, month, или year. Возвращает час, день, месяц или год текущего времени МАДа.
peop