ИИ, боты для онлайн игр, обсуждаем

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

ИИ, боты для онлайн игр, обсуждаем

Сообщение Maitris » 20.02.2006 (Пн) 19:41

Вот занялся идеей создания бота для Online RPG... Хотелось бы услышать пару советов 8)
Кто делал аналогичное, отзовитесь :!:
P.S. небольшой опыт имеется
----

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.02.2006 (Пн) 19:45

Бот, которые будет не инсайдерским (встроенным в игру), а внешним, играющим через игровой интерфейс?
Гы. Когда сделаешь, опубликуй здесь, было бы интересно почитать.
Lasciate ogni speranza, voi ch'entrate.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 20.02.2006 (Пн) 19:58

Внешний, работающий по командам игры, и визуально отображающий процесс своей деятельности
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 20.02.2006 (Пн) 20:04

alibek
Моя задача не очень сложна, т.к. игра текстовая, но очень интересная, много народу сидит. Цена в месяц почти такая же как на например тот же Lineage, Sfera и другие...
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 20.02.2006 (Пн) 20:21

Если кому интересно, могу выложить фрагмент того, что я уже делал (правда давно это было) :)
----

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 21.02.2006 (Вт) 2:00

Maitris
Работал в этой сфере, в случае чего могу помочь... Если игра конечно броузерная =), а не типа LA...
Хороший :D, плохой :x, злой :twisted:.

(Не)Люблю кАпаться в чЮжих сорсах.

Хочешь узнать что такое Piligrim? Прошу - http://www.piligrim-gps.ru/

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 21.02.2006 (Вт) 3:04

Интересно... как можно что-то обсуждать, не зная, на какую игру именно ты хочешь натравить бота?

визуально отображающий процесс своей деятельности

Чат включительно? +_+

Моя задача не очень сложна, т.к. игра текстовая

Текстовые игры бывают разные... Попробуй создай бота для онлайн-брауз-игры, выполненной в стиле jrpg +_+ Сомневаюсь, что в этом случае у тебя что-нить получится +_+
Другое дело - типа "Бойцовска" (когда он был в самом начале, больше я там не был)... Здесь особых проблем быть не должно - можно даже почти и не лезть дальше SendMessage-ей.

В общем, ждем разъяснений.

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 21.02.2006 (Вт) 9:24

[offtop]Странно, мне казалось, в MUD'ах обычно ботов не поощряют. Вот мне вообще интересно: по каким таким причинам народ пускается в ботоводство? Побыстрее стать хайлэвом? Ну так ведь удовольствие от игры в какой то степени состоит и в преодолении всех тягот ранних уровней... Если же так интеерсует игровой ИИ, то есть порядочно проектов, "заточенных" под его это.[/offtop]
Листинги не горят!

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 21.02.2006 (Вт) 9:55

Такс.. Чтобы было понятно что за игра, беру цитату с одного сайта...

Но игра хорошая :) Там умения были: Блокирование, уклонение, на разное оружее, скрытность, приручение животных, некромантия, кузнец, плотник, дровосек, рыбак, рудокоп, ювелир и многие другие :) Разные комбо удары, заклинания, оружее... Там есть прикол: Если ты атакуешь перса, то становишься бандитом (при атаке убьешь - убийцей), если прирученное убьешь животное - живодером, вещи с трупа невинно убиенного берешь - мародером (этот статус ставится на опр время... 15-45 минут вроде в зависимости от тяжести преступления...). Таких в городе бьют стражи, и если преступников убивать, то тебе ничего не будет :)
----

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 21.02.2006 (Вт) 9:56

Faust
Да у меня там есть все, знаю каждый уголок :) Интересно создание в научных целях.
Крост
Браузерная. Ты делал клиенты, или именно ИИ?
----

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 21.02.2006 (Вт) 11:05

Делал аналогичное.

Общий принцип был таков:
Грузится основная страничка (скажем, информация о персонаже). Оттуда достается его здоровье, мана, деньги и т.п. - все подробности
Из этого делается вывод о состоянии игрока - было сделано несколько константных состояний - "лечится", "восстанавливает ману", "в бою", "в пути" и т.п.
Дальше были описаны действия в каждом из состояний. Если он лечится, то бот ждал энное время. Если персонаж уже здоров, то открывалась страничка со списком доступны боев и на основании формулы определялся предпочтительный для участия, персонаж туда записывался.
В бою действия были точно такие же. Анализировались противники, их сильные и слабые стороны (стратегия может быть настраиваемой - подключается фантазия).
После окончания боя анализируем состояние персонажа и повторяем цикл.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 21.02.2006 (Вт) 12:33

Amed
Все понятно, уже делаю :)

У меня было так:
Атака
Добивание
Спец. атаки (яд и прочие игр. предметы)
Восстановление жизни (различные элексиры и пр.)

А также два стиля, классический и агрессивный. В первом бой выигрывается временем, во втором больше риск, но и шанс победить быстрее.
Вот так. Только за исключением что моя ходить не умела, только вести бой в 1-2 локациях
Потом еще можно сделать TrackBar, для установки коэффицента риск-шанс, т.к. в моей RPGшнице бой может закончится за 5 секунд (и такое бывает, например два раза критический урон)

Сейчас конкретно хочу сделать основной задачей хождение по игровому миру.
----

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 22.02.2006 (Ср) 1:13

2 Maitris
Ну ясно, прямое название игры - это реклама. Но в личку линк на эту самую игру мне кинуть можно? Заинтересовал ты меня...

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 23.02.2006 (Чт) 14:49

Занялся только что написанием бота. Собственно поясните алгоритм в общих чертах. Как я понимаю принимаем страницу, анализируем как нам надо, формируем запрос, посылаем.

Вопрос по взаимодействию с различными формами. Я правильно понимаю что информацию о состоянии формы на момент нажатия кнопки несет в себе собственно запрос? Если так, то как понять что именно с ним передать? Понимаю что вопрос нубский, но все же. :oops: Смотреть код странички?

Add: Правильно понимаю что это Value передаваемое сабмиту? Поясните если можно на каком нить простом примере. Например нажать поиск на ya.ru передав туда строчку для поиска.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.02.2006 (Чт) 14:54

GAGArin, конечно, как иначе? Есть страничка, на ней форма с двумя радиобатонами и кнопкой "отправить", к примеру. Смотришь один раз код этой странички и делаешь себе в vb-коде шаблон для отправки конкретно этой страницы. И так для каждого случая.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 23.02.2006 (Чт) 14:55

Вроде начинаю вьезжать, спасибо дальше сам разберусь. Просто думал может совсем не в ту сторону думаю )

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 23.02.2006 (Чт) 20:22

GAGArin
Например
*ttp://www.yandex.ru/yandsearch?rpt=rad&text=test
*ttp://www.yandex.ru/yandsearch - адрес скрипта
?rpt=rad&text=test - передаваемые ему параметры.
В играх это выглядит примерно так: *ttp://www.onlinegame.com/game.php?username=myusername&password=mypass&action=heal.
Т.е. к примеру в Php создается переменная action со значением "heal", которую в последствии скрипт может считать.

Или же защищенный ввод пароля, который ты видишь только один раз :)
----

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 23.02.2006 (Чт) 21:23

Это я уже понял, теперь бьюсь с попытками авторизации. Прикрутить куки думаю смогу, а вот выбить их у сервера. На запрос на логин он гордо отвечает нет такого чара ) Сижу чешу репу что бы это значило. Дальше то он вроде должен по ID сессии работать.

ЗЫ Как я получал запрос. Просто взял сорц страницы и сменил POST на GET пусканул эту страницу и "залогинился" получил параметры. Потом пытался слать их из проги уже POSTом но фиг...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.02.2006 (Чт) 21:47

Лучше смотри исходник глазами. Найди сам все нужные поля.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 23.02.2006 (Чт) 21:50

Да уж смотрел, вроде все то же самое... Я собственно таким методом пошел после того как долго пытался из исходника это понять. Есть там только одна закарючка. Неясно зачем он передает положение кнопочки логин (х,у) Но в параметрах она есть...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 01.03.2006 (Ср) 14:28

Просто взял сорц страницы и сменил POST на GET


Лучше так не делать ;) Если в php на серваке отключена регистрация глобальных переменных и параметры обрабатываются через $_POST['myvar'] и $_GET['myvar'], а не $myvar, то у тебя ничего не получится... Лучше пихать серверу именно таким методом, который предусмотрен разработчиками.

Неясно зачем он передает положение кнопочки логин (х,у) Но в параметрах она есть...


Если кнопка графическая, то коорлдинаты клика на ней передаются браузером по умолчанию. Это и во всех спецификациях описано...
То, что для одних константа, для других только переменная...

Spine
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.11.2005 (Сб) 2:15

Сообщение Spine » 14.03.2006 (Вт) 5:43

Тоже на досуге пишу ботов )) Вопрос возник:
При выполнении некоторого действия ) грузится скриптовый таймер вот такого вида:
<script>var wm = 0;var ws = 45;var uwID = -1;can_move = false;function updatew(){if (uwID >=0){ clearInterval(uwID);} if (ws--<=0){ws = 59;wm--;}if (wm>=0){document.all['wtime'].innerHTML = "<b>" + wm + "</b> мин. <b>" + ws + "</b> сек."; uwID = setInterval("updatew();",1000);}else{window.location='map.php';}}updatew();</script>

Можно изменить время таймера, а именно цыфирку 45?

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 14.03.2006 (Вт) 13:19

Пробовать нужно. В JS можно менять переменные одного окна, скриптом из другого окна. Попробуй что-то вроде:

document.ws = 10

или

document.frames('myframe').ws = 10

Из JS работает, есть все шансы, что и из VB сработает :)
То, что для одних константа, для других только переменная...

Spine
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 05.11.2005 (Сб) 2:15

Сообщение Spine » 15.03.2006 (Ср) 7:19

Что-то не выходит (((
Результат выполнения скрипта могу выцепить - document.all['wtime'].innerHTML, могу поменять, но потом опять вылезает результат самого таймера. Вот как-бы саму переменную ws поменять?

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 15.03.2006 (Ср) 12:33

Ну других идей у меня нет. Если так не работает, то возникает закономерное подозрение, что VB на JS влиять никак не может ;) Разве что попытаться покопать в сторону eval или чего-то подобного.
То, что для одних константа, для других только переменная...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 15.03.2006 (Ср) 18:00

Вот похоже то, что тебе нужно: http://bbs.vbstreets.ru/viewtopic.php?p=6591388#6591388 . В общем основная идея использовать ScriptControl для этих целей. Только помни еще об одной вещи. Если ты хочеш таким образом влиять, скажем, на таймауты, то как правило клиентские таймауты имеют мало общего с серверными. Если ты таким образом задержиш какое-либо действие в игре, при первом-же запросе к серверу тебе будет все равно возвращена ошибка о превышении таймаута. Во всяком случае в той браузерной игре, в создании которой я сейчас принимаю участие, именно так и реализовано - есть JS, который отображает что-то на странице и есть куча проверок в серверных скриптах в момент прихода инфы от клиента.
То, что для одних константа, для других только переменная...

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 19.04.2006 (Ср) 9:54

По теме - имхо самый простой способ реализовать перемещение бота по карте в конкретную точку в браузерной онлайн игре:
1. В меню делаем item например "Из Магазина Заклинаний в Городской Банк".
2. При выборе строим содержимое динамического массива, последовательно все команды перемещения.
3. Начиная с последнего посылаем запросы серверу, если ответ HTTP 200 то убираем последний же элемент массива, если ошибка то повторяем..
----


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 173

    TopList  
cron