MrHell Posted October 28, 2022 Share Posted October 28, 2022 (edited) Приветствую! пытаюсь разобраться в написании аддонов, конкретно подзавис над считыванием хп обьекта т.е. в апи сказано что при ловле EVENT_OBJECT_HEALTH_CHANGED обязательно указывать ID обьекта, что понятно, так вот, при указывании в качестве параметра avatar.GetID() он ловит изменения собственного хп, но при указывании avatar.GetTarget() работать отказывается, хотя эта фукнция так же возвращает ID только уже таргета, выводил значения - совпадают по документации вроде как в интовом виде возвращаются так что все должно работать, но нет если так работать не будет, какие есть более рабочие варианты для мониторинга таргета?(пока что хп, дальше и бафов) Edited October 28, 2022 by MrHell Quote Link to comment Share on other sites More sharing options...
MrHell Posted October 28, 2022 Author Share Posted October 28, 2022 с этим разобрался внезапно EVENT_OBJECT_HEALTH_CHANGED - GetTarget() работает EVENT_UNIT_HEALTH_CHANGED - GetTarget() не работает но почему? айди же в интовом значении передается? Quote Link to comment Share on other sites More sharing options...
Zeno Posted October 28, 2022 Share Posted October 28, 2022 Скорее всего, не секрет, но EVENT_UNIT_HEALTH_CHANGED лучше уже не использовать - его удалят. Если только цели, то, думаю, достаточно будет обрабатывать событие о смене цели EVENT_AVATAR_TARGET_CHANGED, при котором производить регистрацию и дерегистрацию обработчиков событий EVENT_OBJECT_HEALTH_CHANGED и EVENT_OBJECT_BUFFS_CHANGED с фильтрами по цели. Крайне желательно запоминать статус регистраций, т.к. его нельзя проверить. Если предполагать их статус и предположение окажется неверным, то будет вылетать некритическая ошибка (будет писать в лог, если у игрока он включен, а выполнение продолжится). А проводить дерегистрацию обязательно потому что есть предел в 500 регистраций обработчиков. Есть другой способ. По EVENT_SECOND_TIMER использовать object.GetHealthInfo(avatar.GetTarget()) и object.GetBuffs(avatar.GetTarget()). Раз в секунду сами спрашиваем здоровье и бафы цели. Quote Link to comment Share on other sites More sharing options...
MrHell Posted October 28, 2022 Author Share Posted October 28, 2022 ага, тоже уже о таймере подумал, т.к. с EVENT_OBJECT_BUFF_ADDED возникли какие то непонятки, я хоть и указываю ID обьекта, он считывает обновление бафов со всей округи Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.