hook — различия между версиями
Manticora (обсуждение | вклад) м |
Manticora (обсуждение | вклад) (npc_exist) |
||
Строка 26: | Строка 26: | ||
:Наступает перед тем, как из магазина игрока исчезнет проданный предмет. | :Наступает перед тем, как из магазина игрока исчезнет проданный предмет. | ||
:Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8965/ 8965] | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8965/ 8965] | ||
+ | |||
+ | ;npc_exist | ||
+ | :Наступает перед тем, как из магазина игрока исчезнет проданный предмет. | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8938/ 8938] | ||
+ | :В коде выглядит так: Plugins::callHook('npc_exist', {npc => $actor}); |
Версия 16:51, 30 декабря 2015
- Hook / зацепка / событие
- В OpenKore есть события, так называемые хуки (зацепки). На события можно подписаться. Когда наступает событие, OpenKore цепляет подписавшиеся на него функции (обработчики событий). У события есть название, именно по этому названию подписываются на события.
- На события можно подписаться в плагине (см. How_to_write_plugins_for_OpenKore) или в макросе (см. Макро-плагин, условие автомакроса hook).
Как выглядит зацепка в коде OpenKore можно посмотреть в ревизии 8991:
Plugins::callHook('portal_exist2', { srcMap => $destMap, srcx => $destPos{x}, srcy => $destPos{y}, dstMap => $sourceMap, dstx => $sourcePos{x}, dsty => $sourcePos{y} });
В данном примере дёргаются обработчики события portal_exist2, им передаются шесть параметров.
Некоторые события
- zeny_change
- Количество зени изменилось. Например, что-то продали.
- Добавлено в ревизии 8965
- vending_item_sold
- Наступает перед тем, как из магазина игрока исчезнет проданный предмет.
- Добавлено в ревизии 8965
- npc_exist
- Наступает перед тем, как из магазина игрока исчезнет проданный предмет.
- Добавлено в ревизии 8938
- В коде выглядит так: Plugins::callHook('npc_exist', {npc => $actor});