Просмотр полной версии : Исходники моего недоделанного бота
Окончательно поняв что уже не вернусь к этому проекту решил выложить его сорци, может кому пригодятся, чего добру пропадать.
http://coderx.ru/uploads/xBot2010.sources.rar
Бот умеет довольно мало (автоматически вообще ничего можно сказать не может), но он понимает порядка 60 пакетов от сервера по протоколым интерлюда и хелбаунда, берёт значки вещей и скилов из клиентского Icon.utx, работает чат, диалоги с нпц, запись примитивных скриптов (бег и разговоры с нпц только записываются ибо больше ничего ботом и нельзя поделать), ну и основные фишки этого бота: поддержка геодаты (сорци моего конвертора геодаты так же в комплекте), отображение на карте проходимости из текущей точки. За давностью лет уже может и забыл о ещё каких то умениях, но всё остальное в основном лишь в зародыше, даже торговлю так и не доделал.
Для компиляции (хотя сомневаюсь что есть смысл его компилить, разве что чтоб нагляднее посмотреть какие куски вам могут пригодиться) понадобятся:
* Delphi 2010 или выше (используются генерики и расширенное RTTI, так что на более ранних версиях не выйдет собрать)
* DevExpress VCL (версию не помню, но по идее любая из последних с торентов прокатит, эти компоненты использованы в основном для докинга)
* JVCL и JCL (http://jvcl.delphi-jedi.org/)
* Graphics32 (http://graphics32.org) (на этом компоненте реализована отрисовка карты)
* L2Controls (ссылки под рукой нет, это компоненты от Hint'a внешне похожие на контролы из клиента игры)
* PaxCompiler (http://www.paxcompiler.com/) (это скриптовый движок отличный)
* TRichView (http://www.trichview.ru/) (на этом реализованы HTML диалоги с нпц)
* VirtualTVExt (присутствует в архиве, служит для отображения и редактирования древовидных таблиц)
Вроде все компоненты перечислил.
Ну и вот скрины для затравки (3й от более старой версии, но в нём показана карта проходимости)
поддержка геодаты А как он её использует? Сам обходит препятсвия во время bot.moveto ?
mikser, не, только высоту берёт из геодаты для координат куда ты тыкаешь на карте и карту проходимости строит, обход препятствий не успел сделать, тока метод для построения кратчайшего маршрута по точкам геодаты вроде написал, но оптимизации и использования для перемещения нет.
тока метод для построения кратчайшего маршрута по точкам геодаты вроде написал
А какой алгоритм использован был? если юзать волновой то слишком большая матрица получится :)
mikser, волновой, двумя волнами, матрица конечно большая, но для просчёта пробежки через пол гирана например у меня тратилось вроде меньше секунды времени что вполне приемлемо.
Be3geBJIa3
28.03.2012, 13:41
Предлагаю организовать команду, человек из 3-4 и сделать нормального бота, а главное довести проект до логического завершения.
много ли пользы от пакетного бота?
много ли пользы от пакетного бота?А почему нет? Тот же ПХ неплохо себя показывает на многих серверах.
alexteam
28.03.2012, 15:08
много ли пользы от пакетного бота?
сможете объяснить чем пакетный бот отличается от непакетного ?
ог волкер - пакетный бот. (собирает и криптует трафик который будет отправлен на сервер своими собственными средствами, декриптует и разбирает трафик от сервера так же своими средствами)
иг волкер - не покетный бот. (построен на использовании апи клиента. полностью либо частично. разбор трафика может быть либо как у пакетника, либо считывание с памяти клиента хп\мп\цп и прочего. вариантов масса)
есть еще микс - умеет и то и другое. зачастую читает декриптованый трафик с помошью клиента. формирует пакеты на отправку собственными средствами но криптует и отправляет руками клиента. либо криптует\декриптует собственным модулем, в зависимости от режима в котором запущен и наличии\пригодности собственного модуля криптовки.
микс > ог > иг
по определению.
хотя опять же нужно смотреть что умеет тот либо тот. вдруг у вас ог который ковыряться в носу только умеет.
зы.
если вы подразумеваете "непакетники" то это тупо блистер\коробочка на картинке в формате джпег с обычным иг и новым названием. оно же запудривание мозгов потенциальному конечному пользователю. оно же ____нужное вписать и подчеркнуть____
призвано только для высеров "вау у меня эта хрень с новым названием а у вас старый унылый ИГ (или ищщо хуже ОГ)" что собственно вы и демонстрируете.
сможете объяснить чем пакетный бот отличается от непакетного ?Если не трудно, подскажите какой все же бот гибче? С одной стороны АПИ нужно ведь сплайсить что в свою очередь может выглядить подозрительно, с другой стороны (имеется ввиду пакетные боты) пакеты бывает шифруют невиданной хренью что приводит к трудностям расшифровки.
Что подразумевается под гибче? Пакетный бот - это эмулятор клиента, использует меньше ресурсов, стабильность и баги зависят только от автора бота. Используя АПИ клиента можно "обойти" защиту в виде дополнительного или измененного шифрования. Думаю не стоит рассказывать, что клиент использует много ресурсов, крашится и т.п.
---
Впрочем все и так подробно расписал алекстим.
Используя АПИ клиента можно "обойти" защиту в виде дополнительного или измененного шифрования.Может вопрос неправильно сформулировал, к примеру при переходи с одних хроник на другие или работа на разных серверах АПИ и пакетный бот все равно подвергается корректировки? Или АПИ клиента меняется реже чем пакеты?
Есть разные уровни АПИ в клиенте. Например SendPacket либо MoveToLoc, PickUpItem и т.п. Думаю уровень, который выше меняется реже чем пакеты. Но пакеты не так часто меняются, в основном добавляются новые. Не думаю , что это большая проблема.
alexteam
28.03.2012, 20:57
изменения и там и там довольно отслеживаются "одинаково"
с клиента можно выдрать формат\имена пакетов в строковой форме.
изменения и там и там довольно отслеживаются "одинаково"
с клиента можно выдрать формат\имена пакетов в строковой форме.Т.е. по сути вообще не критично на чем был сделан бот (АПИ/пакеты) если делали грамотные люди?
Ну в ИГ ты привязан к клиенту и его багам, а если ООГ, то зависит от грамотности кодера.
Хкор а где ты брал геодату? её как то можно из клиента вытащить?
MyGarant.net
31.03.2012, 06:06
Хкор а где ты брал геодату? её как то можно из клиента вытащить?
возможно сделал или купил/скачал парсинг l2, который собирает онлайн все данные на игровом сервере: гео, имена, мобы, персонажи и другое :spiteful:
l2on, вроде, тоже парсингом считается
Например, парсинг Вконтакте, который собирает по возрасту мобильные номера девушек, а потом на эти номера отправляется рассылка смс с рекламой товаров и услуг :spiteful:
омг :) геодата это не имена мобов и персонажей.
геодата это данные о высоте каждой точки поверхности игрового мира.
купил/скачал парсинг l2наверное всетаки парсер.
Добавлено через 30 минут
я взял геодату от ява сервака так что весит гдет 700 метров Какая жаль, Жаба никогда не славилась точностью своей геодаты :(
хм, с источником геодаты как счас вспоминается у меня как то странно было, конвертер мой кушает геодату в формате ПТС вроде, но качал я вроде бы явовскую гео, первую попавшуюся ибо для тестов а не релизного использования, и видимо ещё чем то преобразовывал явовскую в офовскую)
ЗЫ качество при конвертациях по идее не терялось ибо эти 3 формата отличаются лишь тем в каком порядке записываются типы блоков и их высоты в файл, свой формат я замутил что бы файл можно было загрузить в память и юзать как геодату практически без разворачивания его, а лишь настроив несколько указателей.
Самая качественная гео - эт как юзают корейцы: buildzone через клиент в несколько прогонов))))
Самая качественная гео - эт как юзают корейцы: buildzone через клиент в несколько прогонов))))
Это как?
Это как?
http://files.l2-community.com/L2M_GeoEditor_v1.6.7z
Для С4 юзал эту программу. Она вытаскивает инфу о геодате с клиента.
Это как?
Есть такая вещь в клиенте как DevMode, позволяет запускать клиент в т.н. режиме разработчика. Небольшое описание https://forum.4game.ru/showthread.php?t=308179.
В этом режиме есть функция buildzone (вбивается в консоль), которая позволяет создавать файлы геодаты на основе текстур. Генерит эта функция от нескольких минут до нескольких часов (зависит от engine.dll). В результате получаются текстовые файлы, которые уже можно перегнать в файл геодаты.
Только норм пропатченных engine.dll для ГОДа пока нет вроде (точнее есть одна но очень сырая, и пытаться самому допилить пока желания нет), ну а в обычной версии клиента все необходимые функции залочены(((
Вот еще несколько ссылок в довесок, если интересно:
http://www.mmocom.ru/showthread.php?t=607&p=23862&viewfull=1#post23862
http://forum.zone-game.info/showthread.php?t=2890
http://forum.zone-game.info/showthread.php?t=16853
goodvin1709
06.04.2012, 23:33
Ох и геморно и долго таскать геодату билдзонами...Очень много времени уходит+Проблема с дверьми+ проблема с катами нужно выставлять ботов в определенных точках чтобы они там вытаскивали а потом склеивать все в кучу....
Я не отрицаю, что геморно)
Но в результате все качественные гео, насколько мне известно, сделаны именно так)))))
PornoTraktor
30.09.2012, 13:04
может кто поделиться уже сгенеренной гео? почитал по ссылкам - очень суровый квест:confused:, занимаясь им вечерами\по выходным месяц может легко уйти и то не факт что в конце вин...
PornoTraktor, возьми готовую гео для java сервера. Ее легко найти в интернете.
Загугли "l2 geodata"
PornoTraktor
30.09.2012, 13:48
Yegor, а это та самая православная с buildzone или просто какая-то геодата... Просто если уж и пытаться браться за такую аваньтюру как прикручивание честной геодаты в робота, то хотелось бы взять нормальную а не абы какую...
PornoTraktor, они есть разные, но качество обычно достаточное, чтобы бот нормально ориентировался в пространстве. Ты разберись с форматом и прукрути ее. Прикол в том что геодата в формате l2j распространена и ты всегда сможешь попытаться найти более качественный вариант который подойдет под твой движок без переделки.
Помогите настроить запуск бота (кстати он под HF идет?)
есть 3 файла с предполагаемыми настройками, без документации некоторые параметры не совсем тривиальные:
accs.xml - я так понимаю этот файлик для автозахода на учетки или просто сохраняет все учетки на которые заходил бот?
<Options>
<l.i SrvId="{92932F61-E517-4D07-9A83-05ECA7123991}" Login="login1" PswCrypted="401363735E0E467781CB351EFA3F0A97" CharName="login1"/>
<l.i SrvId="{F5B81F7E-FF5D-4956-BF29-C9C6E1A40998}" Login="login2" PswCrypted="1BFECC5435A0DCAD1F618EC9599DC8F4" CharName="1"/>
</Options>
servers.ini - параметры коннекта на ЛС, что такое ge? Narodniy это наименование критично связано с серверами? или тут можно любое наименование указать для наглядности? Как можно узнать порядковый номер (Num) действующего сервера?
[ShockWorld.com]
Narodniy=95.211.81.129 2106 20 ge 148
servers.xml - это тоже конфиг или результат (лог-файл) логина на сервера? Если конфиг тогда интересуют следующие параметры:
ServType, SrvId - где их можно получить для конфигурации коннекта? В частности интересует как будет выглядеть ServType для ПТС платформы High Five?
<Options>
<l.i Name="Shock-World.com" IP="95.211.81.129" Port="2106">
<l.i Name="Narodniy" IP="78.46.20.18" Port="7777" ServType="scCT2GraciaEpilogue" Num="20" ProtocolNum="148" SrvId="{D0B5C3C8-BA06-4E3E-805F-3F26EE684FCE}"/>
</l.i>
</Options>
UPD 1
если верить ЕХЕ коду бота, то типы сервера такие: scC6Interlude, scCT1Kamael, scCT1_5Hellbound, scCT2Gracia, scCT2GraciaEpilogue и HighFive среди них нет :( Или все таки существует возможность подружить бота с ПТС платформой HighFive если не полной функциональности бота, то хотя бы только в части исполнения заранее подготовленных пакетных команд? Т.е. все исходные данные я путем анализа/снифа узнаю и на их основании сформирую пакеты (движения к заданной точке, покупка предметов и т.д.) для бота
ScythLab
31.05.2016, 21:51
По основным настройкам не подскажу, не разбирался с этими исходниками.
scC6Interlude, scCT1Kamael, scCT1_5Hellbound, scCT2Gracia, scCT2GraciaEpilogue и HighFive среди них нетСтавь scCT2GraciaEpilogue, у них с HF отличия минимальные, и если пробежишься по коду бота, то увидишь, что косяки могут всплыть только после входа мир (информация об окружении), на этапе подключения не помню, чтобы между этими хрониками были какие-либо различия.
Ставь scCT2GraciaEpilogue
Спасибо, буду пробовать. Мне бы прорваться в игровой мир для начала :)
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot