* текст
Символ '*' в начале строки означает комментарий. Вся строка игнорируется
интерпретатором триггеров.
attach vnum id
Назначить триггер с номером vnum мобу, пердмету или комнате с номером id. Внимание! Не путать
id с
vnum.
global переменная
Команда global делает переменную глобальной. Заметим, что эта переменная является
глобальной только в рамках одного скрипта, в котором она была объявлена глобальной.
context значение
Меняет содержимое параметра context скрипта
на значение (целое положительное число).
Когда скрипт начинает работать, его context
равен 0. Когда переменная объявляется глобальной, ее
context будет установлен в значение параметра
context скрипта. Для того чтобы глобальная
переменная бала найдена при обращении к ней, необходимо чтобы ее
context был равен 0 или текущему значению
параметра context скрипта. Подробнее об
этом параметре и примерах его использования смотрите в разделе
Переменные.
dg_cast 'заклинание' цель
Триггер в котором выполнилась эта команда вызовет колдование 'заклинания',
причем таким образом, как будто персонаж в игре сам произнес это 'заклинание'.
Если это триггер моба - моб в действительности произнесет данное
'заклинание', в противном случае (триггер предмета или комнаты) будет загружен
специальный моб (которого вам создавать не нужно, он уже существует) для того
чтобы произнести 'заклинание', и сразу после этого будет уничтожен. Заклинания
с групповыми аффектами не могут быть вызваны этой командой. Внимание! Пользуйтесь этой командой осторожно.
Заклинания произносимые с помощью этой команды будут успешными даже в не_магических
комнатах, а агрессивные заклинания будут успешными и в мирных комнатах.
eval переменная выражение
Эта команда вычисляет значение выражения и устанавливает значение
переменной в результат. О том как производятся вычисления
выражения смотрите в разделе
Выражения.
Пример: eval foobar 15 - 5
устанавливает переменную foobar
в значение 10.
break
Прекращает выполнение switch
блока. Смотри
switch для более подробных объяснений.
case условие
Определяет группу команд внутри switch
блока. (Смотри
switch
ниже.)
default
Используется в switch блоке.
Определяет группу команд, которая будет выполнена если
switch-выражение не совпало
ни с одним case-условием.
(Смотри switch
ниже.)
done
Завершает switch или
while блок.
detach vnum id
Убирает триггер с номером vnum с объекта (моба, предмета
или комнаты) с номером id.
extract переменная номер_слова текст
Устанавливает значение переменной (если такой не существует - создается новая)
в слово номер номер_слова из текста. Имя переменной не заключается
в %.
if выражение1
...
elseif (выражение2)
...
else
...
end
Команда if должна предшествовать командам
elseif (необязательная команда),
else (необязательная команда), и
end.
Если выражение1 является истиной, то выполняются все команды между
if и следующим
elseif, else или
end.
Если выполнение команд остановилось на
elseif или
else - ищется следующая команда
end и выполнение команд продолжается с
этой точки.
Если выражение1 является ложью ищется следующая команда
elseif, else или
end.
Если встречается команда
else - выполняются все команды следующие за
else до команды
end.
Если встречается команда
elseif - проверяется значение
выражения2.
Если выражение2 равняется истине -
то выполняются все команды между
elseif и следующим
elseif, else или
end и затем ищется конец блока -
(end).
Если выражение2 является ложью ищется следующая команда
elseif, else или
end и тд.
halt
Эта команда прекращает выполнение триггера. Триггер возвратит значение 1,
если другое значение не было задано командой
return
makeuid переменная id
Создает новую переменную, которая идентифицирует игрока, моба или предмет с этим
id-номером. Все поля этой переменной устанавливаются в значения
соответствующие этому игроку, мобу или предмету.
remote переменная id
Копирует переменную в список глобальных переменных скрипта принадлежащего
мобу, предмету или комнате с этим id.
return значение
Return изменяет возвращаемое значение триггера.
Значение возвращается после выполнения всех команд триггера, или при выполнении команд
wait или halt.
В отличие от большинства языков программирования, return
не прекращает выполнение триггера.
set переменная выражение
Устанавливает значение переменной в выражение без вычисления
значения выражения.
Пример: set foobar 15 - 5
Устанавливает значение переменной foobar в "15 - 5"
switch выражение
case условие1
...
break
case условие2
...
break
case условие3
...
break
default
...
done
Switch начинает блок выбора по условию.
Среди условий (условие1, условие2, условие3 ...) ищется
равное выражению.
Если такое найдено, то выполняется список команд между этой командой
case и командой
break или done.
Если такого не найдено, то выполняется список команд между командами
default и
break или done.
Пример:
* Сначала выберем число между 1 и 3
eval number %random.3%
* Теперь произведем некоторые действия в зависимости от того,
чему равно значение переменной number
switch %number%
case 3
say number равен трем
break
case 2
say number равен двум
break
default
say очевидно, что number равен одному
break
done
Обратите внимание, что только команда break прерывает
выполнение списка команд. То есть, если например %number% будет равен 3-м, и мы не поставим
команду break перед командой
'case 2', то команда
'say number равен двум' тоже будет отработана.
unset переменная
Уничтожает переменную если она существует.
version
Отсылает номер версии интерпретатора скриптов в лог МАДа.
wait продолжительность
wait until время
Приостанавливает выполнение триггера на определенный промежуток времени.
Если продолжительность - просто число, то пауза будет равна такому количеству
так называемым игровым пульсам (примерно 0.1 секунды).
Если за параметром продолжительность стоит символ 's' - пауза будет равна
такому количеству секунд.
Если за параметром продолжительность стоит символ 't' -
пауза будет равна такому количеству игровых тиков.
Если используется wait until - триггер
будет приостановлен до времени. Время может задаваться в двух форматах:
HH:MM или HHMM (14:30 или 1430).
while выражение
Начинает блок цикла. Блок содержит серию команд, которые будут выполняться до тех пор,
пока выражение не станет ложным. Блок заканчивается командой
done.
Игровые команды
Обычные игровые команды могут быть использованы в триггерах. Каждый тип игрового объекта
(моб, комната или предмет) может пользоваться всеми доступными ему командами.
Замечание.
Базовый CircleMUD не позволяет мобам колдовать заклинания таким образом.
Команды мобов
Мобы могут использовать любые игровые команды, доступные игроку такого же класса и уровня,
а так же нижеследующие команды.
masound сообщение
Выдает сообщение во все комнаты соединенные выходами с комнатой в которой находится
моб, которому принадлежит этот триггер.
mat цель команда Команда выполняется мобом на (в) указанной цели. Целью может быть
номер комнаты (vnum), имя игрока или предмета. Целью не может быть private или god комната.
Командой может быть любая доступная мобу команда.
mdoor комната направление поле [значение]
Смотри wdoor ниже.
mecho сообщение
Посылает сообщение всем не спящим персонажам в комнате, в которой нахидится моб.
mechoaround цель сообщение
Посылает сообщение всем в комнате кроме жертвы и моба.
mexp жертва количество
Меняет текущее количество опыта жертвы на количество. Количество
может быть 100,000 или меньше, включая отрицательные значения.
mforce жертва команда
Моб заставляет жертву выполнить команду. Если жертва это all -
все игроки в комнате будут заставлены выполнить команду. На бессмертных эта команда
не действует. Жертве не посылается никаких сообщений, кроме тех, которые вызваны исполнением
команды.
mforget жертва
Убирает жертву из 'памяти' моба.
Смотри так же mremember ниже.
mgoto цель
Перемещает моба к цели. Целью может быть предмет, комната или персонаж. Сообщение не
выдается. Перенос в god или занятую private комнаты не осуществляется.
mjunk предмет
Убирает предмет из инвентори моба. Mjunk all
убирает все предметы из инвентори моба.
mhunt жертва
Моб начинает 'охотиться' за жертвой и найдя ее начинает драться с жертвой.
Если моб дерется - команда будет проигнорирована. Если моб 'охотится' за другой жертвой,
он прекратит поиски и начнет охотиться за жертвой.
mkill жертва
Mkill заставляет моба атаковать жертву.
Работает так же как и команда убить.
mload <obj|mob> vnum
Эта команда загружает моба или предмет с номером vnum в игру. Мобы загружаются в ту же комнату,
в которой находится моб, чей триггер выполнил эту команду. Предметы загружаются в инвентори моба.
No-take (тяжелые или не берущиеся) предметы загружаются в комнату в которой находится моб. Сообщение не выдается.
mpurge [цель]
Удаляет цель (предмет или моб) из игры. Если цель не задана, все предметы и мобы удаляются
из комнаты в которой находится моб. Игроки не могут быть удалены этой командой. Сообщение не выдается.
mremember жертва [команда]
Команда добавляет жертву в 'память' моба. Как только после этого моб встретит жертву,
он выполнит команду, если этот параметр задан. Если нет - выполнится встроенный триггер 'памяти'.
Как только моб выполнит команду, жертва будет исключена из 'памяти' моба. Замечание. Даже если команда задана, у моба
ДОЛЖЕН быть memory
триггер.
msend жертва сообщение Жертве будет послано сообщение
mteleport жертва цель
Переносит жертву к цели. Жертва не обязательно должна находиться в той же
комнате что и моб. Если жертва это 'all' - все персонажи в комнате с мобом будут
перенесены к цели. Цель - это vnum комнаты куда бедет осуществляться перенос.
Сообщение не выдается.
mtransform vnum
Эта команда превращает моба в другого моба, основываясь на параметрах моба с номером vnum.
Причем такие параметры как единицы жизни, максимальные единицы жизни, положение (сидит, стоит или спит),
количество денег и количество опыта останутся прежними. Превращение является постоянным, но возможны другие
превращения. В комнату не выдаются сообщения о превращении. У нового моба останутся все прежние триггера,
триггера моба-прототипа (с номером vnum), триггера с моба-прототипа не добавятся, и load-триггер
не будет выполнен заново.
Команды предметов
Триггера предметов могут использовать следующие команды.
odoor комната направление поле [значение]
Смотри wdoor ниже.
oecho сообщение
Посылается сообщение всем не спящим персонажам в комнате в которой находится этот предмет.
Если этот предмет одет на ком-то, или находится в чьем-то инвентори, сообщение посылается
всем не спящим в комнате в которой находится моб или игрок у которого находится этот предмет.
oechoaround жертва сообщение
Посылается сообщение всем в комнате кроме жертвы.
oexp жертва количество
Меняет текущее значение опыта жертвы на количество. Количество может быть
100,000 или меньше, в том числе отрицательным.
oforce жертва команда
Объект заставляет жертву выполнить команду. Если жертва это 'all' - все персонажи
в комнате будут заставлены выполнить эту команду. На бессмертных эта команда не действует.
Жертве не посылается никаких сообщений, кроме тех, которые вызваны исполнением команды.
oload <obj|mob> vnum
Команда загружает моба или предмет с номером vnum в комнату, в которой находится предмет.
Обязательно указывать vnum предмета или моба, имя не будет работать. Сообщения не выдаются.
opurge [цель]
Удаляет цель (предмет или моб) из игры. Если цель не указана, все предметы или мобы находящиеся
в комнате удаляются из игры. Игроки не могут быть удалены этой командой. Сообщение не выдается.
osend жертва сообщение Сообщение посылается жертве.
oteleport жертва цель
Перемещает жертву к цели. Цель не обязательно должна находиться
Если жертва это 'all' - все персонажи находящиеся в комнате будут перенесены
к цели. Сообщение не выдается.
otimer значение
Устанавливает таймер объекта в значение. Как только таймер обнулится
timer-триггер
предмета будет выполнен.
otransform vnum
Этой командой предмет преобразовывается в другой предмет, по образцу предмета с номером vnum.
Преобразование является постоянным, но возможны другие преобразования. В комнату не выдаются сообщения
о преобразовании. У нового предмета останутся все прежние триггера, триггера предмета-прототипа
(с номером vnum) не добавятся, и load-триггер предмета не будет выполнен заново.
Команды мира
Триггера комнат могут использовать следующие команды.
wasound сообщение
Wasound посылает сообщение
во все прилегающие к этой комнате комнаты.
wdamage жертва количество
Нанести вред (или исцелить, если количество отрицательное число) жертве.
wdoor комната направление поле [значение]
Эта команда используется для добавления, удаления и модифицирования дверей в
комнате (указывать vnum комнаты). Направление определяет, какая дверь будет изменена
и может быть север, юг, восток, запад, вверх, или вниз. (Примечание: только русские слова
для направлений поддерживаются!) Если дверь не существует, новая дверь будет создана.
Поле определяет какой параметр двери будет изменен. Допустимые поля:
purge
Удаляет дверь полностью. Значение не используется.
description Значение будет новым описанием выхода комнаты.
flags Значение будет новыми флагами двери.
Вот список букв, который представляет все флаги двери.
a - У выхода есть дверь открывается/закрывается.
b - Дверь закрыта.
c - Дверь заперта.
d - Замок нельзя взломать.
e - Дверь секретная (если поддерживается МАДом).
Например, " wdoor 100 север abe " создает закрытую,
закрытую секретную дверь на севере в комнате 100.
key Значение - vnum предмета, который будет новым ключом к двери.
name Значение - новое имя двери.
room Значение - комната, к которой будет подсоединена эта дверь.
wecho сообщение
Wecho посылает сообщение всем кто не спит в комнате.
wechoaround жертва сообщение
Посылает сообщение всем в комнате кроме жертвы.
wexp жертва количество
Wexp изменяет опыт жертвы на количество.
Количество может быть 100,000 опыта и меньше, включая отрицательные значения.
wforce жертва команда
Заставляет жертву выполнить команду. Если жертва это 'all' или
'все', все персонажи в комнате выполнят эту команду. Wforce
не влияет на Бессмертных. Никаких сообщений не посылается, кроме тех,
которые были вызваны выполненной командой.
wload <obj|mob> vnum
Эта команда загружает монстра или предмет в игру в комнату, выполняющую команду.
Вы должны задать vnum монстра или предмета.
Имя не сработает. При выполнении не показывается никаких сообщений.
wpurge [цель]
Wpurge убирает предметы или монстров из игры.
Если цель не задана, все предметы и монстры в этой комнате будут удалены.
Если цель задана, только указанный монстр или предмет будет удален. Игроки не могут быть удалены этой
командой. При выполнении не показывается никаких сообщений.
wsend жертва сообщение Сообщение будет послано жертве.
wteleport жертва цель
Wteleport переместит жертву к цели.
Жертва не должна обязательно находиться в этой комнате.
Если жертва это all или
все, все персонажи в комнате будут телепортированы в комнату-цель.
При выполнении не показывается никаких сообщений.