FOnline
 Указатель Классы Функции Переменные Группы Страницы
Item events

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

Макросы

#define ITEM_EVENT_FINISH   (0)
 Вызывается при удалении предмета. Подробнее...
 
#define ITEM_EVENT_ATTACK   (1)
 Вызывается при атаке данным предметом криттера. Подробнее...
 
#define ITEM_EVENT_USE   (2)
 Вызывается при использовании предмета на что-либо. Подробнее...
 
#define ITEM_EVENT_USE_ON_ME   (3)
 Вызывается при использовании предмета на данный предмет. Подробнее...
 
#define ITEM_EVENT_SKILL   (4)
 Вызывается при использовании навыка на предмете. Подробнее...
 
#define ITEM_EVENT_DROP   (5)
 Вызывается при выкидывании предмета из инвентаря. Подробнее...
 
#define ITEM_EVENT_MOVE   (6)
 Вызывается при перемещении предмета в инвентаре. Подробнее...
 
#define ITEM_EVENT_WALK   (7)
 Вызывается при хождении по предмету на карте. Подробнее...
 

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

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

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

Макросы

#define ITEM_EVENT_FINISH   (0)

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

Сигнатура обработчика:
bool _FuncName(Item& item, bool deleted)
Аргументы
deletedtrue - предмет полностью удаляется из игры, false - событие вызвано остановкой сервера.
Прим.
Полного удаления предмета можно избежать, переместив куда-нибудь данный предмет.
См. также
Item::EventFinish
#define ITEM_EVENT_ATTACK   (1)

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

Сигнатура обработчика:
bool _FuncName(Item& item, Critter& crit, Critter& target)
Аргументы
critАтакующий криттер.
targetАтакуемый криттер.
Возвращает
Если возвращается true, то обработка атаки не произойдет. При false вызывается обработчик криттера.
См. также
Item::EventAttack CRITTER_EVENT_ATTACK
#define ITEM_EVENT_USE   (2)

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

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

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

Сигнатура обработчика:
bool _FuncName(Item& item, Critter& crit, Item@ usedItem)
Аргументы
critКриттер, использующий предмет.
usedItemИспользуемый предмет.
Возвращает
При false вызывается обработчик криттера, потом глобальный critter_use_item. При true – выход.
См. также
Item::EventUseOnMe
#define ITEM_EVENT_SKILL   (4)

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

Сигнатура обработчика:
bool _FuncName(Item& item, Critter& crit, int skill)
Аргументы
critКриттер, применяющий навык.
skillИспользуемый навык. (см. Навыки и Special Skill Values).
Возвращает
При false вызывается обработчик криттера, потом глобальный critter_use_skill. При true – выход.
См. также
Item::EventSkill CRITTER_EVENT_USE_SKILL critter_use_skill
#define ITEM_EVENT_DROP   (5)

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

Сигнатура обработчика:
void _FuncName(Item& item, Critter& crit)
Аргументы
critКриттер, выкидывающий предмет.
См. также
Item::EventDrop CRITTER_EVENT_DROP_ITEM
#define ITEM_EVENT_MOVE   (6)

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

Сигнатура обработчика:
void _FuncName(Item& item, Critter& crit, uint8 fromSlot)
Аргументы
critКриттер, переместивший предмет.
fromSlotСлот, в котором предмет находился до перемещения (см. Слоты инвентаря).
См. также
Item::EventMove CRITTER_EVENT_MOVE_ITEM
#define ITEM_EVENT_WALK   (7)

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

Одно из основных предназначений этого события: реализация различных ловушек, мин.

Сигнатура обработчика:
void _FuncName(Item& item, Critter& crit, bool entered, uint8 dir)
Аргументы
critКриттер, прошедшийся по предмету.
enteredПринимает значение true в том случае, если криттер встал на предмет; false – если криттер ушел с предмета.
dirНаправление движения.
См. также
Item::EventWalk