С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 5
1

Бот для игры

20.06.2016, 15:23. Показов 3039. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет форумчане и формучанки =) Решил написать для личного пользования бота для игры Vega Conflict .
Опыта почти нет , прошу помощи .
Начать решил с того чтобы захватить окно , привести его к нужному размеру , и начать кликать в этом окне.
Delphi
1
2
3
4
5
6
7
var
  Form1: TForm1;
  VegaWindow: HWND; //Окно игры
 
 VegaWindow := findwindow(nil, 'Vega Conflict'); // Находим окно игры
 if VegaWindow <> 0 then
    SetWindowPos(VegaWindow, HWND_BOTTOM, 150, 150, 1024, 768, SWP_SHOWWINDOW); //Приводим окно к заданному виду
И тут же столкнулся с тем , что окно хоть и приводится к нужному виду , но встает в центре экрана(а планировалось сдвинуть его на 150,150)
Далее хотел в игре приблизить базу , для этого надо прокрутить колесиком мыши . реализовал вот так
Delphi
1
2
3
4
5
6
7
8
9
10
11
SetCursorPos(550,963);// ставим курсор в центр окна (примерно)
    Mouse_Event(MOUSEEVENTF_WHEEL,0,0,1,0);    //приближаем базу
    sleep(100);
    Mouse_Event(MOUSEEVENTF_WHEEL,0,0,1,0);
    sleep(100);
    Mouse_Event(MOUSEEVENTF_WHEEL,0,0,1,0);
    sleep(100);
    Mouse_Event(MOUSEEVENTF_WHEEL,0,0,1,0);
    sleep(100);
    Mouse_Event(MOUSEEVENTF_WHEEL,0,0,1,0);
    sleep(10000);
5 Событий , потому что одним решить не получилось (параметр 1, как я понял позволяет указать сколько раз прокрутить колесико, но столкнулся с тем что значение не влияет на результат. Вот такое кривое решение , но результат достигнут.
(хотелось бы совет как привести это безобразие к вменяемому виду)

Далее решил собтвенно покликать.
Delphi
1
2
3
4
5
          SetCursorPos(860,1300);
          Mouse_Event(MOUSEEVENTF_LEFTDOWN,860,1300,0,0) ;
          sleep(100);
          Mouse_Event(MOUSEEVENTF_LEFTUP,860,1300,0,0) ;
          sleep(100);
Судя по всему клик пропадает в никуда, но если кликать не по игровому окну , то клик проходит.
погуглил , пришел к тому что надо действовать через sendmessage
Delphi
1
2
    sendMessage(VegaWindow, WM_LBUTTONDOWN, 440,880);
    sendMessage(VegaWindow, WM_LBUTTONUp,440,880);
Вот тут я уже "поплыл" чую не понимаю что делаю , но клики проходят оО , не стабильно , но куда то он кликает (причем не всегда в одну точку .

Прошу помочь разобраться с этим этапом ...
0
Лучшие ответы (1)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
20.06.2016, 15:23
Ответы с готовыми решениями:

Бот для игры
Здравствуйте ув Программисты! Я впервые на этом форуме и у меня такой вопрос! Как сделать бота...

Бот для браузерной онлайн игры
Игра: Легенда наследие драконов Хочу автоматизировать монотонный процесс кликания по кнопкам....

Автонажатие клавиш при обнаружении цвета или бот для игры
День добрый. Хотелось бы написать программу, которая нажимала бы клавиши, когда на экране, в...

Элементы компонента TWebBrowser (в шапке длиннопост!) Бот для текстовой онлайн-игры
Всем привет! Извините за столь долго вступление, но без него, наверное никак. Уже довольно давно...

7
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 5
21.06.2016, 16:47  [ТС] 2
Дополнительная информация не помешает =) Вот что показывает WinSpy
Бот для игры
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
21.06.2016, 22:13 3
Цитата Сообщение от SkV35 Посмотреть сообщение
Начать решил с того чтобы захватить окно , привести его к нужному размеру , и начать кликать в этом окне.
Можно незахватывать, просто автокликер напиши да и все.
По нужным координатам конечно.
Сами координаты так же мышью задаш. Подвел мыш куда нужно (нажал корячую клавишу, снял координату клика) записал в переменную или массив или в список.
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 5
22.06.2016, 00:00  [ТС] 4
дык проблема как раз в том , как этот клик передать , пробовал двумя путями (оба описал) ни разу не попал куда хотел , есть подозрение , что игра игнорирует такие вот виртуальные клики =(
0
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
22.06.2016, 00:33 5
Лучший ответ Сообщение было отмечено SkV35 как решение

Решение

Ну а рабочий Кликермэн нормально отрабатывает? Есть уже готовое решение, с собственным языком сценариев, если не в курсе.
1
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 5
22.06.2016, 01:13  [ТС] 6
Хмм, Кликермен - не слыхал , поищу , пробовал AutoIT но там ровно такая же проблема
0
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
22.06.2016, 08:13 7
Да искать то особо и не надо, вот тут уже версия 4.9 имеется.
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 5
22.06.2016, 09:43  [ТС] 8
Спасибо Пытливый , прям идеальный инструмент для выполнения моей задачи =) Тему можно закрывать.
0
22.06.2016, 09:43
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
22.06.2016, 09:43
Помогаю со студенческими работами здесь

Кликерный бот для браузерной игры
Всем привет Хочу написать бота на игру кликерного Игра браузерная Вопрос заключается в том, что...

БОТ для игры "Пара Па - Город Танцев"
Добрый день, читающий. Кто-бы-ты-нибыл :) Да настало время. Да пришли он-лайн игры в наш...

Для каждой игры определить словесный результат игры (выигрыш, проигрыш или ничья)
Помогите решить задачу В одном массиве записано количество мячей, забитых футбольной командой в...

Бот для skype
добрый день , я хачу сделать бот который сам открывает скайп , сам ставит галочки , пишет логин и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru