Перейти к содержимому

Высокая работоспособность
Геодата, классы и способности, подземелья и рейды:
всё, как было на официальных серверах!
Без малого 15 лет работы
29 июня нашему проекту исполняется 15 лет,
старейший сервер рунета,
ни одного вайпа за этот срок!
Бесплатно и без доната
Наш проект является полностью бесплатным,
на нём отсутствует покупка игровых ценностей, влияющих на баланс.
Отсутствие лагов
Благодаря 4 мощным серверам и надежному провайдеру
в игре полностью отсутствуют лаги!
Трансфер с других серверов
Приходите к нам со своим персонажем,
воспользуйтесь БЕСПЛАТНОЙ
услугой по переносу персонажа на наш проект!
Высокий онлайн
Онлайн на всех наших мирах РЕАЛЬНЫЙ,
ежесуточно наши миры посещает более
12000 игроков!
Хорошая техподдержка
Четыре сотрудника, отвечающих за решение ваших вопросов,
всегда выслушают и обязательно помогут.
Мы предоставляем действительно качественный сервис!
Начать играть

Создание аддона с достижениями

аддон достижения

  • Авторизуйтесь для ответа в теме

Сообщений в теме: 24

#1 Hesvul

Отправлено 03 апреля 2026 - 14:11

ребята, как написано в названии хочется сделать аддон с достижениями для хк, у меня получилось сделать только окно со списком достижений, но они не засчитываются, ни по именам нпс, ни по id которые брал с вики/базы, есть ли те кто разбирается в создании аддонов и может что либо рассказать, хотелось бы хотя бы сделать простой от убийств определенных мобов, определенных заданий и может быть количества убитых мобов


  • 0

Начать играть на EzWoW?
Присоединяйтесь к нашему сообществу!
Играйте на самом работоспособном и стабильном русскоязычном WoW сервере без доната игровых ценностей!

#2 drreserv3d

Отправлено 03 апреля 2026 - 18:32

Чисто из интереса немного потыкался, навайбкодил вот эту штуку:

1) При убийстве врага (клик левой или правой кнопкой мыши по его трупу) добавляет в базу данных об убитых противниках имя и число убийств

2) Файл с базой у каждого персонажа свой и лежит в WTF\Account\АККАУНТ\СЕРВЕР\ИМЯ\SavedVariables

3) Добавил защиту от повторных кликов по одному и тому же трупу при помощи буфера на 50

4) При убийстве противника в чат отправляется надпись со статистикой ЛИБО всплывает достижение

5) Свои достижения на убийство противников пили в таблице достижений, у меня там самая простая структура для количества убийств без всяких вложенностей

6) Достижение висит 10 секунд, за это отвечает параметр toast.timeLeft = 10

7) Вывести статистику в чат можно командой /nkstat
8) Открыть журнал достижений со всеми полученными "ачивками" и причинами получения можно командой /nkachieve

На этом мой энтузиазм иссяк, попробуй потыкаться, может что-нибудь еще докрутишь и сделаешь полноценный аддон

Прикрепленные файлы

  • Прикрепленный файл  test.zip   3,61К   5 скачиваний

Сообщение отредактировал drreserv3d: 03 апреля 2026 - 18:32

  • 2

#3 Hesvul

Отправлено 03 апреля 2026 - 19:08

Чисто из интереса немного потыкался, навайбкодил вот эту штуку:

1) При убийстве врага (клик левой или правой кнопкой мыши по его трупу) добавляет в базу данных об убитых противниках имя и число убийств

2) Файл с базой у каждого персонажа свой и лежит в WTF\Account\АККАУНТ\СЕРВЕР\ИМЯ\SavedVariables

3) Добавил защиту от повторных кликов по одному и тому же трупу при помощи буфера на 50

4) При убийстве противника в чат отправляется надпись со статистикой ЛИБО всплывает достижение

5) Свои достижения на убийство противников пили в таблице достижений, у меня там самая простая структура для количества убийств без всяких вложенностей

6) Достижение висит 10 секунд, за это отвечает параметр toast.timeLeft = 10

7) Вывести статистику в чат можно командой /nkstat
8) Открыть журнал достижений со всеми полученными "ачивками" и причинами получения можно командой /nkachieve

На этом мой энтузиазм иссяк, попробуй потыкаться, может что-нибудь еще докрутишь и сделаешь полноценный аддон

интересно, жаль что статистика идет только через клик по трупу конечно, но уже неплохо


  • 0

#4 drreserv3d

Отправлено 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."


  • 0

#5 CrossDoOm

Отправлено 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

  • 0

05475b9fb738da666f3cad4f5603a2f8.png 2da136002bde4569f188e5a6a886a975.png e186c88ded6ac355fe07e951a73314aa.png


#6 drreserv3d

Отправлено 04 апреля 2026 - 10:13

интересно, жаль что статистика идет только через клик по трупу конечно, но уже неплохо

 

Я понял свою принципиальную ошибку. Я зашел во вкладку "Журнал боя", нажал на стрелочку и поставил галочку "Убийства". После этого лог боя стал примерно вот таким:
[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] -- Выход из боя
 
Вот исправленная версия счетчика, который работает как ты и хотел

Прикрепленные файлы


Сообщение отредактировал drreserv3d: 04 апреля 2026 - 10:13

  • 1

#7 Hesvul

Отправлено 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] -- Выход из боя
 
Вот исправленная версия счетчика, который работает как ты и хотел

 

посмотрел, да считает, причем даже мобы пошли в зачет прошлой версии, спасибо, надеюсь дальше осилю


  • 0

#8 CrossDoOm

Отправлено 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. а так лайк конечно тебе за то что ты вообще понял что хотел автор. потому что я - не понял :D


  • 0

05475b9fb738da666f3cad4f5603a2f8.png 2da136002bde4569f188e5a6a886a975.png e186c88ded6ac355fe07e951a73314aa.png


#9 Hesvul

Отправлено 05 апреля 2026 - 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. а так лайк конечно тебе за то что ты вообще понял что хотел автор. потому что я - не понял :D

я же написал в начале, аддон с достижениями для хардкора, вот сейчас получились уже сделать такое, там вкладки с достижениями за определенное количество убийств, количество заданий, взятие уровней и достижение за смерть (после которого другие достижение стираются, ну и кнопку сброса статистики на всякий случай


для меня на самом деле это уже успех, так как я почти не шарю

Прикрепленные изображения

  • 2026-04-04_23-56-17.png

Сообщение отредактировал Hesvul: 05 апреля 2026 - 00:01

  • 0

#10 CrossDoOm

Отправлено 05 апреля 2026 - 00:36

я же написал в начале, аддон с достижениями для хардкора, вот сейчас получились уже сделать такое, там вкладки с достижениями за определенное количество убийств, количество заданий, взятие уровней и достижение за смерть (после которого другие достижение стираются, ну и кнопку сброса статистики на всякий случай


для меня на самом деле это уже успех, так как я почти не шарю

откуда брать эти категории, список достижений и критерии? мне как случайно зашедшему сюда неясно было что имелось в виду под "аддон с достижениями для хк"...

так-то можно что угодно наваять, вплоть до подсчёта общей статы для всех персов внутри игрового аккаунта. как говорится, без точного ТЗ - результат ХЗ :)


  • 1

05475b9fb738da666f3cad4f5603a2f8.png 2da136002bde4569f188e5a6a886a975.png e186c88ded6ac355fe07e951a73314aa.png


#11 Hesvul

Отправлено 05 апреля 2026 - 04:12

для теста, добавлены достижения:

- за убийства 

- за квесты

- за каждого элитника и рарника

- за уровни

- за смерть

добавлен поиск по достижениями, полный сброс статистики и возможно линк достижений, но я не уверен работает ли он, так как нужен второй человек с аддоном

https://drive.google...iew?usp=sharing

не нашел того бы кто затестил, многие спят уже, так что если что напишите


Сообщение отредактировал Hesvul: 05 апреля 2026 - 04:49

  • 0

#12 drreserv3d

Отправлено 05 апреля 2026 - 15:42

Проверил в два окна, вижу сообщение аддона об успешной отправке, фактически никаких сообщений не отправляется
 

Вот какой-то вариант мгновенной отправки линка в канал /сказать - игроки с аддоном видят линк как будто бы это достижение, без аддона простой текст

Я точно менял логику кнопки линк (ищи по -- Кнопка "Линк" для отправки достижения в чат), точно трогал блок (-- ======= КАСТОМНЫЕ ССЫЛКИ НА ДОСТИЖЕНИЯ В ЧАТ =======), там вроде была ошибка с символами при парсинге. Остальные разделы вроде бы не трогал, но уже точно не вспомню

Скорее всего есть какой-то более простой или изящный вариант, я уже глубже копать не стал

 

Ну и так по мелочи, на что у меня уже не хватило усидчивости:

1) Случайно заметил что иконка аддона интересно двигается почти куда угодно - я ее смог и внутри миникарты поставить, и оторвать от миникарты

2) Вспомнил что видел на курсе аддон, который запоминает и отображает рекорды по урону для всех кнопок. Есть такое ощущение что тебе что-то подобное тоже захочется отслеживать

https://www.cursefor...addons/critline

3) Судя по вики на 3.3.5 доступна функция UnitClassification, которая умеет возвращать тип нпс. Если это так, то можно не хардкодить достижения за убийство редких врагов

Прикрепленные файлы

  • Прикрепленный файл  123.zip   20,04К   6 скачиваний

  • 1

#13 Hesvul

Отправлено 05 апреля 2026 - 15:47

Проверил в два окна, вижу сообщение аддона об успешной отправке, фактически никаких сообщений не отправляется
 

Вот какой-то вариант мгновенной отправки линка в канал /сказать - игроки с аддоном видят линк как будто бы это достижение, без аддона простой текст

Я точно менял логику кнопки линк (ищи по -- Кнопка "Линк" для отправки достижения в чат), точно трогал блок (-- ======= КАСТОМНЫЕ ССЫЛКИ НА ДОСТИЖЕНИЯ В ЧАТ =======), там вроде была ошибка с символами при парсинге. Остальные разделы вроде бы не трогал, но уже точно не вспомню

Скорее всего есть какой-то более простой или изящный вариант, я уже глубже копать не стал

 

Ну и так по мелочи, на что у меня уже не хватило усидчивости:

1) Случайно заметил что иконка аддона интересно двигается почти куда угодно - я ее смог и внутри миникарты поставить, и оторвать от миникарты

2) Вспомнил что видел на курсе аддон, который запоминает и отображает рекорды по урону для всех кнопок. Есть такое ощущение что тебе что-то подобное тоже захочется отслеживать

https://www.cursefor...addons/critline

3) Судя по вики на 3.3.5 доступна функция UnitClassification, которая умеет возвращать тип нпс. Если это так, то можно не хардкодить достижения за убийство редких врагов

да кнопку для вызова меню специально сделал около мини карты, но что бы можно было двигать куда угодно, мне кажется это удобнее, что бы поставить в любой части экрана, может я ошибаюсь конечно


  • 0

#14 Hesvul

Отправлено 05 апреля 2026 - 16:26

спасибо кстати за линки, это даже лучше чем я бы мог сделать думаю


  • 0

#15 Hesvul

Отправлено 05 апреля 2026 - 23:22

переделал/сделал:
- изменил размеры всех панелей и фреймов
- добавил подсветку вкладок
- достижение за красную сумку
- достижение за смерть на 79 лвле
- убран счетчик в чате
- поправил размер достижений
- добавил линк в лс, правда пока не смог сделать что бы этот линк был кликабельным как в других чатах
 
думаю сделать/переделать:
- разные иконки
- достижение за вход в бк
- достижение за вход в лк
-достижения за определенные задания

пишите если есть идеи
 

https://drive.google...iew?usp=sharing


Сообщение отредактировал Hesvul: 05 апреля 2026 - 23:23

  • 0

#16 Lagos777

Отправлено 06 апреля 2026 - 11:07

Привет)

 

Когда обсуждали в чате, я думал, чты ты хочешь сделать аддон, наподобие Hardcore Achievements.

А в нем, все-таки, суть не в том, чтобы просто убить какого-то моба, например или пройти какой-то сложный квест, а чтобы сделать это как можно раньше. Например, из описания самого аддона:

Скрытый текст

 

Так же на эту тему видос:

 

Скрытый текст

 


  • 0

#17 Hesvul

Отправлено 06 апреля 2026 - 15:41

Привет)

 

Когда обсуждали в чате, я думал, чты ты хочешь сделать аддон, наподобие Hardcore Achievements.

А в нем, все-таки, суть не в том, чтобы просто убить какого-то моба, например или пройти какой-то сложный квест, а чтобы сделать это как можно раньше. Например, из описания самого аддона:

Скрытый текст

 

Так же на эту тему видос:

 

Скрытый текст

что бы делать такой аддон надо делать постоянное отслеживание действий игрока, так как если смотрел то внутри аддона есть % синхронизирования и если слишком падает то начинаются проблемы и такие спорные проблемы обычно решают уже люди вне игры и учитывая что это вовсе мой первый аддон, ну делаю как могу это первое, а второе я не хочу разбираться мухлюет ли человек, смотреть записи доказательств... может в будущем я или кто-то другой сделает и какие-то еще функции, на данный момент я нубик и если бы не помог drreserv3d то я бы и эти функции возможно не смог бы сделать


изначально я кстати пытался его адаптировать, но там слишком много всего, мало того что надо разобраться в скриптах самого аддона, так еще и разобраться что и как делают все библиотеки и как все это применить с офы на пиратки 3.3.5 так как там клиент вовсе другой


да, если знаете и хотите что-то изменить то пишите, отправляйте свои варианты файлов, я только за если аддон станет лучше и всем будет интересно с ним играть, так как я взялся за аддон потому что хочется разнообразия, видеть что сделал, делиться с другими и все такое


  • 0

#18 Lagos777

Отправлено 06 апреля 2026 - 16:56

Я в том плане, что из того аддона идеи можно подергать.


  • 0

#19 Hesvul

Отправлено 06 апреля 2026 - 19:00

Я в том плане, что из того аддона идеи можно подергать.

в плане идей да,  можно сказать я брал за основу этот аддон и еще пару с офы, надеюсь что получится конечно сделать что-то еще, как минимум я помню про достижение "пройти 3 данжа соло" и там тоже конечно каждый данж должен быть пройден не выше определенного лвла, было бы неплохо сделать думаю такое, хотя и не уверен что кто либо и правда будет проходить соло


Сообщение отредактировал Hesvul: 06 апреля 2026 - 19:02

  • 0

#20 Hesvul

Отправлено 07 апреля 2026 - 21:54

пока обновлять не буду ссылки, так как по сути изменений немного, но поменял сегодня часть достижений за элиток, изначально за всех элиток было "Укротитель *имя элитки*", делаю их разными, по возможности конечно, так как многие элитки, рарники не имеют какой-то крутой истории, названия и тд


  • 0



Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей

UCaller Visa Mastercard Paypal Qiwi Robokassa Yookassa
Договор-оферта Условия возврата Условия обработки данных
Подробности - о сервере?
Играй на нашем сервере!
Бесплатный сервер WoW 3.3.5 Wrath of the Lich King - уже 17 лет мы радуем наших игроков, присоединяйся к ним!
Без доната! Всё работает!
Нет - продаже предметов, влияющих на игровой процесс. Да - высокой работоспособности - проверь!

Система лояльности

За внутриигровую активность Вы будете получать Сферы Лояльности, которые автоматически конвертируются в бонусы для покупок в магазине сервера:

  • Победа в матче на Арене: 15% от текущего рейтинга;
    (т.е. примерно 300 при рейтинге в 2000)
  • Победа в сражении на Полях Боя: 12.5% от текущего рейтинга;
    (т.е. примерно 500 при рейтинге в 4000)

(только при использовании системы Поиска Подземелий)

(только актуальные рейдовые подземелья - ЦЛК, РС и ИВК)

За каждые 100 Сфер Лояльности Вы получаете 1 бонусный рубль, который можете использовать для полной или частичной оплаты чего-нибудь нужного из магазина.


Участие в особом событии - Цареубийстве!

Кажд (для игроков Альянса) и кажд (для игроков Орды) с 16:00 до 22:00 (по московскому времени) проводится особое событие - Цареубийство!


Достаточно убить одного из предводителей противоположной фракции и получить награду: 2000 Сфер Лояльности! Следите за уведомлениями в чате...


Еженедельно можно получить 15000 Сфер Лояльности, после достижения данного значения бонусы за вышеперечисленные действия начисляться не будут.