Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
#1

Ориентация бота в игре - C++

25.01.2013, 19:57. Просмотров 2400. Ответов 43
Метки нет (Все метки)

Собственно, вопрос следующий, делаю что-то мини бота и меня интересует, как он может ориентироваться в игре, либо можно как-то прочитать по слоям информацию с экрана игры скорость, координаты, других игроков то есть можно ли вытянуть из игры данные в текстовом виде, или же боту придется ориентироваться чисто по картинке, которую мы получаем на экране, как пользователю? И что нужно юзать?

Добавлено через 48 минут
up>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ориентация бота в игре (C++):

Интеллект бота в игре "Покер на костях" - C++
Вот правила Необходимо так же 5 кубиков. Цель игры: составить наиболее выгодную покерную комбинацию из пяти игральных костей. Количество...

Ориентация треугольника в пространстве - C++
Все доброго времени суток, вообщем пытаюсь понять, как определить ориентацию треугольника в пространстве. Для плоскости нашёл, но вот с 3d...

Дано символ C - исходная ориентация локатора и целые числа N1 и N2 - две посланные команды. Вывести ориентацию после выполнения этих команд - C++
Здравствуйтевот само условие в C++ сколкьо думал,сам то я начинающий но к правильному решению прийти немогу,прошу помощи. Локатор...

Разработка бота-асистента - C++
Всем привет. Появилась идея написания бота-асистента.Работать должен на Linux/Windows(больше акцент на Linux) В чем суть: при запуске...

Перемещения р*бота (switch) - C++
Робот может перемещаться в четырех направлениях ("С" — север, "3" — запад. "Ю" — юг, "В" — восток) и принимать три цифровые команды: 0...

Где разместить бота - C++
Возможно не по теме, но надеюсь поможете. Есть ли сервисы, на которых можно запустить и оставить выполняться код (c++, c#, python). ...

43
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
04.02.2013, 18:27  [ТС] #31
Я так понимаю нужно юзать Directx SDK в моем случае.
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
04.02.2013, 18:37 #32
denis0612,
...пальцем в небо тыкать далеко не уедешь...
Цитата Сообщение от denis0612 Посмотреть сообщение
Я так понимаю нужно юзать Directx SDK в моем случае.
Вариант с пакетами на мой взгляд самый оптимальный.
0
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
05.02.2013, 19:03  [ТС] #33
Допустим стянуть и подменить пакет я смогу, а вот где искать метод шифровки я даже предположения не имею, так что думаю нужно плясать в другую сторону...

Добавлено через 23 часа 12 минут
Можно пример работы функции EnumChildWindows (перечислить все дочерние окна по его HWND), а то в документации не разберусь...
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
05.02.2013, 20:21 #34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <windows.h>
#include <iostream>
 
HWND winHWND = NULL;
 
 
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)  {
    char buff[255];
    GetWindowTextA(hwnd, buff, sizeof(buff));
    std::cout << "\tCaption: " << buff << " | HWND: " << hwnd << std::endl;
    return TRUE;
}
 
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)  {
    char buff[255];
    char target[] = "Skype";
    if(GetWindowTextA(hwnd, buff, sizeof(buff)))
        if(strstr(buff, target) != 0)  {
            std::cout << "Main win: " << buff << std::endl;
            std::cout << "Child windows: \n";
            EnumChildWindows(hwnd, &EnumChildProc, 0);
        }
    return TRUE;
}
 
 
 
int main()  {
    setlocale(LC_ALL, "Russian");
    if(EnumWindows(&EnumWindowsProc, 0))
    return 0;
}
0
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
05.02.2013, 20:26  [ТС] #35
Спасибо, и еще вопрос, пытаюсь имитировать нажатия клавиш, так вот использую keybd_event. Символы и цифры работают, а спец. клавиши такие как ESC,ENT,TAB не работают...
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
05.02.2013, 20:52 #36
C++
1
VK_TAB
и т.д.
0
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
06.02.2013, 15:02  [ТС] #37
Да это я знаю, именно так и не срабатывают.

Добавлено через 13 часов 33 минуты
Я где-то читал, что эта функция не работает в играх и некоторых приложениях, что использовать вместо нее.

Добавлено через 4 часа 9 минут
upp
0
hepper
Кодогенератор
196 / 196 / 35
Регистрация: 15.06.2011
Сообщений: 789
Завершенные тесты: 3
08.02.2013, 14:02 #38
Цитата Сообщение от denis0612 Посмотреть сообщение
Допустим стянуть и подменить пакет я смогу, а вот где искать метод шифровки я даже предположения не имею, так что думаю нужно плясать в другую сторону...
есть возможность подсмотреть исходники клиента... мб там будет нужный алгоритм...
0
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
08.02.2013, 14:46 #39
Цитата Сообщение от hepper Посмотреть сообщение
есть возможность подсмотреть исходники клиента... мб там будет нужный алгоритм...
имхо, больше нечего сказать. всё зависит от вашего мастерства и размера проекта. наврятли разбираемый вами пакет данных передаёт 3 типа значений
высота
ширина
матрица
или т. п.
разработчики могут просто сделать шифровку и фиг вы решите что тут сделанна именно она ,а не другая
C++
1
2
for(unsigned int i = 0; i > len; i++)
c[i] += i;
так что ... приводите
1 название программы
2 ваши наработки

Добавлено через 3 минуты
denis0612, насчёт перехвата пакета (для программы вашей) - емли любите "хардкор))" можете использовать сырые сокеты. как сделать на них снифер, примеров хватает в инете
0
hepper
Кодогенератор
196 / 196 / 35
Регистрация: 15.06.2011
Сообщений: 789
Завершенные тесты: 3
08.02.2013, 21:36 #40
я даж исходники бота нашел какого то... по протоколу еще ничего там не нашел, но возможно работает по принципу, на котором пытается остановится ТС
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
08.02.2013, 22:31 #41
ТС, Вы можете хавать процесс игры.
0
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
09.02.2013, 15:31  [ТС] #42
Буду ковыряться в процессе и искать нужные мне значения, по которым можно построить логику.
И еще попутный вопрос, есть ли какая-то библиотечка/класс для с++ позволяющий работать с экраном, например осуществлять поиск определенной картинки по экрану?
И еще, в игре вся логика прописана на питоне, поэтому я в поиске декомпилятора файлов .pyc, в нете есть рабочий но там ограничение на размер файла...
0
hepper
Кодогенератор
196 / 196 / 35
Регистрация: 15.06.2011
Сообщений: 789
Завершенные тесты: 3
12.02.2013, 13:44 #43
посмотри тут http://tankleader.com/ бота, он на сишарпе, вскрывается легко...
0
denis0612
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 39
12.02.2013, 14:49  [ТС] #44
Через аиду?
0
12.02.2013, 14:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 14:49
Привет! Вот еще темы с ответами:

Как создать бота? - C++
Как сделать прорамму бота? Заходишь, она пишет - Введите имя: вводим имя и чтобы она из файлика какого ни будь брала базу типа ...

Нужно подключить бота к шахматам - C++
Мне нужно написать шахматы с возможностью подключения бота. Шахматы уже написал осталось подключить бота (бота нужно подключать как .exe ) ...

Игра в города для бота - C++
Пытаюсь написать код игры в города для своего бота, только уже много способов пробовал, не выходит. Простую версию игры(где просто...

Вычисление вероятности для решения бота - C++
Доброго времени суток! У меня в задании сказано сделать логику для ботов в игре блэк джэк. Я сделал так, что если сумма очков &lt;=10 то...


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

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru