Страница 1 из 1

XKore 1 - запуск нескольких ботов

Добавлено: Вс мар 17, 2013 1:55 pm
4epT
Итак, для запуска нескольких ботов в режиме xkore 1 необходимо убедиться что клиент позволяет запускать несколько окон. Каждому боту требуется своё окно клиента.

Так же требуется перенастроить самого бота, а именно изменить порт xkore. Порт меняется в 2-х местах:
1. в файле \src\Network\XKore.pm (по умолчанию стоит my $port = 2350;)
2. в библиотеке NetRedirect.dll (с помощью hex редактора)

Если с файлом никаких проблем не возникает, то в dll не все могут сменить порт.

Предлагаю вашему вниманию архивчик XKore_port.zip

он содержит 10 dll с изменёнными портами от 2351 до 2360 и краткую инструкцию.

Напомню, что для настройки бота в режиме "XKore 1" необходимо в конфиге прописать:

Код: Выделить всё

XKore 1
XKore_exeName ragexe.exe
В параметре "XKore_exeName" прописывается имя запускаемого файла клиента Ragnarok Online. На многих пиратках это может быть dll, bin или даже grf файлы. Для того чтобы узнать имя файла необходимо:

а) Запустить клиент привычными нам методами (либо сразу прямой exe, либо через патчер). Когда загрузится окно клиента, нажимаем магическое сочетание C+A+D, открываем вкладку "Приложения", находим наше приложение и правым кликом выбираем "Перейти к процессам":
Изображение

б) Наш курсор переместится прямо на исполняемый файл, в нашем примере это файл "ragnar.bin"
Изображение


Ещё один важный момент:

Для работы бота в режиме "XKore 1" не надо определять такие настройки сервера, как: ip, port, master_version и version! Самое главное - это правильно определить serverType, charBlockSize и recvpackets.
Типовая настройка сервера выглядит так:

Код: Выделить всё

[AstreyaRo]
serverType kRO_RagexeRE_2010_07_14a
serverEncoding Russian
charBlockSize 132
recvpackets recvpackets_AstreyaRo.txt
addTableFolders pserver;translated;translated/kRO_english;kRO

Ещё одной проблемой
в запуске нескольких ботов в режиме "XKore 1" может являться одинаковое название имени запускаемого файла клиента. Принцип работы примерно такой: Запускаем бота, он сканирует запущенные приложения и пытается найти файл, который вы указали в параметре "XKore_exeName". Если у вас будет запущено несколько окон, то бот подключится к первому найденному. И не факт, что второй бот найдёт второй запущенный клиент. Т.е. может получится, что 2 бота пытаются подключиться к одному и тому же клиенту. В таком случае будет работать только один бот. Решения тут два:
1. Переименовать файл клиента (могут быть проблемы с запуском клиента)
2. Изменить механизм поиска файла клиента (в файле \src\Network\XKore.pm)

PS: как будет свободное время, постараюсь найти свои наработки по пункту 2. Мне кажется, что давно давно Jerry тут описывал свой вариант поиска файла клиента, но мне его найти не удалось..

Re: XKore 1 - запуск нескольких ботов

Добавлено: Ср мар 20, 2013 11:21 am
4epT
Итак продолжим. Предлагаю новый файл XKore.pm который позволяет выбрать экземпляр клиента к которому можно подключиться :Yahoo!:
этот файл актуален начиная с SVN7785. Позже добавлю в SVN.

Установка:
1. скопировать этот файл в srcNetwork с заменой
2. в конфиг добавить следующие параметры:
XKore_port 2350- порт xkore (теперь меняем из конфига ;))
XKore_dll NetRedirect.dll - имя dll-файла
XKore_autoAttachIfOneExe 1 (если стоит 1 (ну или любой символ кроме 0), и запущен всего один клиент, то xkore сразу к нему подключится)

Инструкция по запуску нескольких ботов:
1. запускаем первое окно клиента
2. открываем конфиг первого клиента, выставляем: XKore_port 2350, XKore_dll NetRedirect.dll
3. запускаем первого бота:
Ragnarok Online client found, pid = 5636
Ожидание клиента Ragnarok Online для подключения к X-Kore... готово
Сейчас вы можете войти в игру через обычный клиент Ragnarok Online.
4. запоминаем PID (Process IDentificator), к которому подключился xkore, логинимся в клиенте, бот побежал

5. запускаем второе окно клиента
6. открываем конфиг второго клиента, выставляем: XKore_port 2351, XKore_dll NetRedirect_2351.dll
7. запускаем второго бота:
Found Ragnarok Online client(s), select one: (enter to rescan, quit to quit)
------------ Select Ragnarok Online client ------------
[0] pid = 5636 (Ragexe.exe)
[1] pid = 7868 (Ragexe.exe)
-------------------------------------------------------
Введите ваш ответ:
8. вспоминаем, что PID 0 уже занят, поэтому вводим "1":
Selected pid = 7868
Ожидание клиента Ragnarok Online для подключения к X-Kore... готово
Сейчас вы можете войти в игру через обычный клиент Ragnarok Online.
9. логинимся в клиенте, бот побежал

и т.д.


В архиве вы также найдете 10 длл с изменёнными портами.

XKore_port (1).zip

Добавлено спустя 6 минут 39 секунд:
Обсуждение ведём тут