Триггеры персонажей

Для простоты тригера описываются 'от первого лица', т.е. 'мы' - это тот персонаж, от которого вызывается данный триггер.

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

onSpec() - вызывается каждые четыре секунды. если вернуть true, другие автоматические действия для мобов выполняться не будут.

onArea() - вызывается каждую минуту.

Разное

onBribe(ch, amount) - ch дал нам amount серебра

onGive(ch, obj) - ch дал нам предмет obj

onWake(ch) - ch разбудил нас

onPut(ch, obj, container) - мы положили предмет obj в контейнер container. этот триггер вызывается для всех троих: для кладущего, для предмета и для контейнера. при вызове для кладущего ch будет, соответственно, равно нам. при уничтожении container-а вернуть true.

onCommand(ch, cmdName, cmdArgs) - ch пытается выполнить рядом с нами команду cmdName с аргументами cmdArgs. если вернуть true, выполнить команду не удастся.

onSkill(ch, skillName, success, victim) - вызывается для комнаты. ch - кто применяет умение, skillName - название скила, success - успешно применилось или нет, victim - цель скила либо null

onStopfol(master) - мы прекратили следовать за master

onExtract(count) - нас уничтожают, если count==false - это выход чара из мира, иначе - полное уничтожение. на момент уничтожения мы уже удалены из всех списков.

onAct(msg) - нам пришла строка msg. этот триггер ловит 'сырой' вывод чару, самого низкого уровня. используйте его, только если ждете строку неизвестного происхождения. в большинстве случаев должно хватать onEmote, onSpeech, onSocial.

onStealFail(thief) - вызывается при неудачной попытке обокрасть. если вернуть true, моб не будет орать 'убери руки' и атаковать вора.

onStealItem(thief, obj) - попытка украсть у моба obj увенчалась успехом

onStealMoney(thief, gold, silver) - у моба успешно украли деньги в размере gold золотых и silver серебряных монет.

Эмоции, общение

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

onTell(ch, msg) - ch сказал нам реплику msg

onEmote(ch, msg) - ch выразил рядом с нами эмоцию msg

onSocial(ch, victim, social) - ch применил социал social, возможно на жертву victim.

onSmell(ch, arg) - ch обнюхивает нас, arg - дополнительный аргумент для smell

Перемещения по комнатам

onEntry() - мы вошли в какую-то комнату

onGreet(ch) - ch вошел в нашу комнату

onCantLeave(ch) - разрешено ли ch покидать нашу комнату. если не разрешено - надо вернуть true

onLeave(ch, from_room, movetype) - ch только что вышел из нашей комнаты, направляясь в комнату from_room. movetype может быть равен running, normal, slink, crowl (см. help movetype)

onCantMove(to_room, movetype) - можем ли мы переместиться в комнату to_room. если не можем - надо вернуть true.

Сражения, касты, смерть

onAttack(ch, victim) - вызывается в комнате при нападении ch на victim (для рэндж-атаки в каждой комнате)

onFight(ch) - вызывается каждый баттл-тик (3 секунды) при сражении с ch

onDeath(ch) - ch убил нас. если вернуть true, мы не умрем и останемся стоять

onKill(ch) - мы убили ch

onSafe(ch, victim) - защищают ли боги victim от атак ch. этот тригер вызывается для обоих сторон, поэтому, когда выясняется защищают ли ОТ наших атак, мы равны ch. когда выясняется, защищают ли НАС от чьих-то атак, мы равны victim

onHit(ch, dam, damType, wield) - ch нанес нам повреждения размером dam, типом дамаги damType и оружием wield (wield==null при сражении голыми руками).

onCheckAssist(fch, victim) - рядом с нами чар fch сражается с victim, если вернуть true, мы вступим в битву на стороне fch. вызывается только для мобов.

onSpell(ch, spell, before) - ch скастовал на нас заклинание spell. вызывается дважды, причем before будет равно true перед кастом, и false - после каста.

onCast(arg, spell, before) - мы кастуем заклинание spell со строковым аргументом arg

onCast(obj, spell, before) - мы кастуем заклинание spell на предмет obj

onCast(ch, spell, before) - мы кастуем заклинание spell на жертву ch

onCast(room, spell, before) - мы кастуем заклинание spell на комнату room

Триггера для спецмобов

onSell(ch, obj, cost, number) - мы продали чару ch предмет obj, по цене cost и в количестве number штук. вызывается только для мобов-продавцов

onCantTrain(ch) - можем ли мы тренировать ch. вызывается только для мобов-тренеров

Системные, не использовать

onConnect

onInput