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


Фотография

UncorRTDPS (v.1.3.1) - дпс в реальном времени в Royal Quest


  • Пожалуйста, авторизуйтесь, чтобы добавить свое сообщение
112 ответов в этой теме

#1 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 24 March 2021 - 22:29 PM

UncorRTDPS - урон в Royal Quest в режиме реального времени (RTDPS - real time damage per second). Принцип работы: видеозахват области чата с уроном и его распознание.
Последняя версия:  UncorRTDPS v.1.3.1 от 22 сентября 2021 г.
Поддерживаемые языки: русский, английский. СКАЧАТЬ (ссылка)
 
giphy.gif?cid=790b7611d989f73b91eedcb7d6
 
Программа предоставляет отображение в реальном времени:
  • полный урон 
  • время нанесения урона
  • урон в секунду
  • количество ударов
Точность программы зависит от того, как вы её настроите. Если всё сделать правильно, точность стабильно будет выше 99%.
 
Ограничения:
  • Игра должна быть в оконном режиме (с рамками или без рамок) для отображения окна программы поверх игры.
 
Быстрая настройка в 5 пунктов (клик). А полная инструкция далее по тексту.
 
 
История обновлений:
Spoiler
 
Скриншоты:
Spoiler
 
Время установки на чистую Windows 10 и последующая полная настройка программы до рабочего состояния составляет 2 минуты (как доказательство, ссылка на видео) если всё делать без промедлений.
 
Установка и запуск. Скачать тут: (ссылка на гугл диск)
Spoiler
 
 
Настройки в игре.
Spoiler
 
Настройка в UncorRTDPS v.1.1+
Spoiler
 
Настройки точности
Spoiler
 
 
Дополнительные функции
Spoiler
 
Особенности игровой механики, влияющие на отображаемый урон
Spoiler
 
 
Ответы на вопросы (безопасность)
Spoiler
 
Ответы на вопросы (программа и интерфейс)
Spoiler
 
Ответы на вопросы (технические)
Spoiler
 
 
 
Мои контакты:
E-mail: uncorstat@gmail.com
В игре: Uncor
 
 
Помочь с заполнением английских названий Боссов и Элитных монстров можно тут: https://www.royalque...43506&p=1666405
 

Сообщение отредактировал Bukketre, 22 September 2021 - 22:38 PM.


#2 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 24 March 2021 - 22:36 PM

Быстрый гайд для "слишком многа букаф".

 

1. Скачать тут (ссылка). Установить всё, о чем просят.

2. Зайти в игру. Создать вкладку чата, на которой отображается только нанесенный урон. Сделать фон чата максимально непрозрачным (темным).

3. Растянуть окно чата в ширину, чтобы помещалось с запасом 1 сообщение урона = 1 строка. По высоте, чтобы помещалось около 10 строк.

4. Открыть программу. Настройки ->Захват сделать как под спойлером и применить настройки.

Spoiler

5. Перейти в Настройк -> Тренировка. Нажать "Применить новую тренировку".

6. Быстрая настройка завершена. Включить мониторинг урона по нажатию на серый круг.

Spoiler

Сообщение отредактировал Bukketre, 18 August 2021 - 20:22 PM.


#3 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 24 March 2021 - 22:43 PM

Хм. Как известно, видеозахват достаточно трудоемкая процедура для компа. Насколько сильно нагрузка вырастает для этого мода?

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

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

#4 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 24 March 2021 - 22:54 PM


Насколько сильно нагрузка вырастает для этого мода?

Как раз писал ответ на такой вопрос.

 

Программа полностью забирает себе одно ядро процессора. Поэтому, пока у вас есть свободное, просадка должна быть минимальной (0-3%). Отдадим одно ядро под Royal Quest (или сколько ему нужно) и еще одно под Windows. Итого, теоретически, пользователи с процессорами от 4 ядер не почувствуют разницы, если не будет лишних трудоемкий фоновых процессов.

 

На практике, ни я, ни те, кому я отправлял программу, о просадках больше условных 3 фпс не говорили.

 


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

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



#5 Gessereth

Gessereth
  • Летописец Ауры
  • 17041 Сообщений:

Отправлено 24 March 2021 - 23:18 PM


Принцип работы: видеозахват области чата с уроном и его распознание.

 

Если не секрет, много времени ушло, чтобы натренировать тесерракт на распознание этого шрифта?



#6 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 24 March 2021 - 23:23 PM


Если не секрет, много времени ушло, чтобы натренировать тесерракт на распознание этого шрифта?

Не, я смухлевал и использовал готовые fast tessdata =)



#7 Gessereth

Gessereth
  • Летописец Ауры
  • 17041 Сообщений:

Отправлено 24 March 2021 - 23:35 PM

Не, я смухлевал и использовал готовые fast tessdata =)

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

 

Spoiler


#8 ВедДей

ВедДей

    Сила мира этого в человеке. В людях слабость.

  • Пользователи
  • 169 Сообщений:

Отправлено 25 March 2021 - 01:05 AM

Программа определённо годная.

А когда научится распознавать цели - станет весьма мощным инструментом. 

 

Что касается анализа логов - у этого подхода есть серьёзные недостатки:

1. Надо сменить локу/персонажа/выключить игру, чтобы зафиксировать сохранение. Но любые шаманские танцы не гарантируют, что всё пройдёт как надо. Иногда логи просто теряются. И 100% они теряются при изменениях в настройках - надо потом релогать клиент полностью.

 

2. Даже в случае полностью успешного сохранения логи с завидной регулярностью теряют от нескольких до десятка строк урона в начале и конце. С чем это связано - неизвестно.

 

3. Вытащить данные с логов - это тоже время. RQ DA не умеет обновлять данные. При каждом обращении требуется указывать путь к файлу. И сортировка отсутствует, приходится листать вниз списка, что алогично. 

Самописный калькулятор на основе блокнота+екселя требует наличия обеих открытых программ и поочередный запуск макросов. 

 

Так или иначе, ДПС-метр в реальном времени оказывается наилучшим инструментом для быстрого снятия данных. Осталось подождать, когда будет допилен до ума.  :SleepRocinka:


Сообщение отредактировал ВедДей, 25 March 2021 - 01:06 AM.


#9 octopusoctop

octopusoctop

    Октопус

  • Пользователи
  • 402 Сообщений:

Отправлено 25 March 2021 - 01:46 AM

Не хватает кнопочки принудительного обнуления счетчиков



#10 Исвейн

Исвейн

    Исанель

  • Пользователи
  • 1326 Сообщений:

Отправлено 25 March 2021 - 10:26 AM

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



#11 Armitage

Armitage

    Гад, эстет и мизантроп

  • Модераторы
  • 34297 Сообщений:

Отправлено 25 March 2021 - 10:28 AM

Пожалуй, стоит прикрепить тему :)



#12 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 11:54 AM


сильно нагрузки

Что угодно в условно бесконечном цикле без релиза ресурсов будет жрать все предоставленные потоку ресурсы, т.е. полное ядро =) Я не знал какая частота обновлений будет оптимальна, чтобы на всех классах работало (проблема быстрой прокрутки чата), поэтому никаких ограничений не выставлял. Пока цель доделать разделение по таргетам. Потом можно будет оптимизировать более детально.

Если я правильно помню, распознать 10 строк текста с 7 (+-) символами в каждой строке занимал у меня около 60 мс. на дефолтных настройках. Накинуть сюда время на захват картинки + время парсинга + соединения урона между кадрами - получаю у себя +- 20 обновлений в секунду. Сейчас уже понимаю, что это излишне, так что сделаю в ближайшее время ограничение на количество обновлений в секунду.

 


Не хватает кнопочки принудительного обнуления счетчиков

Принято



#13 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 25 March 2021 - 14:24 PM

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

 

2021-03-25-142143.png


О, починилось перезапуском, пардон за беспокойство. Точность измерений щас проверим =)

 

UPD: 

 

Spoiler


Сообщение отредактировал DancingTundra, 25 March 2021 - 14:31 PM.


#14 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 14:30 PM


Последняя строчка упорно не читается.

По скриншоту могу судить, что последнюю строчку выбрасывает т.к. считает её неполной. Строка считается неполной, если она не имеет свободного пространства минимум в 1 белый пиксель. Буква "у" снизу как раз не имеет под собой белого отступа.



#15 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 25 March 2021 - 14:31 PM

По скриншоту могу судить, что последнюю строчку выбрасывает т.к. считает её неполной. Строка считается неполной, если она не имеет свободного пространства минимум в 1 белый пиксель. Буква "у" снизу как раз не имеет под собой белого отступа.

 

Понял. А что обозначают показатели ARC и ART?



#16 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 14:36 PM


Понял. А что обозначают показатели ARC и ART?

ART - среднее время одного полного цикла распознавания за последние 20 распознаваний

ARC - количество всех попыток распознания. Наверное логичнее будет перенести в сфейленные распознавания через слеш, как DM PEC. 



#17 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 25 March 2021 - 14:39 PM

ART - среднее время одного полного цикла распознавания за последние 20 распознаваний

ARC - количество всех попыток распознания. Наверное логичнее будет перенести в сфейленные распознавания через слеш, как DM PEC. 

 

То есть, ARC можно считать количеством сделанных за время замера ударов?

 

И еще, обнаружил маленький нюанс. Карта Фелура (и, вероятно, Свиты\Герцога, что-там-еще-петов-дает) не отображается в логе, то есть, реальный ДПС с этими картами выше. Причем, в случае Фелура, например, выше на 5.5%

 

Это, конечно, никак не поправить в рамках нынешней механики, но грустно все-таки.



#18 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 25 March 2021 - 14:52 PM

И еще один забавный нюанс - у некоторых классов есть скиллы, которые нонтаргетно бьют вокруг перса, или накладывают стаки (ну, например, тот же Ритуал Крови у ЧК). В лог цифры идут, хотя к конкретно избиваемой цели не относятся. Возможно, это компенсирует Фелура =)



#19 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 14:53 PM


То есть, ARC можно считать количеством сделанных за время замера ударов?

Не, удары покажет при наведении на урон. Тоже надо будет добавить их в список статистики.

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

 

 


Это, конечно, никак не поправить в рамках нынешней механики, но грустно все-таки.

Православненько. Долой помощь демонов!

 

 

upd:

 

В лог цифры идут, хотя к конкретно избиваемой цели не относятся.

 

Собственно, причина по которой у игры никогда не было никаких публичных (т.е. без страха поймать банан) сторонних программ это политика разработчика касательно правил. Независимо от цели результата, если правило нарушено, ты попадаешь под санкции, и никаких поблажек. Единственные механизмы, которые не нарушают правила, это логи чата и информация из фото/видео материалов игрового процесса. Кстати, тема WASD управления в этом разделе прям на грани. Если бы я сейчас её запостил (если я правильно понимаю, механизм работы там основан на клике мыши в 4 направлениях относительно персонажа), то меня бы забанили =)


Сообщение отредактировал Bukketre, 25 March 2021 - 15:08 PM.


#20 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 25 March 2021 - 15:15 PM


Собственно, причина по которой у игры никогда не было никаких публичных (т.е. без страха поймать банан) сторонних программ это политика разработчика касательно правил. Независимо от цели результата, если правило нарушено, ты попадаешь под санкции, и никаких поблажек. Единственные механизмы, которые не нарушают правила, это логи чата и информация из фото/видео материалов игрового процесса. Кстати, тема WASD управления в этом разделе прям на грани. Если бы я сейчас её запостил (если я правильно понимаю, механизм работы там основан на клике мыши в 4 направлениях относительно персонажа), то меня бы забанили =)

 

Так и есть, к сожалению. Я очень надеюсь, что эту политику пересмотрят. По крайней мере, по отношению к конкретным модмейкерам.

 

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



#21 FreeZze

FreeZze
  • Пользователи
  • 46 Сообщений:

Отправлено 25 March 2021 - 15:42 PM

Ну, на самом деле, даже в ходе тестов было понятно, что программа имеет большой потенциал, хоть и не без минусов на тот момент (новую версию не успел еще повертеть в руках). Жду разделения урона и удачи автору) Жаль, что в РК нельзя встраивать свои аддоны, как в некоторых мморпг.

Сообщение отредактировал FreeZze, 25 March 2021 - 15:43 PM.

  • Blast сказали "Спасибо!"

#22 Исвейн

Исвейн

    Исанель

  • Пользователи
  • 1326 Сообщений:

Отправлено 25 March 2021 - 15:49 PM

Автоматический старт по $"вы нанесли {имя_босса}" и окончание по $"{имя_босса} умер" планируется?



#23 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 16:13 PM


Автоматический старт

В каком именно смысле автоматический? Если про "зеленый/серый" статус, т.е. непосредственно вкл/откл при детекте босса/элиты (неактив = не полное отключение, но почти нулевое), то надо будет подумать как бы такое реализовать без потери точности. Но пока адекватного решения в голову не приходило.

Если про "босс детектед - обнуляемся, стартуем босса", то да. Про окончание на "{имя} умер" не знаю, будет много мусора разного в логе. Скорее всего умер босс или нет будет строиться на предположении исходя из захвата текущего хп босса сверху экрана и поставить условие "если последние 20 секунд не поступало урона по боссу && последнее задетекченое хп босса меньше 10%" =>  босс умер.



#24 Исвейн

Исвейн

    Исанель

  • Пользователи
  • 1326 Сообщений:

Отправлено 25 March 2021 - 16:37 PM

В таком виде дпс по боссам точно будет мало актуален поскольку почти всегда есть мобы которых ты задеваешь АоЕ

Как бы я делал: создаётся список в который в ручную добавляются ключевые слова(имена боссов, мобов) по которым будет автоматом писаться дпс. Добавляется кнопка которая запускает поиск этих ключевых слов в логе: как только появляется совпадение - старт записи, при появлении текста босс умер(или спустя 30с после крайней циферки урона) - конец вычислений.

Соответственно нужна фильтрация по таргету входящего урона.

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

 


Сообщение отредактировал Исвейн, 25 March 2021 - 16:52 PM.


#25 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 25 March 2021 - 23:39 PM


Как бы я делал

Да, плюс-минус в таком направлении и планировалось идти. Более избирательно подходить к тому что парсить и когда парсить. Уже набросал себе план и посчитал тайминги с новыми алгоритмами. Посмотрим что выйдет.



#26 Тимур675

Тимур675

    Я снайпер, не бейте тапками!

  • Пользователи
  • 68 Сообщений:

Отправлено 26 March 2021 - 11:33 AM

Протестировано. Одобрено, я доволен! Давно такой штуки не хватало! Спасибо большое, это один из лучших модов что я когда либо видел и хотел, прям от души!

Ну и так, как пруф теста)



#27 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 03 April 2021 - 20:21 PM

Таргетный дпс написал, осталось соединить его с интерфейсом. Тут у меня появился вопрос. Будет 2 режима отображения дпса:

1. Только таргет максимального приоритета (если вы бьете одновременно босса и элиту, то покажет только дпс по боссу)

2. Таргеты всех приоритетов (если вы бьете и босса и элиту и обычных, то покажет дпс и по боссу и по элите и по обычным).

Собственно, вопрос касается второго пункта. Как бы вам кажется было удобно такое выводить? В одном окне в формате простыни как под спойлером? (Вариант А)

Spoiler

 

Либо, второй вариант, появляется отдельное окно под каждый новый таргет приоритета выше элиты (если бьете одновременно 5 разных элит, то это 5 разных окон). Выставляется лимит этих окон и можно указать позиции "по умолчанию" появления этих окон, либо выбрать функцию "добавлять окна снизу", "добавлять окна вправо", "добавлять окна влево" и т.д. (т.е. выравнивание новых окон по вертикали/горизонтали относительно базового). (Вариант Б)

 

P.S. И немного спойлеров про оптимизацию. Пусть это и не окончательные данные. Во включенном состоянии в простое (т.е. без нанесения урона) диспетчер задач показывает 0.5% загрузки процессора. Во время нанесения урона не более 3%.



#28 DancingTundra

DancingTundra
  • Пользователи
  • 4655 Сообщений:

Отправлено 03 April 2021 - 21:37 PM

Я бы предпочёл вариант А. Эстетичнее как-то чтоль.

Но вот если бить босса в толпе мобов, то это моментально зафлудит весь экран. Поэтому, все-таки, я из соображений практичность голосую за Б =)

#29 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 03 April 2021 - 21:49 PM


Но вот если бить босса в толпе мобов, то это моментально зафлудит весь экран.

Не совсем. Все обычные мобы группируются в один дпс. Так что, если бить только босса, то максимум 2 счетчика появится (босс + сгруппированные обычные). Только элита и боссы будут получать отдельный счетчик.

Можно будет заносить самостоятельно имена мобов в списки Боссы и Элитные (чтобы обойти группировку, например, можно в элитных списывать свои таргеты).



#30 Bukketre

Bukketre
  • Пользователи
  • 300 Сообщений:

Отправлено 09 April 2021 - 21:28 PM

Обновление UncorRTDPS v1.1. Ссылка на скачивание в шапке темы.

 

Новое:

- Урон теперь отделяется по целям. Боссы и элитные имеют свои счетчики. Обычные монстры группируются вместе. Добавить/изменить имена/здоровье боссов и элитных монстров можно самостоятельно в src/mobs_rtdps

- Доступно два режима отображения урона: "только максимальный приоритет" (босс > элитный > остальные) и "все" (отображаются все боссы, все элитные, остальные).

- В "Настройки - Выполнение" добавлено ограничение обновлений в секунду для активного и неактивного режимов (уменьшение загрузки CPU).

- Добавлено больше настроек отображения в "Вид"

- Сброс урона доступен по правому нажатию мыши на урон. Сброс происходит для той цели, на которую нажали.

 

Изменено:

- Вкладка настроек "DPS Точность" переименована в "Тренировка" для соответствия назначению.

- Старые параметры статистики распознаваний (под статистикой урона) удалены и изменены на новые.

- При скачивании новой версии, старые настройки не доступны и не будут сохранены т.к. они потеряли свою актуальность.

 

Обратите внимание, что теперь выделение области требуется другое. Раньше нужно было выделить только урон. Теперь, нужно выделить область шире, т.е. вместе в целью.

 

 

В шапке темы сейчас старый текст. Позже поправлю на новый. Обновлен текст в шапке темы. Много изменений.

Новый текст также доступен в .pdf формате по ссылке на скачивание программы. Старая версия программы и старый текст переехали в новую директорию.

P.S. Если у вас появляется статистика о боссе или элитном монстре, которого вы не бьете, либо наоборот, то сообщите об этом мне. Такая вероятность возможна т.к. я мог подобрать неоптимальные параметры при поиске похожего монстра из словаря. Это можно попробовать решить самостоятельно, закрыв UncorRTDPS, открыв файл config_rtdps.txt и изменить параметр distanceMethod c "lev" на "ham". Это изменит алгоритм поиска с Левенштейна на Хэмминга. Тем не менее, всё равно, сообщите мне о такой ситуации.

P.P.S. Также, поскольку тестированию всех возможных эксепшенов я уделил не много времени, обращайте внимание, не появляется ли файла с названием "errlog.txt". Программа может об ошибке и не сообщит, но найти и пофиксить её надо. Его содержимое можно мне в ЛС или на почту, если он появится.


Сообщение отредактировал Bukketre, 10 April 2021 - 00:09 AM.





0 пользователей читают эту тему

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