Перейти к содержанию

Aimbot для 2D игры [help]


Рекомендуемые сообщения

Пришла на ум мысль сделать aimbot для 2D flash игры. Сама реализация аимбота мне понятна, но есть некоторая проблема, о которой я скажу позже.

Как я представляю реализацию аимбота (Прошу поправить, если что-то не так):

1)Читаем адрес со значением о кол-ве игроков n раз в t время.

 

2) Запускаем цикл, с перебором всех игроков(базовый адрес + смещение каждого игрока + смещение до координат) и читаем их координаты

 

3)Далее вычисляем дистанцию от своей координаты до координаты противника и добавляем в массив в отсортированном порядке.

 

4)Находим адрес координат нашей мышки X и Y.

 

5)Потом делаем инъекцию кода в уже найденную инструкцию стрельбы, с записью координат ближайшего врага.

После инструкции стрельбы пишем команду

 

mov [адрес координаты мышки X], координата противника X

mov [адрес координаты мышки Y], координата противника Y

Вот тут, то и есть некоторая проблема.

 

Координаты противника X - это float значение

Координаты противника Y -  это double значение.

Координаты мышки X, Y - это int значение(4 байта).

 

Как я понимаю, нужно каким-то образом перевести координаты противника, в экранные координаты (координаты мышки).

Каким образом это сделать, мне не известно.

Буду очень признателен, если кто-нибудь поможет мне, с этой проблемой.

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

 

12 часа назад, EvilByte сказал:

Координаты противника X - это float значение

Координаты противника Y -  это double значение.

Каким образом у тебя получились разные типы для координат не очень понял (лично я ни разу с таким не сталкивался).

12 часа назад, EvilByte сказал:

нужно каким-то образом перевести координаты противника, в экранные координаты (координаты мышки).

Используя инструкции математического сопроцессора.

Например на ассемблер:

fld [координата противника X]      // записываем в st(0) координату X во FLOAT
fistp [адрес координаты мышки X]   // перезаписываем из st(0) координату в [адрес координаты мышки X], одновременно переводя значение в INTEGER
fld [координата противника Y]      // Для Y тоже самое.  
fistp [адрес координаты мышки Y]

 

Ссылка на комментарий
Поделиться на другие сайты

 1-е читаем память игры 2 перебираем в цикле координаты игроков и одновременно высчитываем длину вектора , от курсора до других игроков 
, находим наименьший вектор . И двигаем мышку туда , откуда проведён наименьший вектор . Двигать её можно с помощью функции mouse_event . Советую сделать DLL библиотеку и инжектить её в 
процесс игры.

Изменено пользователем afro228offical
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, afro228offical сказал:

 1-е читаем память игры 2 перебираем в цикле координаты игроков и одновременно высчитываем длину вектора , от курсора до других игроков 
, находим наименьший вектор . И двигаем мышку туда , откуда проведён наименьший вектор . Двигать её можно с помощью функции mouse_event . Советую сделать DLL библиотеку и инжектить её в 
процесс игры.

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

Ссылка на комментарий
Поделиться на другие сайты

19 минуту назад, EvilByte сказал:

вопрос остается открытый - конвертированние мировых координат, в координаты экранные.

Второй пост смотрел? Не подошло?

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, Garik66 сказал:

 

Каким образом у тебя получились разные типы для координат не очень понял (лично я ни разу с таким не сталкивался).

Используя инструкции математического сопроцессора.

Например на ассемблер:


fld [координата противника X]      // записываем в st(0) координату X во FLOAT
fistp [адрес координаты мышки X]   // перезаписываем из st(0) координату в [адрес координаты мышки X], одновременно переводя значение в INTEGER
fld [координата противника Y]      // Для Y тоже самое.  
fistp [адрес координаты мышки Y]

 

 

Разные типы координат получились такими, так как во всех flash играх существует область окна (swf игры), в которой есть высота и ширина окна (пример 900x600).

Курсор мышки, который попадает в видимость окна флеш игры, записываются координаты положения высоты и ширины окна (это и есть координаты мышки).

 

В пример, если курсор мышки стоит в центре окна игры (900x600), то координаты будут следующие:

Xmouse = 450 (int)

Ymouse = 300 (int)

А мировые координаты игроков, имеют тип float - это X координата игрока, а тип double - это Y координата игрока.

Перевести мировые координаты в тип int, это не проблема, но они будут отличаться от экранных координат мышки (курсора).

 

То есть математический сопроцессор может перевести мировые координаты игроков в координаты мышки каким-то способом?

Или вы просто имели ввиду, конвентирование float в int?

 

Может нужно работать с матрицами, или с геометрией какой-либо (ну нужно учитывать, что это 2D игра)?

 

Ссылка на комментарий
Поделиться на другие сайты

13 минуты назад, Garik66 сказал:

Второй пост смотрел? Не подошло?

Сейчас попробую. В Cheat Engine ассемблере команды в таком же виде (fld и fistp)?

Ссылка на комментарий
Поделиться на другие сайты

48 минуты назад, EvilByte сказал:

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

Игра 2д , ты собираешься ,по твоим словам, конвертировать их в экранные . А ничего , что экранные координаты это и есть 2д ?!

Ссылка на комментарий
Поделиться на другие сайты

21 минуты назад, afro228offical сказал:

Игра 2д , ты собираешься ,по твоим словам, конвертировать их в экранные . А ничего , что экранные координаты это и есть 2д ?!

Сразу видно, что ты не разбираешься. Почитай про понятие объект (мировые координаты и экранные).

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, EvilByte сказал:

Сразу видно, что ты не разбираешься. Почитай про понятие объект (мировые координаты и экранные).

Видимо , надо было подробней объяснить , что хочешь сделать . Ща , возможно  я тебя понял , Типа в игре координаты x=123.321 , а y=321,123 и тебе надо их перевести в экранные (в целые числа ) И , возможно , проблема в том , что может игровая координата уйти в минус ?
Так? Скажи , что за игра ?

Изменено пользователем afro228offical
Ссылка на комментарий
Поделиться на другие сайты

22 часа назад, afro228offical сказал:

Видимо , надо было подробней объяснить , что хочешь сделать . Ща , возможно  я тебя понял , Типа в игре координаты x=123.321 , а y=321,123 и тебе надо их перевести в экранные (в целые числа ) И , возможно , проблема в том , что может игровая координата уйти в минус ?
Так? Скажи , что за игра ?

Нет немного не правильно меня понял.

Координаты мышки целые числа (Пример x=340, y=600) - это положение курсора на экране.

Координаты игрока дробные числа (Пример x=3.2235234, y=11.34253452).

Перевод координат игрока в целое число - это не проблема. Тут дело немного в другом:

Допустим мышка (курсор) у меня находится в центре окна игры (Пример разрешение окна 600 на 800), тем самым координаты мышки x=300, y=400.

Игрок, которого мы хотим убить находится в центре экрана, то есть мы вручную навели на него прицел. А координата игрока, допустим x=3.55234663 и y=11.53652346 (При этом, координаты мышки никак не могут быть равны с координатами игрока).

Если этот игрок сместится куда - нибудь, то прицел уже будет не на нем.

То есть задача такова:

Нужно перевести координаты игроков мировые (или игровые, не знаю как они еще называются), в координаты мышки (Экранные координаты).

 

 

Ссылка на комментарий
Поделиться на другие сайты

В 27.02.2016в20:53, Garik66 сказал:

Второй пост смотрел? Не подошло?

Спасибо за ответ, но не подошло.

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

Просто перевод игровых координат в целое число ничего не даст.

Тут именно нужно конвертированние координат игровых, в координаты экранные (координаты мышки).

Есть ли, на этом форуме специалисты по этому делу (Aimbot)?

Возможно, тут нужно делать какие-нибудь геометрические действия?

 

Ссылка на комментарий
Поделиться на другие сайты

24 минуты назад, EvilByte сказал:

Спасибо за ответ, но не подошло.

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

Просто перевод игровых координат в целое число ничего не даст.

Тут именно нужно конвертированние координат игровых, в координаты экранные (координаты мышки).

Есть ли, на этом форуме специалисты по этому делу (Aimbot)?

Возможно, тут нужно делать какие-нибудь геометрические действия?

 

Напиши в лс , что-нибудь придумаю...

Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, EvilByte сказал:

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

Я сам ни разу не писал aimbot, а написал своё сообщение исходя из этого:

В 26.02.2016в00:01, EvilByte сказал:

mov [адрес координаты мышки X], координата противника X

mov [адрес координаты мышки Y], координата противника Y

Вот тут, то и есть некоторая проблема.

подумал, что ты сам всё знаешь и испытываешь трудности именно с переводом float в integer. 

А по-твоему вопросу:

13 часа назад, EvilByte сказал:

Тут именно нужно конвертированние координат игровых, в координаты экранные (координаты мышки).

Видел у нас на форуме тему (название не помню) - в ней keng объяснял человеку как перевести игровые координаты на координаты мини-карты (человек хотел сделать мини-карту для  игры со всеми ботами) - думаю тебе эта тема подойдёт. Попробуй поискать её по нику kengа. Может по слову мини-карта можно найти. 

ЗЫ: Вроде нашёл - 

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

В 28.02.2016в20:17, EvilByte сказал:

Тут именно нужно конвертированние координат игровых, в координаты экранные (координаты мышки).

PS: EvilByte, я тут подумал и мне кажется, что тебе нужно вернуться к поиску координат - координат не мышки, а прицела - координаты прицела будут уже пересчитаны к, как ты их называешь, мировым (игровым, а не экранным) координатам и они скорее всего все будут во float и координаты прицела и координаты NPC и никаких  double и int не будет. Перепроверь координаты.

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

21 минуты назад, Garik66 сказал:

PS: EvilByte, я тут подумал и мне кажется, что тебе нужно вернуться к поиску координат - координат не мышки, а прицела - координаты прицела будут уже пересчитаны к, как ты их называешь, мировым (игровым, а не экранным) координатам и они скорее всего все будут во float и координаты прицела и координаты NPC и никаких  double и int не будет. Перепроверь координаты.

Да , рили ...

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Garik66 сказал:

PS: EvilByte, я тут подумал и мне кажется, что тебе нужно вернуться к поиску координат - координат не мышки, а прицела - координаты прицела будут уже пересчитаны к, как ты их называешь, мировым (игровым, а не экранным) координатам и они скорее всего все будут во float и координаты прицела и координаты NPC и никаких  double и int не будет. Перепроверь координаты.

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

А если записывать значения, в координаты мышки которые были найдены мною ранее, то все работает (стрелять будет туда, куда запишешь значение, а прицел визуальный не будет менять положение).

То есть, координаты мышки найдены уже правильно.

Изменено пользователем EvilByte
Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, Garik66 сказал:

Я сам ни разу не писал aimbot, а написал своё сообщение исходя из этого:

подумал, что ты сам всё знаешь и испытываешь трудности именно с переводом float в integer. 

А по-твоему вопросу:

Видел у нас на форуме тему (название не помню) - в ней keng объяснял человеку как перевести игровые координаты на координаты мини-карты (человек хотел сделать мини-карту для  игры со всеми ботами) - думаю тебе эта тема подойдёт. Попробуй поискать её по нику kengа. Может по слову мини-карта можно найти. 

ЗЫ: Вроде нашёл - 

 

Как мне кажется, нужно идти вот в этом направлении

Ссылка на комментарий
Поделиться на другие сайты

Слишком вы все усложняете, может легче и быстрее сделать пиксельный аимбот по цвету определенной области. У противников по любому должен совпадать раскраск. Для 2D игр проще способа я не знаю)

 

 

 

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

В 29.02.2016в23:03, EvilByte сказал:

координаты прицела оказались целые числа

Думаю, это только экранные значения.

А реальные, которые будут влиять и на перемещение прицела и на то куда полетит пуля - во float всё-таки.

Ссылка на комментарий
Поделиться на другие сайты

23 часа назад, Garik66 сказал:

Думаю, это только экранные значения.

А реальные, которые будут влиять и на перемещение прицела и на то куда полетит пуля - во float всё-таки.

Реальные значения, которые влияют на перемещение прицела (это и есть курсор, у него тип 4 байта), они не зависят от самого прицела (прицел просто визуальный). 

Ссылка на комментарий
Поделиться на другие сайты

В 02.03.2016в17:45, partoftheworlD сказал:

Слишком вы все усложняете, может легче и быстрее сделать пиксельный аимбот по цвету определенной области. У противников по любому должен совпадать раскраск. Для 2D игр проще способа я не знаю)

 

 

 

 

 

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

Ссылка на комментарий
Поделиться на другие сайты

А вобще нашел метод, относительно языка flash (ActionScript), который переводит координаты, с помощью функции 

globalToLocal

()

 

Но эта функция, работает в среде flash.

Встал в тупик(

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.