![]() |
FOnline
|
События для криттеров. Подробнее...
Общие | |
События, связанные с изменением состояния криттера. 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) |
| Вызывается, когда криттер в области видимости уходит в нокаут. Подробнее... | |
Планы | |
|
Срабатывают и для дочерних планов: 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) |
| Вызывается в начале и конце хода какого-либо криттера в области видимости. Подробнее... | |
События для криттеров.
| #define CRITTER_EVENT_IDLE (0) |
Вызывается каждые 20 секунд простоя криттера.
Для изменения времени вызова события используйте метод Critter::Wait в обработчике.
| #define CRITTER_EVENT_FINISH (1) |
Вызывается при удалении криттера из игры.
| deleted | @с true - функция вызвана перед полным удалением криттера, @с false - функция вызвана остановкой сервера. |
| #define CRITTER_EVENT_DEAD (2) |
Вызывается при смерти криттера перед глобальным обработчиком смертей critter_dead.
| killer | Если криттер был убит другим криттером, то аргумент содержит указатель на убившего криттера. |
| #define CRITTER_EVENT_RESPAWN (3) |
Вызывается при оживлении криттера после смерти (респауне).
| #define CRITTER_EVENT_KNOCKOUT (23) |
Вызывается при уходе криттера в нокаут.
| faceUp | Показывает, упал ли криттер лицом вверх (true) или вниз (false). |
| lostAp | Количество очков действия, необходимых для поднятия с земли. |
| knockDist | Количество гексов, на которое "отлетел" криттер. |
| #define CRITTER_EVENT_ATTACK (15) |
Вызывается при атаке криттером кого-либо.
| target | Атакуемый криттер. |
true глобальный обработчик critter_attack не вызывается.| #define CRITTER_EVENT_ATTACKED (16) |
Вызывается когда данного криттера атаковали.
| attacker | Атакующий криттер. |
true глобальный обработчик critter_attacked не вызывается.| #define CRITTER_EVENT_STEALING (17) |
Вызываетcя при попытке воровства у данного криттера.
| thief | Вор. |
| success | Успешно ли произошло воровство, расчитанное в critter_stealing. |
| item | Воруемый предмет. |
| count | Количество воруемых предметов. |
| #define CRITTER_EVENT_BARTER (36) |
Вызывается когда с NPC начинается или заканчивается бартер.
| player | Игрок, начинающий или заканчивающий бартер. |
| attach | Показывает, начинается (true) или заканчивается (false) бартер. |
| barterCount | Всего торгующих, включая новое присоединение/отсоединение. |
true – бартер начинается; false – бартер не начинается. Актуально при attach == true.| #define CRITTER_EVENT_TALK (37) |
Вызывается, когда с NPC начинают или заканчивают разговор.
| player | Игрок, начинающий или заканчивающий разговор. |
| attach | Показывает, начинается (true) или заканчивается (false) разговор. |
| talkCount | Всего разговаривающих, включая новое присоединение/отсоединение. |
true – диалог начинается; false – не начинается. Актуально при attach == true.| #define CRITTER_EVENT_USE_SKILL (21) |
Вызывается при использовании навыка на что-либо.
| skill | Используемый скилл (см. Навыки и Special Skill Values). |
| onCritter | Если предмет используется на криттере, то аргумент содержит указатель на этого криттера. |
| onItem | Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет. |
| onScenery | Если предмет используется на сценери, то аргумент содержит указатель на это сценери. |
false вызывается глобальный обработчик critter_use_skill При true – выход.| #define CRITTER_EVENT_USE_SKILL_ON_ME (22) |
Вызывается при использовании кем-то навыка на данном криттере.
| whoUse | Криттер использующий скилл |
| skill | Используемый скилл (см. Навыки и Special Skill Values). |
false вызывается глобальный обработчик critter_use_skill При true – выход. | #define CRITTER_EVENT_USE_ITEM (19) |
Вызывается при использовании данными криттером какого-либо предмета.
| item | Используемый предмет. |
| onCritter | Если предмет используется на криттере, то аргумент содержит указатель на этого криттера. |
| onItem | Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет. |
| onScenery | Если предмет используется на сценери, то аргумент содержит указатель на это сценери. |
false вызывается глобальный обработчик critter_use_item. При true – выход.| #define CRITTER_EVENT_USE_ITEM_ON_ME (20) |
Вызывается при использовании какого-либо предмета на данном криттере.
| whoUse | Криттер использовавший предмет. |
| Item& | Используемый предмет. |
false вызывается глобальный обработчик critter_use_item. При true – выход. | #define CRITTER_EVENT_SHOW_ITEM_ON_MAP (12) |
Вызывается при появлении предмета в поле зрения.
| showItem | Появившийся предмет. |
| added | true, если предмет появился при смене радиуса обзора криттера; false, если предмет появился в ином случае (например, если был выкинут другим криттером). |
| dropper | Если предмет был выкинут из инвентаря какого-либо криттера, то аргумент будет содержать указатель на этого криттера. В противном случае, null. |
| #define CRITTER_EVENT_CHANGE_ITEM_ON_MAP (13) |
Вызывается в том случае, если поменялся предмет в поле зрения.
Например, открылась или закрылась дверь (или контейнер).
| item | Изменившийся предмет. |
| #define CRITTER_EVENT_HIDE_ITEM_ON_MAP (14) |
Вызывается при исчезновении предмета из поля зрения.
| hidedItem | Исчезнувший предмет. |
| removed | true, если предмет исчез при смене радиуса обзора криттера; false, если предмет исчез в рамках радиуса обзора (например, если был подобран другим криттером). |
| picker | Если предмет был подобран каким-либо криттером, то аргумент будет содержать указатель на этого криттера. В противном случае, null. |
| #define CRITTER_EVENT_DROP_ITEM (21) |
Вызывается при выкидывании криттером предмета из своего инвентаря.
| item | Выкидиваемый предмет. |
| #define CRITTER_EVENT_MOVE_ITEM (24) |
Вызывается при перемещении какого-либо предмета в инвентаре данного криттера.
| item | Перемещаемый предмет. |
| fromSlot | Слот, в котором предмет находился до перемещения (см. Слоты инвентаря). |
| #define CRITTER_EVENT_SHOW_CRITTER (4) |
Вызывается при появлении нового криттера в поле зрения.
| showCr | Появившийся в поле зрения криттер. |
| #define CRITTER_EVENT_SHOW_CRITTER_1 (5) |
Вызывается при появлении нового криттера в поле зрения.
Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist1.
| showCr | Появившийся в поле зрения криттер. |
| #define CRITTER_EVENT_SHOW_CRITTER_2 (6) |
Вызывается при появлении нового криттера в поле зрения.
Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist2.
| showCr | Появившийся в поле зрения криттер. |
| #define CRITTER_EVENT_SHOW_CRITTER_3 (7) |
Вызывается при появлении нового криттера в поле зрения.
Радиус обнаружения регулируется с помощью поля Critter::ShowCritterDist3.
| showCr | Появившийся в поле зрения криттер. |
| #define CRITTER_EVENT_HIDE_CRITTER (8) |
Вызывается при пропаже криттера из поля зрения.
| hideCr | Исчезнувший из поля зрения криттера. |
| #define CRITTER_EVENT_HIDE_CRITTER_1 (9) |
Вызывается при пропаже криттера из поля зрения.
Радиус поля зрения определяется полем Critter::ShowCritterDist1.
| hideCr | Исчезнувший из поля зрения криттера. |
| #define CRITTER_EVENT_HIDE_CRITTER_2 (10) |
Вызывается при пропаже криттера из поля зрения.
Радиус поля зрения определяется полем Critter::ShowCritterDist2.
| hideCr | Исчезнувший из поля зрения криттера. |
| #define CRITTER_EVENT_HIDE_CRITTER_3 (11) |
Вызывается при пропаже криттера из поля зрения.
Радиус поля зрения определяется полем Critter::ShowCritterDist1.
| hideCr | Исчезнувший из поля зрения криттера. |
| #define CRITTER_EVENT_MESSAGE (18) |
Вызывается, когда приходит сообщение, отправленное с помощью метода Critter::SendMessage.
| fromCr | Криттер, отправивший сообщение. |
| message | Номер сообщения. |
| value | Переданное значение. |
| #define CRITTER_EVENT_SMTH_DEAD (24) |
Вызывается, когда криттер в области видимости умирает.
| fromCr | Умерший криттер. |
| killer | Если криттер был убит другим криттером, то аргумент содержит указатель на убившего криттера. |
| #define CRITTER_EVENT_SMTH_STEALING (25) |
Вызывается, когда какой-либо криттер в области видимости подвергся краже.
| fromCr | Криттер, подвергшийся воровству. |
| thief | Криттер, совершивший воровство. |
| success | Успешно ли произошло воровство. |
| item | Сворованный предмет. |
| count | Количество сворованных предметов. |
| #define CRITTER_EVENT_SMTH_ATTACK (26) |
Вызывается, когда какой-либо криттер в области видимости атакует кого-либо.
| fromCr | Атаковавший криттер. |
| target | Атакованный криттер. |
| #define CRITTER_EVENT_SMTH_ATTACKED (27) |
Вызывается, когда какой-либо криттер в области видимости атакован.
| fromCr | Атакованный криттер. |
| attacker | Атаковаший криттер. |
| #define CRITTER_EVENT_SMTH_USE_ITEM (28) |
Вызывается, когда криттер в области видимости использует предмет на чем-либо.
| fromCr | Криттер использующий предмет. |
| item | Используемый предмет. |
| onCritter | Если предмет используется на криттере, то аргумент содержит указатель на этого криттера. |
| onItem | Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет. |
| onScenery | Если предмет используется на сценери, то аргумент содержит указатель на это сценери. |
| #define CRITTER_EVENT_SMTH_USE_SKILL (29) |
Вызывается, когда криттер в области видимости использует навык на чем-либо.
| fromCr | Криттер использующий навык. |
| skill | Используемый скил. (см. Навыки и Special Skill Values). |
| onCritter | Если предмет используется на криттере, то аргумент содержит указатель на этого криттера. |
| onItem | Если предмет используется на другом предмете, то аргумент содержит указатель на этот (другой) предмет. |
| onScenery | Если предмет используется на сценери, то аргумент содержит указатель на это сценери. |
| #define CRITTER_EVENT_SMTH_DROP_ITEM (30) |
Вызывается, когда криттер в области видимости выкидывает предмет.
| fromCr | Криттер выкинувший итем |
| item | Выкидиваемый предмет. |
| #define CRITTER_EVENT_SMTH_MOVE_ITEM (31) |
Вызывается, когда криттер в области видимости меняет местоположение предмета.
| fromCr | Криттер поменявший у итема место |
| item | Перемещаемый предмет. |
| fromSlot | Слот, в котором предмет находился до перемещения (см. Слоты инвентаря). |
| #define CRITTER_EVENT_SMTH_KNOCKOUT (32) |
Вызывается, когда криттер в области видимости уходит в нокаут.
| fromCr | Ушедший в нокаут криттер. |
| faceUp | Показывает, упал ли криттер лицом вверх (true) или вниз (false). |
| lostAp | Количество очков действия, необходимых для поднятия с земли. |
| knockDist | Количество гексов, на которое "отлетел" криттер. |
| #define CRITTER_EVENT_PLANE_BEGIN (33) |
Вызывается перед добавлением плана (которого еще нет в списках у NPC).
| plane | План. |
| childIndex | Номер плана в качестве наследника, если 0, значит план базовый. |
| reason | Указывает причину начала плана (см. Plane begin reasons). |
| someCr | В некоторых случаях хранит указатель на персонажа (см. Работа с планами ). |
| someItem | В некоторых случаях хранит указатель на предмет (см. Работа с планами ). |
| #define CRITTER_EVENT_PLANE_END (34) |
Вызывается перед удалением плана (который ещё присутствует в списках планов).
| plane | План. |
| childIndex | Номер плана в качестве наследника, если 0, значит план базовый. |
| reason | Указывает причину завершения плана (см. Plane end reasons). |
| someCr | В некоторых случаях хранит указатель на персонажа (см. Работа с планами ). |
| someItem | В некоторых случаях хранит указатель на предмет (см. Работа с планами ). |
| #define CRITTER_EVENT_PLANE_RUN (35) |
Вызывается во время выполнения некоторых планов.
| plane | План, для которого вызвано событие. |
| childIndex | Номер плана в цепочке наследников. |
| reason | Причина, по которой было вызвано событие. От неё зависит интерпретация остальных аргументов. |
На данный момент событие вызываются для обработки следующих действий:
| [in] | r0 | Идентификатор криттера-цели. |
| [in] | r1,r2 | Не используются. |
| [out] | r0 | Идентификатор выбранного для атаки предмета-оружия. |
| [out] | r1 | Номер, обозначающий способ использования оружия (см. ProtoItem::Weapon_SetUse). |
| [out] | r2 | Идентификатор тмпа рукопашной атаки (учитывается, если r0 == 0) (?). |
| [in] | r0 | Идентификатор криттера-цели. |
| [in] | r1 | NPC не может двигаться при r1 != 0. |
| [in] | r2 | Минимальное количество HP (из AI.TXT). |
| [out] | r0 | Лучшая дистанция. |
| [out] | r1 | Минимальная дистанция. |
| [out] | r2 | Максимальная дистанция. Если r2 == 0, то это означает, что нужно убегать. |
| [in] | r0 | Идентификатор криттера-цели.. |
| [in] | r1 | Не используется. |
| [in] | r2 | Не используется. |
| [out] | r0 | Номер, обозначающий способ использования оружия (см. ProtoItem::Weapon_SetUse). |
| [out] | r1 | Цель (см. Hit Locations). |
| [out] | r2 | Время (в мс), на которое нужно сделать паузу при атаке. |
| #define CRITTER_EVENT_GLOBAL_PROCESS (38) |
Вызывается при событиях на глобальной карте.
Позволяет обрабатывать события от глобальной карты индивидуально для любого криттера.
| type | Тип события (см. Global Map Events); |
| group | Указатели на криттеров в группе, если она сформирована; |
| car | Указатель на машину, если она имеется; |
| x | Текущая координата X группы на глобальной карте; |
| y | Текущая координата Y группы на глобальной карте; |
| toX | Координата X конечной точки движения; |
| toY | Координата Y конечной точки движения; |
| speed | Скорость движения в данной точке (зависит от маски глобальной карты); |
| encounterDescriptor | Уникальный идентификатор энкаунтера; |
| waitForAnswer | Ожидание ответа лидера группы. |
true - глобальный обработчик global_process не запускается; false - запуск глобального обработчика.| #define CRITTER_EVENT_GLOBAL_INVITE (39) |
Вызывается при переходе на карту на глобальной карте мира.
| 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 - запуск глобального обработчика.| #define CRITTER_EVENT_TURN_BASED_PROCESS (40) |
| #define CRITTER_EVENT_SMTH_TURN_BASED_PROCESS (41) |
Вызывается в начале и конце хода какого-либо криттера в области видимости.
| map | карта на которой зафиксировано событие; |
| beginTurn | true - функция вызвана в начале хода, false - функция вызвана в конце хода. |