Skip to content

Fenia room triggers

Ruffina Koza edited this page Jul 15, 2019 · 6 revisions

Триггера для комнат

Комната, от которой вызвался триггер, всегда доступна изнутри триггера как переменная this.

Периодические действия

onTime(newTime) - вызывается каждый игровой час (каждую минуту); параметр newTime содержит название нового времени суток (dark, sunrise, light, sunset).

onSpec - вызывается каждые 4 секунды (как и onSpec у мобов).

onDiveUpdate - исторический синоним для onSpec.

Разные действия

onCommand(actor, cmdName, cmdArgs) - игрок actor выполнил в комнате существующую команду cmdName с аргументами cmdArgs. Если вернуть true, нормальное выполнение команды не произойдет.

onSkill(actor, skill, success, victim) - игрок actor применил в комнате умение под названием skill. При успешном применении success равен true, иначе false. Необязательная цель умения - victim, может быть null.

onSmell(ch, msg) - персонаж ch понюхал воздух в комнате; msg - аргумент, переданный команде smell.

Общение

onSpeech(ch, msg) - персонаж ch произнес в комнате реплику msg

onSocial(actor, victim, social, arg) - персонаж actor выполнил социал social, victim - цель социала или null, arg - параметр социала (например, имя жертвы). В случае с социалами, принимающими в параметры два аргумента (обнимает тебя и кентавру), триггер вызовется дважды для каждой 'жертвы' социала.

Отображение, информация

onShowEnd(victim, ch) - ch выполнил команду 'смотреть' в комнате, и ему нужно показать длинное описание victim. Если вернуть строку, она выведется в конце длинного описания victim, например: Валькирия сидит посреди площади. ... закинув ногу на ногу

onLook(ch, keyword) - ch посмотрел на экстра-описание в комнате, которое откликается на ключевое слово keyword.

onDescr(ch, description) - ch выполнил команду 'смотреть' в комнате, и должен увидеть строку description в качестве описания комнаты. Если эту строку видоизменить и вернуть, то персонаж увидит уже измененное описание.

onWhere(ch, argument) - ch выполнил команду 'где' с параметром argument. Если вернуть true, нормальная обработка команды 'где' прекратится.

Перемещение

onExitLocation(walker, targetRoom, door) - персонаж walker пытается выйти из комнаты через дверь door и попасть в комнату targetRoom. Если вернуть внум некой комнаты, то персонаж вместо targetRoom попадет в указанную комнату. Удобно для перемешивания выходов случайным образом.

onEntryLocation(walker, sourceRoom, door) - персонаж walker пытается попасть в комнату, покинув комнату sourceRoom через дверь door. Если вернуть внум некой комнаты, то персонаж вместо этой комнаты попадет в указанную комнату. Удобно для перемешивания выходов случайным образом.

onCantWalk(walker, extraExit) - персонаж walker пытается покинуть комнату через экстра-выход под названием extraExit. Если вернуть true - он останется стоять в комнате.

onCantMove(walker, targetRoom, moveType) - персонаж walker пытается покинуть комнату и попасть в targetRoom, используя тип перемещения moveType. Типы перемещения: normal, swimming, flee, riding, flying, running, waterwalking. Дополнительно есть slink, crawl, quickly, но используются редко. Если вернуть true, персонаж не сдвинется с места.

onGreet(walker, fromRoom, moveType) - персонаж walker вошел в комнату из комнаты fromRoom, используя тип перемещения moveType (см. предыдущий триггер).

onLeave(walker, toRoom, moveType) - персонаж walker вышел из этой комнаты, направляясь в toRoom и используя тип перемещения moveType.

onDive(walker, danger) - персонаж walker вошел в комнату и все остальные триггера уже выполнились, теперь время сработать или не сработать ловушке. Число danger указывает, насколько опасен данный тип перемещения, он равен 1 для всех типов, кроме crawl/прокрасться (2) и slink/приползти (3).

You can’t perform that action at this time.