Что нового

[Автоматизация] Функция waypoint-а в боте

scanfail

Знающий
Сообщения
244
Репутация
17
Здравствуйте. Вопрос не из простых. Скажем у меня есть базовые адреса X, Y и Z координатов персонажа. Передвижение в игре происходит как кликом, так и клавишами W, A, S и D. Хотелось бы добавить такую функцию, чтобы пользователь смог бы пометить его текущие координаты и при желание, бот сам бы вернулся к этим координатам. Как реализовать такую функцию? Можно хоть какой-нибудь пример?

P.S. - Поиск не работает, а все страницы по-одному листать как-то не то.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ты можешь создать двумерный массив где будут храниться x и y. Далее тебе надо либо разметить карту нодами в ключевых местах, создав двумерный граф, либо просто создавать массив вейпоинтов для перемещения из пункта A в пункт B.
Если реализовывать через граф, то будет более функционально. Указываешь между каждой нодой связи с ближайшими нодами докуда можно добраться напрямую и далее например алгоритмом дийкстры вычисляешь путь и уже из него формируешь массив вейпоинтов, по которым далее и передвигаешься. Зная X и Y персонажа и X и Y точки куда надо прибыть (ближайшего вейпоинта\ноды), можно по теореме прямоугольного треугольника вычислить под каким углом нужно повернуться и бежать в том направлении. По прибытии в точку повторить для следующего пункта маршрута.
 
Автор
S

scanfail

Знающий
Сообщения
244
Репутация
17
Belfigor сказал(а):
Ты можешь создать двумерный массив где будут храниться x и y. Далее тебе надо либо разметить карту нодами в ключевых местах, создав двумерный граф, либо просто создавать массив вейпоинтов для перемещения из пункта A в пункт B.
Если реализовывать через граф, то будет более функционально. Указываешь между каждой нодой связи с ближайшими нодами докуда можно добраться напрямую и далее например алгоритмом дийкстры вычисляешь путь и уже из него формируешь массив вейпоинтов, по которым далее и передвигаешься. Зная X и Y персонажа и X и Y точки куда надо прибыть (ближайшего вейпоинта\ноды), можно по теореме прямоугольного треугольника вычислить под каким углом нужно повернуться и бежать в том направлении. По прибытии в точку повторить для следующего пункта маршрута.
Я года 3 как не писал в autoit-е, будет проблемно создать скрипт по-типу первого варианта, поэтому для начала пожалуй начну с простенького, второго варианта, заодно и память освежу.
Так вот, как реализовать следующее, а если быть точнее, запись координатов нынешней точки, начало фарма, при отдаление на большое расстояние, возвращение обратно к записанным ранее координатам(можно и просто записать радиус, дальше которой бы он не выходил). Координаты X, Y и Z персонажа имеются, координат ротации тоже имеется. Только вот как реализовать это перемещение? Клавиши W, A, S и D в игре через Send почему-то не работают(хотя Enter и другие клавиши работают отменно), остается тогда лишь через клик? Хотелось бы для примера простенький, готовый скрипт, дабы изучить его и на основе его, создать/подогнать свой.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Попробуй не просто Send, а с макросом {DOWN}
Код:
Send("{a down}")
 
Верх