Бот для world of warplanes

Прогрес написання бота: 90-95%.
Використано: FastFind Бібліотека для збільшення швидкості пошуку інформації на екрані, WinAPI для відображення Debug повідомлень і відтворення ліній, INIConfig - настройки, Crypt бібліотека для шифрування і розшифровки серійника, сам AutoIt.
UniqueColorsSearch2 - для визначення унікальних пікселів.
Mod \ Patch: Обов'язкова модифікація клієнта гри без якої бот не працюватиме + обов'язкова модифікація, але ще покращує роботу бота.
Звіти з VirusTotal:
Показати

Боту можна призначити кілька (поки 9) літаків, якими бот буде керувати в бою, при смерті перезаходити на наступний.
Авто Пілот: керує літаком - просто літає не врізаючись, не падаючи, поки маневрує від стрільби (якщо по нам стріляють), прагнути до центрального квадрату, у країв повертає.
Авто Стрільба: стріляє в потрібний момент в точку попередження, чергами (уникає перегріву), стріляє в об'єкти в потрібний момент (працює не завжди правильно).
Авто Наведення: Наводить приціл на точку попередження, на будови або літак, в залежності від типу літака. Дуже добре ганяється за літаком, якщо знайшов точку попередження.
При включенні авто стрільби і авто наведення - поводиться як 12-14 річний школяр (дуже агресивний, як тільки знайшов мета - відразу прив'язався). розбивається в 20% випадків.
Debug режим: відображає все що знаходить: поточні значення, обчислених висоти, швидкості, їх меж (тобто 2-4% літаків у яких межі може не визначити) і ін.

чого не вистачає або "в планах"

Тактики: ну спочатку звичайно зрозуміло що різні типи літаків для різних цілей призначені, але потрібна тактика не в загальному сенсі, а алгоритм тобто потрібна повноцінна блок-схема дій в залежності від:
1) Типу літака
2) Кількості Противників \ Союзників
3) Активної Цілі
4) Поставленої завдання або пріоритетам (Літаки \ Наземні мети)


Зараз ще розповім про те що використано в самому боті і невеликі приклади, принципи його роботи.


Наприклад, наведення на ціль, код виглядає так:
код
навіщо так багато коду ви запитаєте, для таких елементарних речей?
А все тому що в грі у нас координати 3 (X, Y, Z), а на моніторі 2 і нам потрібно побудувати проекцію, приблизно виглядає це так:
.
Тому нам потрібно:
1) Вам необхідно прокрутити камеру рівно на 360 градусів (скриптом) і отримати назвемо це - чутливість миші (виставляється в налаштуваннях).
2) Визначити FovX / FovY ігровий камери (теж є в настройках ставимо 100 - максимум).
3) Визначити Width / Height ігрового вікна.


; Поточна позиція курсору
$ APos = MouseGetPos ()
; центр
$ MidleX = $ Window_posX + ($ Window_width / 2)
$ MidleY = $ Window_posY + (($ Window_height) / 2); на скільки потрібно зрушити від центру
$ ToX = $ x - $ MidleX
$ ToY = $ y - $ MidleY
; 100 - це наш FOV
$ AX = (100 / ($ Window_width)) * $ toX
$ AY = (100 / ($ Window_height)) * $ toY
; 192 і 108 це наша чутливість, яку перевели в Гардус.
$ DX = (192/360) * $ aX
$ DY = (108/360) * $ aY
; Власне реальне зміщення
$ X = $ aPos [0] + $ dX
$ Y = $ aPos [1] + $ dY
; Само зміщення
MouseMove ($ X, $ Y, 100)

bot-wowp.zip [9,38 Mb] (cкачиваний: 745)

Схожі статті