![]() |
|
|
Регистрация | << Правила форума >> | 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. Я бы так делал
![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
|||
|
|||
![]() Все не было времени продолжить, два дня бегал по магазинам, собирал новый системник
![]() За идею с хуками спасибо. Сильно помогло, т.к. не знал с чего вообще подступиться. Столкнулся было с одной проблемой, но пока описывал, дорубился как поискать ответ ![]() Пойду терзать гугл... |
#6
|
||||
|
||||
![]() Товарищ! Не колупайте себе мозг!
Есть же волшебная штука AutoIt! Она как будто специально заточена для таких целей. Попробуй - понравится. Там всё легко и удобно. Если не ты, то кто? (с) Терри Пратчетт Не забывайте ставить плюсы и говорить спасибо! |