![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте, у меня возникла необходимость написать в сжатые сроки бот для одной MMORPG (1-2 недели, возиться дольше не вижу смысла), чисто из спортивного интереса и для личного пользования.
Однако собственных знаний для этого, мягко говоря, недостаточно. В наличии школьный курс по Pascal и основам ООП на Delphi, имею некоторые представления о синтаксисе языка С (но только, в сравнении с Pascal). Попробовал пошариться по тематическим форумам, но нарыл лишь самую общую информацию, требующую длительного усвоения, что не укладывается в рассчетные сроки. MMORPG имеет клиент с 3D-интерфейсом. Бот должен работать по следующей схеме: 1. Логировать все манипуляции пользователя с клавиатурой и мышью (перемещение игрока, выполнение действий, вращение камеры) в окне клиента в течении длительного времени (10-15 минут) 2. По команде, в точности воспроизводить действия пользователя из ранее записанного лога Что, собственно, вызывает 2 вопроса: 1. Возможно ли вообще реализовать такую схему? 2. Каким инструментарием лучше воспользоваться? |
|
#2
|
||||
|
||||
|
Цитата:
дай угадаю.... линейка да? много вас таких, сам когда то баловался, только смысл? уже полно ботов + исходники - юзай гугл, у меня лично на винте есть 3-4 бота. с этим проблем нет ищи лучше! |
|
#3
|
|||
|
|||
|
Во-первых, не угадал... это даже не WoW. Игра новая и малоизвестная, на стади открытого бета-теста, ни о каких готовых ботах к ней никто и в помине не слышал, так что проще написать самому с учетом специфики интерфейса.
Во-вторых, надоело задрить на добыче ресов, она реализована таким образом, что через пару часов сам становишься похожим на бота, хочется нормально поиграть. Но без ресов далеко не уедешь, а свободного времени у меня не так много. Т.е. имеется индивидуально генерируемая локация где кроме персонажа и расставленных на СТРОГО ОТВЕДЕННЫХ местах ресов больше ничего нет - создание бота напрашивается само-собой. Сейчас прикинул список логируемых действий обычного пользователя: 1. Нажатие клавиши клавиатуры - выполнение действия 2. Удержание клавиши клавиатуры - движение вперед/назад, круговое вращение камеры 3. Нажатие клавиши мыши - движение персонажа в точку позиционирования указателя, взаимодействие с объектом (это ключевое действие бота) 4. Удержание клавиши мыши + движение указателя - свободное вращение камеры 5. комбо из удержания клава+клава, мышь+клава, мышь+мышь - передвижение персонажа Задумался над логированием... особенно над п.5 и другими операциями с удержанием клавиш, порылся в интерфейсе клиента, пришел к выводу что все это можно заменить двумя операциями ввода данных: 1. Нажатие клавиши клавиатуры - выполнение действия, выставление вида камеры "по умолчанию" (вид со спины) 2. Нажатие клавиши мыши - перемещение персонажа, взаимодействие с объектом Сложно для игрока, но зато легко залогировать по простейшему алгоритму: 1. RunTimer 2. нажатие клавиши -> запись времени и параметров клавиши |
|
#4
|
||||
|
||||
|
Глобальный хук на нужные сообщения, отсеивать по хендлу процесса. А потом - серии SendMessage. Я бы так делал
![]() |
|
#5
|
|||
|
|||
|
Все не было времени продолжить, два дня бегал по магазинам, собирал новый системник
потом еще столько же возился с вин7, хоть она мне и не нравится (многие привычные программы плохо с ней совместимы), но х64 проц, 4гб оперативы и DX11 вынудили... да и на работе аврал.За идею с хуками спасибо. Сильно помогло, т.к. не знал с чего вообще подступиться. Столкнулся было с одной проблемой, но пока описывал, дорубился как поискать ответ ![]() Пойду терзать гугл... |
|
#6
|
||||
|
||||
|
Товарищ! Не колупайте себе мозг!
Есть же волшебная штука AutoIt! Она как будто специально заточена для таких целей. Попробуй - понравится. Там всё легко и удобно. |