Использую хук "target_died", вот кусочек кода из Attack.pm, где он находится:
if ($monsters_old{$ID} && $monsters_old{$ID}{dead}) {
message T("Target died\n"), "ai_attack";
Plugins::callHook("target_died");
monKilled();
Вопрос - как в функции, которая пишется в плагине и цепляющаяся к этому хуку, определить имя этого убитого монстра?
Нашел что-то касающееся этого вот здесь
:http://forums.openkore.com/viewtopic.ph ... ied#p26279. Но там значение передается в макрос, а как воспользоваться им в плагине я не знаю.
Передача аргументов при срабатывании хука
Модератор: 4epT
Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Re: Вопрос по плагину.
Никак - хук вызывается без аргументов. Нужно их добавить, изменить на что-то такое:
Код: Выделить всё
...
if ($monsters_old{$ID} && $monsters_old{$ID}{dead}) {
message T("Target died\n"), "ai_attack";
Plugins::callHook("target_died", {ID => $monsters_old{$ID}});
monKilled();
...
Re: Вопрос по плагину.
Kissa2k
Это я понял. Я не понял каким образом обратиться к этой ID в теле функции плагина?
my $name = ???
Это я понял. Я не понял каким образом обратиться к этой ID в теле функции плагина?
my $name = ???
-
- Разработчик
- Сообщения: 819
- Зарегистрирован: Пн окт 27, 2008 9:49 pm
Re: Вопрос по плагину.
Код: Выделить всё
Plugins::callHook($hookname, $args);
sub callee {
my ($hookname, $args, $userdata) = @_;
}
Re: Передача аргументов при срабатывании хука
EternalHarvest
Спасибо!
Спасибо!
Re: Передача аргументов при срабатывании хука
EternalHarvest
ММ... может нас стоит импрувнуть Хуки?
А то их много, и они всё ещё сыроватые, как етот.
ММ... может нас стоит импрувнуть Хуки?
А то их много, и они всё ещё сыроватые, как етот.