FOnline
Critter events

События для криттеров. Подробнее...

Общие

События, связанные с изменением состояния криттера.

300

#define  CRITTER_EVENT_IDLE   (0)
  Вызывается каждые 20 секунд простоя криттера. Подробнее...
 
#define  CRITTER_EVENT_FINISH   (1)
  Вызывается при удалении криттера из игры. Подробнее...
 
#define  CRITTER_EVENT_DEAD   (2)
  Вызывается при смерти криттера перед глобальным обработчиком смертей critter_dead. Подробнее...
 
#define  CRITTER_EVENT_RESPAWN   (3)
  Вызывается при оживлении криттера после смерти (респауне). Подробнее...
 
#define  CRITTER_EVENT_KNOCKOUT   (23)
  Вызывается при уходе криттера в нокаут. Подробнее...
 

Действия

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

#define  CRITTER_EVENT_ATTACK   (15)
  Вызывается при атаке криттером кого-либо. Подробнее...
 
#define  CRITTER_EVENT_ATTACKED   (16)
  Вызывается когда данного криттера атаковали. Подробнее...
 
#define  CRITTER_EVENT_STEALING   (17)
  Вызываетcя при попытке воровства у данного криттера. Подробнее...
 
#define  CRITTER_EVENT_BARTER   (36)
  Вызывается когда с NPC начинается или заканчивается бартер. Подробнее...
 
#define  CRITTER_EVENT_TALK   (37)
  Вызывается, когда с NPC начинают или заканчивают разговор. Подробнее...
 
#define  CRITTER_EVENT_USE_SKILL   (21)
  Вызывается при использовании навыка на что-либо. Подробнее...
 
#define  CRITTER_EVENT_USE_SKILL_ON_ME   (22)
  Вызывается при использовании кем-то навыка на данном криттере. Подробнее...
 

Предметы

События, связанные с предметами

#define  CRITTER_EVENT_USE_ITEM   (19)
  Вызывается при использовании данными криттером какого-либо предмета. Подробнее...
 
#define  CRITTER_EVENT_USE_ITEM_ON_ME   (20)
  Вызывается при использовании какого-либо предмета на данном криттере. Подробнее...
 
#define  CRITTER_EVENT_SHOW_ITEM_ON_MAP   (12)
  Вызывается при появлении предмета в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_CHANGE_ITEM_ON_MAP   (13)
  Вызывается в том случае, если поменялся предмет в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_HIDE_ITEM_ON_MAP   (14)
  Вызывается при исчезновении предмета из поля зрения. Подробнее...
 
#define  CRITTER_EVENT_DROP_ITEM   (21)
  Вызывается при выкидывании криттером предмета из своего инвентаря. Подробнее...
 
#define  CRITTER_EVENT_MOVE_ITEM   (24)
  Вызывается при перемещении какого-либо предмета в инвентаре данного криттера. Подробнее...
 

Другие криттеры

События, позволяющие организовать взаимодействие с другими криттерами.

#define  CRITTER_EVENT_SHOW_CRITTER   (4)
  Вызывается при появлении нового криттера в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_SHOW_CRITTER_1   (5)
  Вызывается при появлении нового криттера в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_SHOW_CRITTER_2   (6)
  Вызывается при появлении нового криттера в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_SHOW_CRITTER_3   (7)
  Вызывается при появлении нового криттера в поле зрения. Подробнее...
 
#define  CRITTER_EVENT_HIDE_CRITTER   (8)
  Вызывается при пропаже криттера из поля зрения. Подробнее...
 
#define  CRITTER_EVENT_HIDE_CRITTER_1   (9)
  Вызывается при пропаже криттера из поля зрения. Подробнее...
 
#define  CRITTER_EVENT_HIDE_CRITTER_2   (10)
  Вызывается при пропаже криттера из поля зрения. Подробнее...
 
#define  CRITTER_EVENT_HIDE_CRITTER_3   (11)
  Вызывается при пропаже криттера из поля зрения. Подробнее...
 
#define  CRITTER_EVENT_MESSAGE   (18)
  Вызывается, когда приходит сообщение, отправленное с помощью метода Critter::SendMessage. Подробнее...
 
#define  CRITTER_EVENT_SMTH_DEAD   (24)
  Вызывается, когда криттер в области видимости умирает. Подробнее...
 
#define  CRITTER_EVENT_SMTH_STEALING   (25)
  Вызывается, когда какой-либо криттер в области видимости подвергся краже. Подробнее...
 
#define  CRITTER_EVENT_SMTH_ATTACK   (26)
  Вызывается, когда какой-либо криттер в области видимости атакует кого-либо. Подробнее...
 
#define  CRITTER_EVENT_SMTH_ATTACKED   (27)
  Вызывается, когда какой-либо криттер в области видимости атакован. Подробнее...
 
#define  CRITTER_EVENT_SMTH_USE_ITEM   (28)
  Вызывается, когда криттер в области видимости использует предмет на чем-либо. Подробнее...
 
#define  CRITTER_EVENT_SMTH_USE_SKILL   (29)
  Вызывается, когда криттер в области видимости использует навык на чем-либо. Подробнее...
 
#define  CRITTER_EVENT_SMTH_DROP_ITEM   (30)
  Вызывается, когда криттер в области видимости выкидывает предмет. Подробнее...
 
#define  CRITTER_EVENT_SMTH_MOVE_ITEM   (31)
  Вызывается, когда криттер в области видимости меняет местоположение предмета. Подробнее...
 
#define  CRITTER_EVENT_SMTH_KNOCKOUT   (32)
  Вызывается, когда криттер в области видимости уходит в нокаут. Подробнее...
 

Планы

События для планов NPC.

Срабатывают и для дочерних планов: childIndex указывает на их номер (если 0, то это базовый план).

#define  CRITTER_EVENT_PLANE_BEGIN   (33)
  Вызывается перед добавлением плана (которого еще нет в списках у NPC). Подробнее...
 
#define  CRITTER_EVENT_PLANE_END   (34)
  Вызывается перед удалением плана (который ещё присутствует в списках планов). Подробнее...
 
#define  CRITTER_EVENT_PLANE_RUN   (35)
  Вызывается во время выполнения некоторых планов. Подробнее...
 

Глобальная карта

События возникающие при перемещении на глобальной карте

#define  CRITTER_EVENT_GLOBAL_PROCESS   (38)
  Вызывается при событиях на глобальной карте. Подробнее...
 
#define  CRITTER_EVENT_GLOBAL_INVITE   (39)
  Вызывается при переходе на карту на глобальной карте мира. Подробнее...
 

Пошаговый бой

События связанные с пошаговым боем

#define  CRITTER_EVENT_TURN_BASED_PROCESS   (40)
  Вызывается в начале и в конце хода криттера. Подробнее...
 
#define  CRITTER_EVENT_SMTH_TURN_BASED_PROCESS   (41)
  Вызывается в начале и конце хода какого-либо криттера в области видимости. Подробнее...
 

Подробное описание

События для криттеров.

Прим.
Первым параметром любого обработчика является ссылка на криттера, для которого вызвано событие.
События можно вешать не только на NPC, но и на игроков.
См. также
Critter Critter::SetEvent

Макросы

#define CRITTER_EVENT_IDLE   (0)

Вызывается каждые 20 секунд простоя криттера.

Для изменения времени вызова события используйте метод Critter::Wait в обработчике.

Сигнатура обработчика:
void _FuncName(Critter& cr)
См. также
Critter::EventIdle
#define CRITTER_EVENT_FINISH   (1)

Вызывается при удалении криттера из игры.

Сигнатура обработчика:
void _FuncName(Critter& cr, bool deleted)
Аргументы
deleted @с true - функция вызвана перед полным удалением криттера, @с false - функция вызвана остановкой сервера.
См. также
Critter::EventFinish
#define CRITTER_EVENT_DEAD   (2)

Вызывается при смерти криттера перед глобальным обработчиком смертей critter_dead.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter@ killer)
Аргументы
killer Если криттер был убит другим криттером, то аргумент содержит указатель на убившего криттера.
См. также
Critter::ToDead Critter::EventDead critter_dead
#define CRITTER_EVENT_RESPAWN   (3)

Вызывается при оживлении криттера после смерти (респауне).

Сигнатура обработчика:
void _FuncName(Critter& cr)
См. также
Critter::ToLife Critter::EventRespawn critter_respawn
#define CRITTER_EVENT_KNOCKOUT   (23)

Вызывается при уходе криттера в нокаут.

Сигнатура обработчика:
void _FuncName(Critter& cr, bool faceUp, uint lostAp, uint knockDist)
Аргументы
faceUp Показывает, упал ли криттер лицом вверх (true) или вниз (false).
lostAp Количество очков действия, необходимых для поднятия с земли.
knockDist Количество гексов, на которое "отлетел" криттер.
См. также
Critter::ToKnockout Critter::EventKnockout
#define CRITTER_EVENT_ATTACK   (15)

Вызывается при атаке криттером кого-либо.

Сигнатура обработчика:
bool _FuncName(Critter& cr, Critter& target);
Аргументы
target Атакуемый криттер.
Возвращает
При возвращенном значении true глобальный обработчик critter_attack не вызывается.
См. также
Critter::EventAttack CRITTER_EVENT_SMTH_ATTACK ITEM_EVENT_ATTACK critter_attack
#define CRITTER_EVENT_ATTACKED   (16)

Вызывается когда данного криттера атаковали.

Сигнатура обработчика:
bool _FuncName(Critter& cr, Critter& attacker);
Аргументы
attacker Атакующий криттер.
Возвращает
При возвращенном значении true глобальный обработчик critter_attacked не вызывается.
См. также
Critter::EventAttacked CRITTER_EVENT_SMTH_ATTACKED critter_attacked
#define CRITTER_EVENT_STEALING   (17)

Вызываетcя при попытке воровства у данного криттера.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& thief, bool success, Item& item, uint count)
Аргументы
thief Вор.
success Успешно ли произошло воровство, расчитанное в critter_stealing.
item Воруемый предмет.
count Количество воруемых предметов.
См. также
Critter::EventStealing CRITTER_EVENT_SMTH_STEALING critter_stealing
#define CRITTER_EVENT_BARTER   (36)

Вызывается когда с NPC начинается или заканчивается бартер.

Сигнатура обработчика:
bool _FuncName(Critter& cr, Critter& player, bool attach, uint barterCount)
Аргументы
player Игрок, начинающий или заканчивающий бартер.
attach Показывает, начинается (true) или заканчивается (false) бартер.
barterCount Всего торгующих, включая новое присоединение/отсоединение.
Возвращает
При возвращении true – бартер начинается; false – бартер не начинается. Актуально при attach == true.
См. также
Critter::EventBarter
#define CRITTER_EVENT_TALK   (37)

Вызывается, когда с NPC начинают или заканчивают разговор.

Сигнатура обработчика:
bool _FuncName(Critter& cr, Critter& player, bool attach, uint talkCount)
Аргументы
player Игрок, начинающий или заканчивающий разговор.
attach Показывает, начинается (true) или заканчивается (false) разговор.
talkCount Всего разговаривающих, включая новое присоединение/отсоединение.
Возвращает
При возвращении true – диалог начинается; false – не начинается. Актуально при attach == true.
См. также
Critter::EventTalk
#define CRITTER_EVENT_USE_SKILL   (21)

Вызывается при использовании навыка на что-либо.

bool _FuncName(Critter& cr, int skill, Critter@ onCritter, Item@ onItem, Scenery@ onScenery)
Аргументы
skill Используемый скилл (см. Навыки и Special Skill Values).
onCritter Если предмет используется на криттере, то аргумент содержит указатель на этого криттера.
onItem Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет.
onScenery Если предмет используется на сценери, то аргумент содержит указатель на это сценери.
Возвращает
При false вызывается глобальный обработчик critter_use_skill При true – выход.
См. также
Critter::EventUseSkill ITEM_EVENT_SKILL
#define CRITTER_EVENT_USE_SKILL_ON_ME   (22)

Вызывается при использовании кем-то навыка на данном криттере.

bool _FuncName(Critter& whoUse, int skill)
Аргументы
whoUse Криттер использующий скилл
skill Используемый скилл (см. Навыки и Special Skill Values).
Возвращает
При false вызывается глобальный обработчик critter_use_skill При true – выход.
#define CRITTER_EVENT_USE_ITEM   (19)

Вызывается при использовании данными криттером какого-либо предмета.

bool _FuncName(Critter& cr, Item& item, Critter@ onCritter, Item@ onItem, Scenery@ onScenery)
Аргументы
item Используемый предмет.
onCritter Если предмет используется на криттере, то аргумент содержит указатель на этого криттера.
onItem Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет.
onScenery Если предмет используется на сценери, то аргумент содержит указатель на это сценери.
Возвращает
При false вызывается глобальный обработчик critter_use_item. При true – выход.
См. также
Critter::EventUseItem ITEM_EVENT_USE critter_use_item
#define CRITTER_EVENT_USE_ITEM_ON_ME   (20)

Вызывается при использовании какого-либо предмета на данном криттере.

bool _FuncName(Critter& whoUse, Item& item)
Аргументы
whoUse Криттер использовавший предмет.
Item& Используемый предмет.
Возвращает
При false вызывается глобальный обработчик critter_use_item. При true – выход.
#define CRITTER_EVENT_SHOW_ITEM_ON_MAP   (12)

Вызывается при появлении предмета в поле зрения.

Сигнатура обработчика:
void _FuncName(Critter& cr, Item& showItem, bool added, Critter@ dropper)
Аргументы
showItem Появившийся предмет.
added true, если предмет появился при смене радиуса обзора криттера; false, если предмет появился в ином случае (например, если был выкинут другим криттером).
dropper Если предмет был выкинут из инвентаря какого-либо криттера, то аргумент будет содержать указатель на этого криттера. В противном случае, null.
См. также
Critter::EventShowItemOnMap
#define CRITTER_EVENT_CHANGE_ITEM_ON_MAP   (13)

Вызывается в том случае, если поменялся предмет в поле зрения.

Например, открылась или закрылась дверь (или контейнер).

Сигнатура обработчика:
void _FuncName(Critter& cr, Item& item)
Аргументы
item Изменившийся предмет.
См. также
Critter::EventChangeItemOnMap
#define CRITTER_EVENT_HIDE_ITEM_ON_MAP   (14)

Вызывается при исчезновении предмета из поля зрения.

Сигнатура обработчика:
void _FuncName(Critter& cr, Item& hidedItem, bool removed, Critter@ picker)
Аргументы
hidedItem Исчезнувший предмет.
removed true, если предмет исчез при смене радиуса обзора криттера; false, если предмет исчез в рамках радиуса обзора (например, если был подобран другим криттером).
picker Если предмет был подобран каким-либо криттером, то аргумент будет содержать указатель на этого криттера. В противном случае, null.
См. также
Critter::EventHideItemOnMap
#define CRITTER_EVENT_DROP_ITEM   (21)

Вызывается при выкидывании криттером предмета из своего инвентаря.

Сигнатура обработчика:
void _FuncName(Critter& cr, Item& item)
Аргументы
item Выкидиваемый предмет.
См. также
Critter::EventDropItem ITEM_EVENT_DROP
#define CRITTER_EVENT_MOVE_ITEM   (24)

Вызывается при перемещении какого-либо предмета в инвентаре данного криттера.

Сигнатура обработчика:
void _FuncName(Critter& cr, Item& item, uint8 fromSlot)
Аргументы
item Перемещаемый предмет.
fromSlot Слот, в котором предмет находился до перемещения (см. Слоты инвентаря).
См. также
Critter::EventMoveItem ITEM_EVENT_MOVE
#define CRITTER_EVENT_SHOW_CRITTER   (4)

Вызывается при появлении нового криттера в поле зрения.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& showCr)
Аргументы
showCr Появившийся в поле зрения криттер.
См. также
Critter::EventShowCritter
#define CRITTER_EVENT_SHOW_CRITTER_1   (5)

Вызывается при появлении нового криттера в поле зрения.

Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist1.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& showCr)
Аргументы
showCr Появившийся в поле зрения криттер.
См. также
Critter::EventShowCritter1 Critter::ShowCritterDist1
#define CRITTER_EVENT_SHOW_CRITTER_2   (6)

Вызывается при появлении нового криттера в поле зрения.

Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist2.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& showCr)
Аргументы
showCr Появившийся в поле зрения криттер.
См. также
Critter::EventShowCritter2 Critter::ShowCritterDist2
#define CRITTER_EVENT_SHOW_CRITTER_3   (7)

Вызывается при появлении нового криттера в поле зрения.

Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist3.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& showCr)
Аргументы
showCr Появившийся в поле зрения криттер.
См. также
Critter::EventShowCritter3 Critter::ShowCritterDist3
#define CRITTER_EVENT_HIDE_CRITTER   (8)

Вызывается при пропаже криттера из поля зрения.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& hideCr)
Аргументы
hideCr Исчезнувший из поля зрения криттера.
См. также
Critter::EventHideCritter
#define CRITTER_EVENT_HIDE_CRITTER_1   (9)

Вызывается при пропаже криттера из поля зрения.

Радиус поля зрения определяется полем Critter::ShowCritterDist1.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& hideCr)
Аргументы
hideCr Исчезнувший из поля зрения криттера.
См. также
Critter::EventHideCritter1 Critter::ShowCritterDist1
#define CRITTER_EVENT_HIDE_CRITTER_2   (10)

Вызывается при пропаже криттера из поля зрения.

Радиус поля зрения определяется полем Critter::ShowCritterDist2.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& hideCr)
Аргументы
hideCr Исчезнувший из поля зрения криттера.
См. также
Critter::EventHideCritter2 Critter::ShowCritterDist2
#define CRITTER_EVENT_HIDE_CRITTER_3   (11)

Вызывается при пропаже криттера из поля зрения.

Радиус поля зрения определяется полем Critter::ShowCritterDist1.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& hideCr)
Аргументы
hideCr Исчезнувший из поля зрения криттера.
См. также
Critter::EventHideCritter3 Critter::ShowCritterDist3
#define CRITTER_EVENT_MESSAGE   (18)

Вызывается, когда приходит сообщение, отправленное с помощью метода Critter::SendMessage.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, int message, int value)
Аргументы
fromCr Криттер, отправивший сообщение.
message Номер сообщения.
value Переданное значение.
См. также
Critter::SendMessage Critter::EventMessage
#define CRITTER_EVENT_SMTH_DEAD   (24)

Вызывается, когда криттер в области видимости умирает.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Critter@ killer)
Аргументы
fromCr Умерший криттер.
killer Если криттер был убит другим криттером, то аргумент содержит указатель на убившего криттера.
См. также
Critter::EventSmthDead CRITTER_EVENT_DEAD
#define CRITTER_EVENT_SMTH_STEALING   (25)

Вызывается, когда какой-либо криттер в области видимости подвергся краже.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Critter& thief, bool success, Item& item, uint count)
Аргументы
fromCr Криттер, подвергшийся воровству.
thief Криттер, совершивший воровство.
success Успешно ли произошло воровство.
item Сворованный предмет.
count Количество сворованных предметов.
См. также
Critter::EventSmthStealing CRITTER_EVENT_STEALING
#define CRITTER_EVENT_SMTH_ATTACK   (26)

Вызывается, когда какой-либо криттер в области видимости атакует кого-либо.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Critter& target)
Аргументы
fromCr Атаковавший криттер.
target Атакованный криттер.
См. также
Critter::EventSmthAttack CRITTER_EVENT_ATTACK
#define CRITTER_EVENT_SMTH_ATTACKED   (27)

Вызывается, когда какой-либо криттер в области видимости атакован.

См. CRITTER_EVENT_ATTACKED.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Critter& attacker)
Аргументы
fromCr Атакованный криттер.
attacker Атаковаший криттер.
См. также
Critter::EventSmthAttacked CRITTER_EVENT_ATTACKED
#define CRITTER_EVENT_SMTH_USE_ITEM   (28)

Вызывается, когда криттер в области видимости использует предмет на чем-либо.

См. CRITTER_EVENT_USE_ITEM.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Item& item, Critter@ onCritter, Item@ onItem, Scenery@ onScenery)
Аргументы
fromCr Криттер использующий предмет.
item Используемый предмет.
onCritter Если предмет используется на криттере, то аргумент содержит указатель на этого криттера.
onItem Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет.
onScenery Если предмет используется на сценери, то аргумент содержит указатель на это сценери.
#define CRITTER_EVENT_SMTH_USE_SKILL   (29)

Вызывается, когда криттер в области видимости использует навык на чем-либо.

См. CRITTER_EVENT_USE_SKILL.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, int skill, Critter@ onCritter, Item@ onItem, Scenery@ onScenery)
Аргументы
fromCr Криттер использующий навык.
skill Используемый скил. (см. Навыки и Special Skill Values).
onCritter Если предмет используется на криттере, то аргумент содержит указатель на этого криттера.
onItem Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет.
onScenery Если предмет используется на сценери, то аргумент содержит указатель на это сценери.
#define CRITTER_EVENT_SMTH_DROP_ITEM   (30)

Вызывается, когда криттер в области видимости выкидывает предмет.

См. CRITTER_EVENT_DROP_ITEM.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Item& item)
Аргументы
fromCr Криттер выкинувший итем
item Выкидиваемый предмет.
#define CRITTER_EVENT_SMTH_MOVE_ITEM   (31)

Вызывается, когда криттер в области видимости меняет местоположение предмета.

См. CRITTER_EVENT_MOVE_ITEM.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Item& item, uint8 fromSlot)
Аргументы
fromCr Криттер поменявший у итема место
item Перемещаемый предмет.
fromSlot Слот, в котором предмет находился до перемещения (см. Слоты инвентаря).
#define CRITTER_EVENT_SMTH_KNOCKOUT   (32)

Вызывается, когда криттер в области видимости уходит в нокаут.

См. CRITTER_EVENT_KNOCKOUT.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, bool faceUp, uint lostAp, uint knockDist)
Аргументы
fromCr Ушедший в нокаут криттер.
faceUp Показывает, упал ли криттер лицом вверх (true) или вниз (false).
lostAp Количество очков действия, необходимых для поднятия с земли.
knockDist Количество гексов, на которое "отлетел" криттер.
#define CRITTER_EVENT_PLANE_BEGIN   (33)

Вызывается перед добавлением плана (которого еще нет в списках у NPC).

Сигнатура обработчика:
int _FuncName(Critter& cr, NpcPlane& plane, uint childIndex, int reason, Critter@ someCr, Item@ someItem)
Аргументы
plane План.
childIndex Номер плана в качестве наследника, если 0, значит план базовый.
reason Указывает причину начала плана (см. Plane begin reasons).
someCr В некоторых случаях хранит указатель на персонажа (см. Работа с планами ).
someItem В некоторых случаях хранит указатель на предмет (см. Работа с планами ).
Возвращает
PLANE_RUN_GLOBAL - вызвать глобальный обработчик, который определит сохранить или удалить план; PLANE_KEEP - сохранить план, без вызова глобального обработчика; PLANE_DISCARD - удалить план, без вызова глобального обработчика.
#define CRITTER_EVENT_PLANE_END   (34)

Вызывается перед удалением плана (который ещё присутствует в списках планов).

Сигнатура обработчика:
int _FuncName(Critter& cr, NpcPlane& plane, uint childIndex, int reason, Critter@ someCr, Item@ someItem)
Аргументы
plane План.
childIndex Номер плана в качестве наследника, если 0, значит план базовый.
reason Указывает причину завершения плана (см. Plane end reasons).
someCr В некоторых случаях хранит указатель на персонажа (см. Работа с планами ).
someItem В некоторых случаях хранит указатель на предмет (см. Работа с планами ).
Возвращает
PLANE_RUN_GLOBAL - вызвать глобальный обработчик, который определит сохранить или удалить план; PLANE_KEEP - сохранить план, без вызова глобального обработчика; PLANE_DISCARD - удалить план, без вызова глобального обработчика.
#define CRITTER_EVENT_PLANE_RUN   (35)

Вызывается во время выполнения некоторых планов.

Сигнатура обработчика:
int _FuncName(Critter& cr, NpcPlane& plane, uint childIndex, int reason, uint& r0, uint& r1, uint& r2)
Аргументы
plane План, для которого вызвано событие.
childIndex Номер плана в цепочке наследников.
reason Причина, по которой было вызвано событие. От неё зависит интерпретация остальных аргументов.
Возвращает
PLANE_RUN_GLOBAL - вызвать глобальный обработчик, который определит сохранить или удалить план; PLANE_KEEP - сохранить план, без вызова глобального обработчика; PLANE_DISCARD - удалить план, без вызова глобального обработчика.

На данный момент событие вызываются для обработки следующих действий:

  • REASON_ATTACK_WEAPON. Выбор оружия атакующим криттером.
    Аргументы
    [in] r0 Идентификатор криттера-цели.
    [in] r1,r2 Не используются.
    [out] r0 Идентификатор выбранного для атаки предмета-оружия.
    [out] r1 Номер, обозначающий способ использования оружия (см. ProtoItem::Weapon_SetUse).
    [out] r2 Идентификатор тмпа рукопашной атаки (учитывается, если r0 == 0) (?).
  • REASON_ATTACK_DISTANTION. Выбор дистанции атаки. (?)
    Аргументы
    [in] r0 Идентификатор криттера-цели.
    [in] r1 NPC не может двигаться при r1 != 0.
    [in] r2 Минимальное количество HP (из AI.TXT).
    [out] r0 Лучшая дистанция.
    [out] r1 Минимальная дистанция.
    [out] r2 Максимальная дистанция. Если r2 == 0, то это означает, что нужно убегать.
  • REASON_ATTACK_USE_AIM. Прицеливание.
    Аргументы
    [in] r0 Идентификатор криттера-цели..
    [in] r1 Не используется.
    [in] r2 Не используется.
    [out] r0 Номер, обозначающий способ использования оружия (см. ProtoItem::Weapon_SetUse).
    [out] r1 Цель (см. Hit Locations).
    [out] r2 Время (в мс), на которое нужно сделать паузу при атаке.
#define CRITTER_EVENT_GLOBAL_PROCESS   (38)

Вызывается при событиях на глобальной карте.

Позволяет обрабатывать события от глобальной карты индивидуально для любого криттера.

Сигнатура обработчика:
bool _FuncName(Critter& cr, int type, Critter@[]& group, Item@ car, uint& x, uint& y, uint& toX, uint& toY, uint& speed, uint& encounterDescriptor, bool& waitForAnswer)
Аргументы
type Тип события (см. Global Map Events);
group Указатели на криттеров в группе, если она сформирована;
car Указатель на машину, если она имеется;
x Текущая координата X группы на глобальной карте;
y Текущая координата Y группы на глобальной карте;
toX Координата X конечной точки движения;
toY Координата Y конечной точки движения;
speed Скорость движения в данной точке (зависит от маски глобальной карты);
encounterDescriptor Уникальный идентификатор энкаунтера;
waitForAnswer Ожидание ответа лидера группы.
Прим.
Аргументы передающиеся по ссылке (кроме cr и group) можно переназначать.
Возвращает
true - глобальный обработчик global_process не запускается; false - запуск глобального обработчика.
См. также
global_process
#define CRITTER_EVENT_GLOBAL_INVITE   (39)

Вызывается при переходе на карту на глобальной карте мира.

Сигнатура обработчика:
bool _FuncName(Critter& cr, Critter@[]& group, Item@ car, uint encounterDescriptor, int combatMode, uint& mapId, uint16& hexX, uint16& hexY, uint8& dir)
Аргументы
group указатели на криттеров в группе, если она сформирована;
car указатель на машину, если она имеется;
encounterDescriptor уникальный идентификатор энкаунтера;
combatMode режим боя (COMBAT_MODE_ANY, COMBAT_MODE_REAL_TIME или COMBAT_MODE_TURN_BASED);
mapId идентификатор карты;
hexX начальные координата X для появления группы;
hexY начальные координата Y для появления группы;
dir направление криттера по умолчанию.
Возвращает
true - глобальный обработчик global_invite не запускается; false - запуск глобального обработчика.
См. также
global_invite
#define CRITTER_EVENT_TURN_BASED_PROCESS   (40)

Вызывается в начале и в конце хода криттера.

Сигнатура обработчика:
void _FuncName(Critter& cr, Map& map, bool beginTurn)
Аргументы
map карта на которой зафиксировано событие;
beginTurn true - функция вызвана в начале хода, false - функция вызвана в конце хода.
#define CRITTER_EVENT_SMTH_TURN_BASED_PROCESS   (41)

Вызывается в начале и конце хода какого-либо криттера в области видимости.

Сигнатура обработчика:
void _FuncName(Critter& cr, Critter& fromCr, Map& map, bool beginTurn)
Аргументы
map карта на которой зафиксировано событие;
beginTurn true - функция вызвана в начале хода, false - функция вызвана в конце хода.
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)