ребята, как написано в названии хочется сделать аддон с достижениями для хк, у меня получилось сделать только окно со списком достижений, но они не засчитываются, ни по именам нпс, ни по id которые брал с вики/базы, есть ли те кто разбирается в создании аддонов и может что либо рассказать, хотелось бы хотя бы сделать простой от убийств определенных мобов, определенных заданий и может быть количества убитых мобов
#1
Отправлено 03 апреля 2026 - 14:11
#2
Отправлено 03 апреля 2026 - 18:32
Чисто из интереса немного потыкался, навайбкодил вот эту штуку:
1) При убийстве врага (клик левой или правой кнопкой мыши по его трупу) добавляет в базу данных об убитых противниках имя и число убийств
2) Файл с базой у каждого персонажа свой и лежит в WTF\Account\АККАУНТ\СЕРВЕР\ИМЯ\SavedVariables
3) Добавил защиту от повторных кликов по одному и тому же трупу при помощи буфера на 50
4) При убийстве противника в чат отправляется надпись со статистикой ЛИБО всплывает достижение
5) Свои достижения на убийство противников пили в таблице достижений, у меня там самая простая структура для количества убийств без всяких вложенностей
6) Достижение висит 10 секунд, за это отвечает параметр toast.timeLeft = 10
7) Вывести статистику в чат можно командой /nkstat
8) Открыть журнал достижений со всеми полученными "ачивками" и причинами получения можно командой /nkachieve
На этом мой энтузиазм иссяк, попробуй потыкаться, может что-нибудь еще докрутишь и сделаешь полноценный аддон
Прикрепленные файлы
Сообщение отредактировал drreserv3d: 03 апреля 2026 - 18:32
#3
Отправлено 03 апреля 2026 - 19:08
Чисто из интереса немного потыкался, навайбкодил вот эту штуку:
1) При убийстве врага (клик левой или правой кнопкой мыши по его трупу) добавляет в базу данных об убитых противниках имя и число убийств
2) Файл с базой у каждого персонажа свой и лежит в WTF\Account\АККАУНТ\СЕРВЕР\ИМЯ\SavedVariables
3) Добавил защиту от повторных кликов по одному и тому же трупу при помощи буфера на 50
4) При убийстве противника в чат отправляется надпись со статистикой ЛИБО всплывает достижение
5) Свои достижения на убийство противников пили в таблице достижений, у меня там самая простая структура для количества убийств без всяких вложенностей
6) Достижение висит 10 секунд, за это отвечает параметр toast.timeLeft = 10
7) Вывести статистику в чат можно командой /nkstat
8) Открыть журнал достижений со всеми полученными "ачивками" и причинами получения можно командой /nkachieveНа этом мой энтузиазм иссяк, попробуй потыкаться, может что-нибудь еще докрутишь и сделаешь полноценный аддон
интересно, жаль что статистика идет только через клик по трупу конечно, но уже неплохо
#4
Отправлено 03 апреля 2026 - 21:17
Я не придумал как это иначе сделать. По идее у COMBAT_LOG_EVENT_UNFILTERED есть subevent UNIT_DIED, но то ли я что-то криво делал, то ли на 3.3.5 этого еще не было, то ли у нас это логирование отключено на сервере, то ли не так собирал информацию для отладки, но у меня максимум получалось поймать событие PLAYER_REGEN_ENABLED, которое просто регистрирует состояние выхода из боя:
"Fired after ending combat, as regen rates return to normal. Useful for determining when a player has left combat. This occurs when you are not on the hate list of any NPC, or a few seconds after the latest pvp attack that you were involved with."
#5
Отправлено 04 апреля 2026 - 03:30
Я не придумал как это иначе сделать. По идее у COMBAT_LOG_EVENT_UNFILTERED есть subevent UNIT_DIED, но то ли я что-то криво делал, то ли на 3.3.5 этого еще не было, то ли у нас это логирование отключено на сервере, то ли не так собирал информацию для отладки, но у меня максимум получалось поймать событие PLAYER_REGEN_ENABLED, которое просто регистрирует состояние выхода из боя:
"Fired after ending combat, as regen rates return to normal. Useful for determining when a player has left combat. This occurs when you are not on the hate list of any NPC, or a few seconds after the latest pvp attack that you were involved with."
должно приходить, если юнита убивает участник группы/рейда или ты сам, в параметре GUID передаётся, по нему можно CreatureID получить, по нему уже искать к какой ачиве относится. а вообще на прогресс/получение ачив тоже должны быть события
инфу по конкретной ачиве можн ополучать через GetAchievementInfo (https://wowwiki-arch...AchievementInfo)
есть ещё ивент PARTY_KILL
UNIT_DIED destGUID and destName refer to the unit that died.
PARTY_KILL includes both sourceGUID and destGUID, but only reports for you (not in a party) or your other 4 party members (not raid members)
Сообщение отредактировал CrossDoOm: 04 апреля 2026 - 04:40
#6
Отправлено 04 апреля 2026 - 10:13
интересно, жаль что статистика идет только через клик по трупу конечно, но уже неплохо
Прикрепленные файлы
Сообщение отредактировал drreserv3d: 04 апреля 2026 - 10:13
#7
Отправлено 04 апреля 2026 - 15:43
Я понял свою принципиальную ошибку. Я зашел во вкладку "Журнал боя", нажал на стрелочку и поставил галочку "Убийства". После этого лог боя стал примерно вот таким:[PLAYER_TARGET_CHANGED] -- Взял в таргет противника[COMBAT_LOG_EVENT] subevent=PARTY_KILL src=ИМЯ dst=ВРАГ[COMBAT_LOG_EVENT_UNFILTERED] subevent=PARTY_KILL src=ИМЯ dst=ВРАГ[COMBAT_LOG_EVENT] subevent=UNIT_DIED src=nil dst=ВРАГ[COMBAT_LOG_EVENT_UNFILTERED] subevent=UNIT_DIED src=nil dst=ВРАГ[PLAYER_TARGET_CHANGED] -- Смена цели (таргет пропал)[PLAYER_REGEN_ENABLED] -- Выход из бояВот исправленная версия счетчика, который работает как ты и хотел
посмотрел, да считает, причем даже мобы пошли в зачет прошлой версии, спасибо, надеюсь дальше осилю
#8
Отправлено 04 апреля 2026 - 18:02
Я понял свою принципиальную ошибку. Я зашел во вкладку "Журнал боя", нажал на стрелочку и поставил галочку "Убийства". После этого лог боя стал примерно вот таким:[PLAYER_TARGET_CHANGED] -- Взял в таргет противника[COMBAT_LOG_EVENT] subevent=PARTY_KILL src=ИМЯ dst=ВРАГ[COMBAT_LOG_EVENT_UNFILTERED] subevent=PARTY_KILL src=ИМЯ dst=ВРАГ[COMBAT_LOG_EVENT] subevent=UNIT_DIED src=nil dst=ВРАГ[COMBAT_LOG_EVENT_UNFILTERED] subevent=UNIT_DIED src=nil dst=ВРАГ[PLAYER_TARGET_CHANGED] -- Смена цели (таргет пропал)[PLAYER_REGEN_ENABLED] -- Выход из бояВот исправленная версия счетчика, который работает как ты и хотел
COMBAT_LOG_EVENT не нужно отслеживать, если отслеживаешь COMBAT_LOG_EVENT_UNFILTERED, разница как раз в том, что первый ловит события комбат лога с учётом твоих настроек комбатлога, второй ловит все события комбатлога (как раз второй чаще используется аддонами чтобы от этих самых настроек не зависеть, а видеть все ивенты)
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") -- только ОДНО событие!
f:SetScript("OnEvent", function(self, event, timestamp, subevent, hideCaster,
sourceGUID, sourceName, sourceFlags, sourceRaidFlags,
destGUID, destName, destFlags, destRaidFlags)
тут набор параметров из более поздних версий, например параметров hideCaster и ___RaidFlags в ЛКшном интерфейсе ещё нет, соответственно функция уже не будет работать так как ожидается, т.к. параметры смещены. правильный набор параметров:
(self, event, timestamp, subevent, sGUID, sName, sFlags, dGUID, dName, dFlags, ...)
P.S. а так лайк конечно тебе за то что ты вообще понял что хотел автор. потому что я - не понял ![]()
#9
Отправлено Вчера, 00:02
COMBAT_LOG_EVENT не нужно отслеживать, если отслеживаешь COMBAT_LOG_EVENT_UNFILTERED, разница как раз в том, что первый ловит события комбат лога с учётом твоих настроек комбатлога, второй ловит все события комбатлога (как раз второй чаще используется аддонами чтобы от этих самых настроек не зависеть, а видеть все ивенты)
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") -- только ОДНО событие! f:SetScript("OnEvent", function(self, event, timestamp, subevent, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags)тут набор параметров из более поздних версий, например параметров hideCaster и ___RaidFlags в ЛКшном интерфейсе ещё нет, соответственно функция уже не будет работать так как ожидается, т.к. параметры смещены. правильный набор параметров:
(self, event, timestamp, subevent, sGUID, sName, sFlags, dGUID, dName, dFlags, ...)P.S. а так лайк конечно тебе за то что ты вообще понял что хотел автор. потому что я - не понял
я же написал в начале, аддон с достижениями для хардкора, вот сейчас получились уже сделать такое, там вкладки с достижениями за определенное количество убийств, количество заданий, взятие уровней и достижение за смерть (после которого другие достижение стираются, ну и кнопку сброса статистики на всякий случай
для меня на самом деле это уже успех, так как я почти не шарю
Сообщение отредактировал Hesvul: Вчера, 00:01
#10
Отправлено Вчера, 00:36
я же написал в начале, аддон с достижениями для хардкора, вот сейчас получились уже сделать такое, там вкладки с достижениями за определенное количество убийств, количество заданий, взятие уровней и достижение за смерть (после которого другие достижение стираются, ну и кнопку сброса статистики на всякий случай
для меня на самом деле это уже успех, так как я почти не шарю
откуда брать эти категории, список достижений и критерии? мне как случайно зашедшему сюда неясно было что имелось в виду под "аддон с достижениями для хк"...
так-то можно что угодно наваять, вплоть до подсчёта общей статы для всех персов внутри игрового аккаунта. как говорится, без точного ТЗ - результат ХЗ ![]()
#11
Отправлено Вчера, 04:12
для теста, добавлены достижения:
- за убийства
- за квесты
- за каждого элитника и рарника
- за уровни
- за смерть
добавлен поиск по достижениями, полный сброс статистики и возможно линк достижений, но я не уверен работает ли он, так как нужен второй человек с аддоном
https://drive.google...iew?usp=sharing
не нашел того бы кто затестил, многие спят уже, так что если что напишите
Сообщение отредактировал Hesvul: Вчера, 04:49
#12
Отправлено Вчера, 15:42
Проверил в два окна, вижу сообщение аддона об успешной отправке, фактически никаких сообщений не отправляется
Вот какой-то вариант мгновенной отправки линка в канал /сказать - игроки с аддоном видят линк как будто бы это достижение, без аддона простой текст
Я точно менял логику кнопки линк (ищи по -- Кнопка "Линк" для отправки достижения в чат), точно трогал блок (-- ======= КАСТОМНЫЕ ССЫЛКИ НА ДОСТИЖЕНИЯ В ЧАТ =======), там вроде была ошибка с символами при парсинге. Остальные разделы вроде бы не трогал, но уже точно не вспомню
Скорее всего есть какой-то более простой или изящный вариант, я уже глубже копать не стал
Ну и так по мелочи, на что у меня уже не хватило усидчивости:
1) Случайно заметил что иконка аддона интересно двигается почти куда угодно - я ее смог и внутри миникарты поставить, и оторвать от миникарты
2) Вспомнил что видел на курсе аддон, который запоминает и отображает рекорды по урону для всех кнопок. Есть такое ощущение что тебе что-то подобное тоже захочется отслеживать
https://www.cursefor...addons/critline
3) Судя по вики на 3.3.5 доступна функция UnitClassification, которая умеет возвращать тип нпс. Если это так, то можно не хардкодить достижения за убийство редких врагов
Прикрепленные файлы
#13
Отправлено Вчера, 15:47
Проверил в два окна, вижу сообщение аддона об успешной отправке, фактически никаких сообщений не отправляется
Вот какой-то вариант мгновенной отправки линка в канал /сказать - игроки с аддоном видят линк как будто бы это достижение, без аддона простой текст
Я точно менял логику кнопки линк (ищи по -- Кнопка "Линк" для отправки достижения в чат), точно трогал блок (-- ======= КАСТОМНЫЕ ССЫЛКИ НА ДОСТИЖЕНИЯ В ЧАТ =======), там вроде была ошибка с символами при парсинге. Остальные разделы вроде бы не трогал, но уже точно не вспомню
Скорее всего есть какой-то более простой или изящный вариант, я уже глубже копать не стал
Ну и так по мелочи, на что у меня уже не хватило усидчивости:
1) Случайно заметил что иконка аддона интересно двигается почти куда угодно - я ее смог и внутри миникарты поставить, и оторвать от миникарты
2) Вспомнил что видел на курсе аддон, который запоминает и отображает рекорды по урону для всех кнопок. Есть такое ощущение что тебе что-то подобное тоже захочется отслеживать
https://www.cursefor...addons/critline
3) Судя по вики на 3.3.5 доступна функция UnitClassification, которая умеет возвращать тип нпс. Если это так, то можно не хардкодить достижения за убийство редких врагов
да кнопку для вызова меню специально сделал около мини карты, но что бы можно было двигать куда угодно, мне кажется это удобнее, что бы поставить в любой части экрана, может я ошибаюсь конечно
#14
Отправлено Вчера, 16:26
спасибо кстати за линки, это даже лучше чем я бы мог сделать думаю
#15
Отправлено Вчера, 23:22
пишите если есть идеи
https://drive.google...iew?usp=sharing
Сообщение отредактировал Hesvul: Вчера, 23:23
Темы с аналогичными тегами: аддон, достижения
|
Техническая поддержка →
Проблемы с персонажами →
вылазки странника1 Ответ 12 Просмотров |
|
||
|
Посоветуйте аддон3 Ответов 881 Просмотров |
|
||
|
Пользовательский раздел →
Обсуждение и вопросы о проекте →
Как называется аддон?1 Ответ 1 402 Просмотров |
|
||
|
Пользовательский раздел →
Руководства WotLK 3.3.5a →
Аддоны WotLK 3.3.5a →
Проблема с аддоном ezCollections 2.03 Ответов 1 389 Просмотров |
|
||
|
Пользовательский раздел →
Обсуждение и вопросы о проекте →
есть запет на аддон?7 Ответов 1 849 Просмотров |
|
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых пользователей


























Закрыть