Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.12.2010, 14:01
Inkvisitor Inkvisitor вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 7
Репутация: 10
По умолчанию Бот для клиентской MMORPG

Здравствуйте, у меня возникла необходимость написать в сжатые сроки бот для одной MMORPG (1-2 недели, возиться дольше не вижу смысла), чисто из спортивного интереса и для личного пользования.
Однако собственных знаний для этого, мягко говоря, недостаточно. В наличии школьный курс по Pascal и основам ООП на Delphi, имею некоторые представления о синтаксисе языка С (но только, в сравнении с Pascal).
Попробовал пошариться по тематическим форумам, но нарыл лишь самую общую информацию, требующую длительного усвоения, что не укладывается в рассчетные сроки.

MMORPG имеет клиент с 3D-интерфейсом.
Бот должен работать по следующей схеме:
1. Логировать все манипуляции пользователя с клавиатурой и мышью (перемещение игрока, выполнение действий, вращение камеры) в окне клиента в течении длительного времени (10-15 минут)
2. По команде, в точности воспроизводить действия пользователя из ранее записанного лога

Что, собственно, вызывает 2 вопроса:
1. Возможно ли вообще реализовать такую схему?
2. Каким инструментарием лучше воспользоваться?
Ответить с цитированием
  #2  
Старый 17.12.2010, 14:07
Аватар для alikoder
alikoder alikoder вне форума
Начинающий
 
Регистрация: 05.12.2007
Сообщения: 126
Репутация: 10
По умолчанию

Цитата:
Сообщение от Inkvisitor
Здравствуйте, у меня возникла необходимость написать в сжатые сроки бот для одной MMORPG (1-2 недели, возиться дольше не вижу смысла), чисто из спортивного интереса и для личного пользования.
Однако собственных знаний для этого, мягко говоря, недостаточно. В наличии школьный курс по Pascal и основам ООП на Delphi, имею некоторые представления о синтаксисе языка С (но только, в сравнении с Pascal).
Попробовал пошариться по тематическим форумам, но нарыл лишь самую общую информацию, требующую длительного усвоения, что не укладывается в рассчетные сроки.

MMORPG имеет клиент с 3D-интерфейсом.
Бот должен работать по следующей схеме:
1. Логировать все манипуляции пользователя с клавиатурой и мышью (перемещение игрока, выполнение действий, вращение камеры) в окне клиента в течении длительного времени (10-15 минут)
2. По команде, в точности воспроизводить действия пользователя из ранее записанного лога

Что, собственно, вызывает 2 вопроса:
1. Возможно ли вообще реализовать такую схему?
2. Каким инструментарием лучше воспользоваться?


дай угадаю.... линейка да?
много вас таких, сам когда то баловался, только смысл? уже полно ботов + исходники - юзай гугл, у меня лично на винте есть 3-4 бота.
с этим проблем нет ищи лучше!
Ответить с цитированием
  #3  
Старый 17.12.2010, 16:10
Inkvisitor Inkvisitor вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Во-первых, не угадал... это даже не WoW. Игра новая и малоизвестная, на стади открытого бета-теста, ни о каких готовых ботах к ней никто и в помине не слышал, так что проще написать самому с учетом специфики интерфейса.
Во-вторых, надоело задрить на добыче ресов, она реализована таким образом, что через пару часов сам становишься похожим на бота, хочется нормально поиграть. Но без ресов далеко не уедешь, а свободного времени у меня не так много. Т.е. имеется индивидуально генерируемая локация где кроме персонажа и расставленных на СТРОГО ОТВЕДЕННЫХ местах ресов больше ничего нет - создание бота напрашивается само-собой.

Сейчас прикинул список логируемых действий обычного пользователя:
1. Нажатие клавиши клавиатуры - выполнение действия
2. Удержание клавиши клавиатуры - движение вперед/назад, круговое вращение камеры
3. Нажатие клавиши мыши - движение персонажа в точку позиционирования указателя, взаимодействие с объектом (это ключевое
действие бота)
4. Удержание клавиши мыши + движение указателя - свободное вращение камеры
5. комбо из удержания клава+клава, мышь+клава, мышь+мышь - передвижение персонажа

Задумался над логированием... особенно над п.5 и другими операциями с удержанием клавиш, порылся в интерфейсе клиента, пришел к выводу что все это можно заменить двумя операциями ввода данных:
1. Нажатие клавиши клавиатуры - выполнение действия, выставление вида камеры "по умолчанию" (вид со спины)
2. Нажатие клавиши мыши - перемещение персонажа, взаимодействие с объектом

Сложно для игрока, но зато легко залогировать по простейшему алгоритму:
1. RunTimer
2. нажатие клавиши -> запись времени и параметров клавиши
Ответить с цитированием
  #4  
Старый 17.12.2010, 17:12
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Глобальный хук на нужные сообщения, отсеивать по хендлу процесса. А потом - серии SendMessage. Я бы так делал
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 26.12.2010, 01:58
Inkvisitor Inkvisitor вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Все не было времени продолжить, два дня бегал по магазинам, собирал новый системник потом еще столько же возился с вин7, хоть она мне и не нравится (многие привычные программы плохо с ней совместимы), но х64 проц, 4гб оперативы и DX11 вынудили... да и на работе аврал.

За идею с хуками спасибо. Сильно помогло, т.к. не знал с чего вообще подступиться. Столкнулся было с одной проблемой, но пока описывал, дорубился как поискать ответ
Пойду терзать гугл...
Ответить с цитированием
  #6  
Старый 26.12.2010, 09:59
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
Восклицание

Товарищ! Не колупайте себе мозг!
Есть же волшебная штука AutoIt! Она как будто специально заточена для таких целей. Попробуй - понравится. Там всё легко и удобно.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025