Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Подход для создания бота по MMORPG

Страниц (1): [1]
 

1. legro0303 - 17 Апреля, 2023 - 13:20:33 - перейти к сообщению
Здравствуйте. Хотел бы узнать у более опытных людей идеи для написания бота, а именно какие подходы выбирать для решения тех или иных задач.

Вводные данные:
1. Корейская MMORPG, пиратский сервер, защищена от запуска на виртуальной машине, есть защита от эмуляции кликов (Последний пункт вроде как решается AvtoK)
2. В случайное время появляется капча(окно) с набором из 4 цифр, каждый набор - отдельная кнопка, всего кнопок 4, требуется нажать ту кнопку, цифры которой соответствуют описанию в окне, в противном случае система примет вас за бота и игра будет закрыта. Время на нажатие требуемой кнопки - 30 сек.
3. Перемещение в данжах (а именно в комнатах). Игра имеет XYZ координаты, т.е. нужно как то понимать, где лестницы/уступы и прочее, чтобы персонаж в них не застрял. Из того, что может помочь, в игре визуально можно включить XYZ координаты и видеть как они изменяются, ничего умнее считывания координат в реальном времени и нажатию кнопок WASD для перемещения до захардкоженной координаты (читай следующей комнаты) не придумал. Но это получается динамический фон, то есть распознование координат будет сильно усложнено.
4. Проверка инвентаря на заполненность. В инвентаре есть 5 вкладок, по 30 ячеек каждая. Необходимо проверять каждую ячейку (т.к. в игре есть случайные события, т.е. ценный предмет может упасть с любого монстра с редким шансом) и определять какой предмет можно продать, а какой нельзя. Также требуется определять когда инвентарь заполнен, чтобы запускать скрипт перемещения в город и продажи предметов.
5. Фарм монстров. В комнатах есть много монстров, требуется собирать их "в кучки" (а не бить по одному как простые кликеры-болванчики) и использовать способности, наносящие массовый урон.

Резюмирую, под каждую из 5 пунктов не придумал каких-то нормальных подходов и не выявил оптимальных инструментов в киборе для работы с подобными задачами. Подскажите, что лучше использовать для решения вышеуказанных задач, какие способы решения применять, в какую сторону "глядеть"
2. Zireael - 17 Апреля, 2023 - 13:50:26 - перейти к сообщению
1. Использовать ps/2 мышь/клаву, либо ардуино.
2. Если цифры не сильно отличаются и не накладываются друг на друга, то функций readtext распознать их и нажать. Если это сложная капча, то использовать сервисы для распознавания.
3. Таким не занимался, так что не знаю.
4. Обычно решается через findimage, ищется картинка пустой ячейки, если картинка не найдена, значит ячейка заполнена.
5. Сложно что-то сказать не зная как это выглядит. В любом случае это не простая задача.
3. legro0303 - 17 Апреля, 2023 - 14:21:09 - перейти к сообщению
 Zireael пишет:
1. Использовать ps/2 мышь/клаву, либо ардуино.
2. Если цифры не сильно отличаются и не накладываются друг на друга, то функций readtext распознать их и нажать. Если это сложная капча, то использовать сервисы для распознавания.
3. Таким не занимался, так что не знаю.
4. Обычно решается через findimage, ищется картинка пустой ячейки, если картинка не найдена, значит ячейка заполнена.
5. Сложно что-то сказать не зная как это выглядит. В любом случае это не простая задача.


По 2 пункту, проблема в том, что неизвестно, когда капча может возникнуть, как сделать так, чтобы экран мониторился каждые n-секунд на её наличие ?
4. Ilya001 - 17 Апреля, 2023 - 14:39:02 - перейти к сообщению
 legro0303 пишет:
 Zireael пишет:
1. Использовать ps/2 мышь/клаву, либо ардуино.
2. Если цифры не сильно отличаются и не накладываются друг на друга, то функций readtext распознать их и нажать. Если это сложная капча, то использовать сервисы для распознавания.
3. Таким не занимался, так что не знаю.
4. Обычно решается через findimage, ищется картинка пустой ячейки, если картинка не найдена, значит ячейка заполнена.
5. Сложно что-то сказать не зная как это выглядит. В любом случае это не простая задача.


По 2 пункту, проблема в том, что неизвестно, когда капча может возникнуть, как сделать так, чтобы экран мониторился каждые n-секунд на её наличие ?

Использовать таймер https://kibor-bot.com/forum/topic.php?forum=1&topic=57, для поиска капчи использовать findimage.

Про 3 и 5 пункт, нужно лазить по памяти игры, если получится то можно оттуда вытянуть координаты игрока и не только, но для этого нужно иметь опыт и знания. Данный метод сложный.
5. legro0303 - 18 Апреля, 2023 - 03:13:38 - перейти к сообщению
 Ilya001 пишет:
 legro0303 пишет:
 Zireael пишет:
1. Использовать ps/2 мышь/клаву, либо ардуино.
2. Если цифры не сильно отличаются и не накладываются друг на друга, то функций readtext распознать их и нажать. Если это сложная капча, то использовать сервисы для распознавания.
3. Таким не занимался, так что не знаю.
4. Обычно решается через findimage, ищется картинка пустой ячейки, если картинка не найдена, значит ячейка заполнена.
5. Сложно что-то сказать не зная как это выглядит. В любом случае это не простая задача.


По 2 пункту, проблема в том, что неизвестно, когда капча может возникнуть, как сделать так, чтобы экран мониторился каждые n-секунд на её наличие ?

Использовать таймер https://kibor-bot.com/forum/topic.php?forum=1&topic=57, для поиска капчи использовать findimage.

Про 3 и 5 пункт, нужно лазить по памяти игры, если получится то можно оттуда вытянуть координаты игрока и не только, но для этого нужно иметь опыт и знания. Данный метод сложный.


Координаты игрока есть в самом игровом интерфейсе, тут больше вопрос к тому, как реализовать перемещение. Допустим я знаю, что персонаж сейчас в X=1, Y=1, Z=1, и нужно бежать прямо до X=100, а потом направо до Y = 50. В голову приходить только простой скрипт который зажимает нужную клавишу пока координата не изменится, но координату нужно будет считывать+сравнивать буквально каждую секунду, что мне кажется не самым оптимальным вариантом, наверняка есть что то умнее чем реализация в лоб.
6. Dantes3000 - 18 Апреля, 2023 - 04:06:36 - перейти к сообщению
legro0303 , Нет лучше реализации, чем действовать как человек. Закройте экран чем-то и, ориентируясь по координатам, попробуйте прийти в нужную точку.
В этом плане гораздо сложнее будет нормально распознавать координаты, чем сделать передвижения

Powered by ExBB FM 1.0 Final