Что нового

Прошу помоши в написании бота "исследователя" для Elite Dangerous (космосим)

NaimoN

Новичок
Сообщения
1
Репутация
0
Доброго времени суток всем форумчанам!!! Заранее прошу прощения если где-то ошибся в создании темы. С удовольствием исправлю все ошибки.
Дело в том, что я практически ничего не знаю о AutoIt, но быстро учусь и буду благодарен за любую помощь в написании бота. Есть опыт работы с UoPilot, но для написания полноценного "исследовательского" бота этот кликер не годится.
Я создал эту тему с развлекательной иконкой специально, подразумевая что решение такой задачки будет приятным и полезным занятием как для профессионалов так и для любителей кода.
Есть известный космосим Elite Dangerous, одним из аспектов игры является исследование галактики.
Первые представления о том как должен работать бот уже есть. Также уже написан скрипт открытия клиента.(но это как я понимаю самое легкое).
Итак о том как я вижу работу бота:

После открытия клиента мы видим игровое окно:

4sqkDxWdmYs.jpg


Далее нажатием клавиши "1" переходим в меню системы:

vSg-C7x-UEo.jpg


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

eMeUpHNpcYI.jpg


Мало того список всех объектов не умещается в окне меню поэтому стоит создать массив неисследованных объектов.
Для оптимальной работы бота, и для того чтобы корабль не врезался в звезду, следует начинать исследование с самого дальнего объекта. Однако это не гарантирует что самый дальний объект не будет находится за звездой.

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

D0EKbgJVmX4.jpg


После подтверждения выбора жмем 1 и наблюдаем такую картину:

W5MGtV5J-y8.jpg


На следующем изображении белой стрелкой отмечен центральный прицел корабля и выбранный нами объект для исследования. Задача бота распознать выбранный объект на экране и переместить прицел корабля в центр области объекта.
Также на изображении я обвел белым кругом "возможный" внешний вид объекта, а зеленым кругом индикатор положения объекта в пространстве относительно корабля. В данном случае объект находится левее и выше прицела, поэтому точка в индикаторе голубоватая, однако в случае когда объект находится за кораблем точка будет голубоватая только по краям, центр будет черный.

5ypPP7oWpbM.jpg


Наверное пока задач для бота хватает и на этом стоит остановится. Но хотелось бы автоматизировать исследование полностью включая перемещение до объекта и перелета в следующую систему, но боюсь на данный момент и так слишком много задач которые нужно решить.
Очень прошу модераторов не закрывать тему. Вполне возможно что решение сразу нескольких задач в одной теме поможет новичкам самостоятельно писать собственные программы.
:IL_AutoIt_1:
 

Werewolfez

Новичок
Сообщения
2
Репутация
0
привет, посмотри на Youtube канале Heath Haskins, у него нечто похожее было.
 

Matuin

Новичок
Сообщения
10
Репутация
0
Картинки нельзя увеличить, чтобы посмотреть поподробнее.
Распознавание в подобной графике самое сложное. Поэтому выбор из списка и получение значения расстояния вряд ли сможешь сделать просто.
Как вариант поиграться с PixelCheckSum, прописав их для каждой цифры, если сможешь однозначно зоны определить, можно попробовать взять поуже по центру цифры, на скриншотах они вроде как под наклоном идут. Пришла только что еще одна идея, но с ней больше мороки. Используя PixelGetColor получить несколько контрольных точек на каждой цифре в каждом положении, и при определенных комбинациях цвета записывать, что это за значение.
Ориентир по миникарте и указателю цели вполне можно сделать на PixelSearch или PixelGetColor, скажем жать конкретные клавиши поворота до тех пор пока цель не будет прямо по курсу. Как то так.
 
Верх