hook — различия между версиями
Manticora (обсуждение | вклад) (Новая страница: «;Hook / зацепка / событие :В OpenKore есть события, так называемые хуки (зацепки). На события можно ...») |
4epT (обсуждение | вклад) м |
||
(не показано 8 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
;Hook / зацепка / событие | ;Hook / зацепка / событие | ||
:В OpenKore есть события, так называемые хуки (зацепки). На события можно подписаться. Когда наступает событие, OpenKore цепляет подписавшиеся на него функции (обработчики событий). У события есть название, именно по этому названию подписываются на события. | :В OpenKore есть события, так называемые хуки (зацепки). На события можно подписаться. Когда наступает событие, OpenKore цепляет подписавшиеся на него функции (обработчики событий). У события есть название, именно по этому названию подписываются на события. | ||
− | :На события можно подписаться в плагине (см. [[How_to_write_plugins_for_OpenKore]]) или в макросе (см. [[ | + | :На события можно подписаться в плагине (см. [[How_to_write_plugins_for_OpenKore]]) или в макросе (см. [[macro|плагин macro]], условие автомакроса hook). |
Как выглядит зацепка в коде OpenKore можно посмотреть в ревизии [http://sourceforge.net/p/openkore/code/8981/ 8991]: | Как выглядит зацепка в коде OpenKore можно посмотреть в ревизии [http://sourceforge.net/p/openkore/code/8981/ 8991]: | ||
Строка 15: | Строка 15: | ||
В данном примере дёргаются обработчики события portal_exist2, им передаются шесть параметров. | В данном примере дёргаются обработчики события portal_exist2, им передаются шесть параметров. | ||
+ | |||
+ | |||
+ | ==Некоторые события== | ||
+ | |||
+ | ;zeny_change | ||
+ | :Количество зени изменилось. Например, что-то продали. | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8965/ 8965] | ||
+ | |||
+ | ;vending_item_sold | ||
+ | :Наступает перед тем, как из магазина игрока исчезнет проданный предмет. | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8965/ 8965] | ||
+ | |||
+ | ;npc_exist | ||
+ | :Наступает после того, как на консоль выводится сообщение, мол, вижу непись: "NPC Exists: %s (%d, %d) (ID %d) - (%d)\n"... | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8938/ 8938] | ||
+ | :В коде выглядит так: Plugins::callHook('npc_exist', {npc => $actor}); | ||
+ | |||
+ | ;AI_sell_auto | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8874/ 8874] | ||
+ | |||
+ | ;pvp_mode | ||
+ | :Добавлено в ревизии [http://sourceforge.net/p/openkore/code/8738/ 8738] | ||
+ | :Plugins::callHook('pvp_mode', {pvp => $pvp}); # 1 PvP, 2 GvG, 3 Battleground | ||
+ | |||
+ | ;route | ||
+ | :Plugins::callHook('route', {status => 'success'}); и Plugins::callHook('route', {status => 'stuck'}); | ||
+ | :См. ревизию [http://sourceforge.net/p/openkore/code/8645/ 8645]. |
Текущая версия на 02:54, 22 января 2019
- Hook / зацепка / событие
- В OpenKore есть события, так называемые хуки (зацепки). На события можно подписаться. Когда наступает событие, OpenKore цепляет подписавшиеся на него функции (обработчики событий). У события есть название, именно по этому названию подписываются на события.
- На события можно подписаться в плагине (см. How_to_write_plugins_for_OpenKore) или в макросе (см. плагин macro, условие автомакроса 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
- Наступает после того, как на консоль выводится сообщение, мол, вижу непись: "NPC Exists: %s (%d, %d) (ID %d) - (%d)\n"...
- Добавлено в ревизии 8938
- В коде выглядит так: Plugins::callHook('npc_exist', {npc => $actor});
- AI_sell_auto
- Добавлено в ревизии 8874
- pvp_mode
- Добавлено в ревизии 8738
- Plugins::callHook('pvp_mode', {pvp => $pvp}); # 1 PvP, 2 GvG, 3 Battleground
- route
- Plugins::callHook('route', {status => 'success'}); и Plugins::callHook('route', {status => 'stuck'});
- См. ревизию 8645.