 |
Придумать алгоритм оО - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
22.10.2012, 21:07
|
#1
|
|
|
|
Пехотинец
|
 Регистрация: 02.04.2011
 Сообщений: 66
 Популярность: 9953
 Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
|
Придумать алгоритм оО
Здравствуйте. Есть такая игра "World of tanks". Для тех кто не слышал о такой игре , поясню: Игра полноценная (клиентская) заходишь в бой и воюешь своим танком.
Сделал бота (бот нужен для того что бы просто зайти в бой и кататься по карте), который сам жмет кнопку "в бой" , заходит на карту и пытается вести себя как человек ( тоесть кататься по карте ). Пока что это выглядит очень уныло - танк врезается в препятствия , дергается как недобитый коллека... вообщем с первого взгляда опытного игрока можно сказать что это бот. Мне же нужно придумать какой то алгоритм для движения ... может даже "прикрутить глаза". Вариант с прокладкой маршрута не проканает , т.к стоит "АНТИБОТ".
Может у вас есть какие предложения ?
P.s Программа работает с клавиатурой и мышью ...
Мой пример
Код:
case komb of
0:begin
SendMessage(KlientWindow,WM_KEYDOWN ,87, MakeLong(0, MapVirtualKey(87, 0)));
sleep(random(4000));
SendMessage(KlientWindow,WM_KEYDOWN ,68, MakeLong(0, MapVirtualKey(68, 0)));
sleep(random(2500));
SendMessage(KlientWindow,WM_KEYUP ,68, MakeLong(0, MapVirtualKey(68, 0)));
sleep(random(15000))
end;
1:begin
SendMessage(KlientWindow,WM_KEYDOWN ,87, MakeLong(0, MapVirtualKey(87, 0)));
sleep(random(10000));
SendMessage(KlientWindow,WM_KEYUP ,87, MakeLong(0, MapVirtualKey(87, 0)));
SendMessage(KlientWindow,WM_KEYDOWN ,83, MakeLong(0, MapVirtualKey(83, 0)));
sleep(random(6000));
SendMessage(KlientWindow,WM_KEYDOWN ,65, MakeLong(0, MapVirtualKey(65, 0)));
sleep(random(5000));
SendMessage(KlientWindow,WM_KEYUP ,83, MakeLong(0, MapVirtualKey(83, 0)));
SendMessage(KlientWindow,WM_KEYUP ,65, MakeLong(0, MapVirtualKey(65, 0)));
end;
2:begin
SendMessage(KlientWindow,WM_KEYDOWN ,87, MakeLong(0, MapVirtualKey(87, 0)));
sleep(random(5000));
SendMessage(KlientWindow,WM_KEYUP ,87, MakeLong(0, MapVirtualKey(87, 0)));
SendMessage(KlientWindow,WM_KEYDOWN ,83, MakeLong(0, MapVirtualKey(83, 0)));
sleep(random(15000));
SendMessage(KlientWindow,WM_KEYDOWN ,65, MakeLong(0, MapVirtualKey(65, 0)));
sleep(random(5000));
SendMessage(KlientWindow,WM_KEYUP ,83, MakeLong(0, MapVirtualKey(83, 0)));
SendMessage(KlientWindow,WM_KEYUP ,65, MakeLong(0, MapVirtualKey(65, 0)));
end;
3:begin
SendMessage(KlientWindow,WM_KEYDOWN ,87, MakeLong(0, MapVirtualKey(87, 0)));
sleep(random(30000));
SendMessage(KlientWindow,WM_KEYUP ,87, MakeLong(0, MapVirtualKey(87, 0)));
end;
4:begin
SendMessage(KlientWindow,WM_KEYDOWN ,83, MakeLong(0, MapVirtualKey(83, 0)));
sleep(random(10000));
SendMessage(KlientWindow,WM_KEYUP ,83, MakeLong(0, MapVirtualKey(83, 0)));
end;
5:begin
SendMessage(KlientWindow,WM_KEYDOWN ,83, MakeLong(0, MapVirtualKey(83, 0)));
sleep(random(15000));
SendMessage(KlientWindow,WM_KEYDOWN ,68, MakeLong(0, MapVirtualKey(68, 0)));
sleep(random(6000));
SendMessage(KlientWindow,WM_KEYUP ,83, MakeLong(0, MapVirtualKey(83, 0)));
SendMessage(KlientWindow,WM_KEYUP ,68, MakeLong(0, MapVirtualKey(68, 0)));
end;
|
|
|
22.10.2012, 23:18
|
#2
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Придумать алгоритм оО
ИМХО, работать напрямую с графическим движком
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.10.2012, 12:45
|
#3
|
|
|
|
Пехотинец
|
 Регистрация: 02.04.2011
 Сообщений: 66
 Популярность: 9953
 Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 14:56
|
#4
|
|
|
|
Старший сержант
|
 Регистрация: 29.07.2011
 Сообщений: 197
 Популярность: 8989
 Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 15:27
|
#5
|
|
|
|
Сержант
|
 Регистрация: 06.06.2012
 Сообщений: 131
 Популярность: 102
 Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 16:47
|
#6
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Придумать алгоритм оО
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.10.2012, 20:16
|
#7
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Придумать алгоритм оО
я так полагаю в игре есть карта, можно ли клацнув по определенным координатам на карте заставить двигать танк? допустим как в некоторых мморпг играх.
если так, предлагаю поделить мапу по координатам (визуально)
пример
Последний раз редактировалось warl0ck; 23.10.2012 в 20:44.
|
|
|
23.10.2012, 20:46
|
#8
|
|
|
|
Пехотинец
|
 Регистрация: 02.04.2011
 Сообщений: 66
 Популярность: 9953
 Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 21:16
|
#9
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Придумать алгоритм оО
1.можно найти номера текстур преград, закрасить их допустим красным цветом (или любым другим чистым цветом который редко встречается в игре)
2.нарисовать матрицу возле танка, по центру, которая будет искать определённый цвет, в нашем случае чистый красный (255.255.0.0) .

3.если в одной из матриц будет найден красный цвет, те преграда, бот рандомно выберет вариант, куда продолжать двигать.
Допустим, бот встретил впереди преграду

Ставим в матрице где встретилась преграда = 0, после чего рандомно генерируем а или d, какой номер кнопки выпал такую и жмём
Как-то так….
пс можно и разобрать игру, найти классы отвечающие за координаты преград, но нужен очень высокий скилл реверсинга и не один месяц роботы)
Последний раз редактировалось warl0ck; 23.10.2012 в 21:32.
|
|
|
23.10.2012, 22:28
|
#10
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Придумать алгоритм оО
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.10.2012, 22:30
|
#11
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 22:35
|
#12
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Придумать алгоритм оО
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.10.2012, 22:40
|
#13
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
23.10.2012, 22:50
|
#14
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Придумать алгоритм оО
Иди лесом, делать мне больше нечего
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
23.10.2012, 22:52
|
#15
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Придумать алгоритм оО
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 06:23.
|
 |