Есть такой батл рояль Apex Legends, в нем нет озвучки убийств. Я сделал свои звуки отдельные, я пытался сделать отслеживание по статистике убийств, она пишется когда мы убиваем противника и эта цифра меняется, например я убил одного противника и у меня на экране в правом углу появляется цифра 1 - это наше убийство и так по нарастающей. Я пытался сделать скрипт через Uopilot, который должен был отслеживать по картинке изменение количества килов и к каждому килу автоматически включать назначенную озвучку. Но у меня это не получилось, он не находит картинку на экране, т.к. все лейблы в игре полупрозрачные и постоянно меняют цвета.
Вопрос состоит в том, как все таки сделать эту озвучку и с помощью чего?
Есть 3 варианта.
1. простой. Берём python, pytesseract, mss. С помощью mss делаем скриншоты нужной области 5 раз в секунду или чаще. В этой области с помощью pytesseract ищем числа. Потом желательно это переписать на С чтоб было быстрее.
2. Средний. Берём chemax и ищем в памяти адрес переменной которая показывает количество убийств. Потом пишем программу которая отслеживает эту переменную и играет звук. Тут могут быть проблемы т.к. адрес переменной может меняться.
3. Сложный. Пишем DLL которая будет отслеживать через directx функции на отрисовку числа и заменять её на нашу функцию с музыкой. инжектим эту dll в игру. Так работают все читы.
3 вариант не подходит, т.к. мы получим 100% бан по железу за инжект к сожалею =(. На счет 2го варианта, возможно тоже поймаем бан, т.к. все равно будем лезть в память, но мы не уверены в этом, т.к. не пробовали, но проблема в том, что если поймаем бан, то будет печально и поиграть после не будет возможности. На счет первого варианта изображение часто превращается в серую муть буквально и потому все эти программы распознавания знаков постоянно путают похожие цифры - например цифру 5 путает с цифрой 6.
Вместо PyTesseract нужно использовать свёрточные нейронные сети. Нужно собрать немного картинок с областью количества убийств (несколько сотен) и разметить их руками. Далее нужно взять предобученную сеть типа MobileNet в PyTorch или TensorFlow и дополучить её распознавать, сколько в области обозначено убийств.
Должно получиться намного лучше, чем Tesseract.