Подключение бота к серверу

Материал из Руководство по OpenKore
Перейти к: навигация, поиск

Получение информации о сервере

Вместе с OpenKore идут настройки только для официальных серверов, но не для приватных. Из-за того, что приватных серверов великое множество, невозможно поддерживать настройки для них в актуальном состоянии. Таким образом, игрокам приватных серверов следует выяснить самостоятельно настройки их серверов, пользуясь при этом данным гайдом.

Прежде чем приступить к чтению гайда, прочитайте список неподдерживаемых серверов. На вашем сервере может быть защита от ботов, что может препятствовать OpenKore и такой сервер не будет поддерживаться OpenKore.

OpenKore нуждается в следующей информации о сервере Ragnarok Online, прежде чем сможет залогиниться:

  • Имя сервера.
  • Адрес сервера в интернете (IP-адрес или доменное имя) и номер порта.
  • Номер master version сервера.
  • Номер version сервера.
  • Кодировка текста.
  • СерверТип serverType сервера.

Есть два способа получить информацию о сервере, с использованием WPE или Wireshark.


WPE (Winsock Packet Editor)

1. Скачайте WPE и распакуйте.

  • Перед скачиванием, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. Вы скачиваете WPE под свою ответственность, никто иной не будет виноват, если ваш компьютер сломается.
  • Вам может потребоваться программа для распаковки архива с WPE. Наиболее распространённые ахиваторы WinRAR и 7zip.

2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите WPE.

3. В окне WPE щёлкните по кнопке Target Program.

Targetyc.png


4. Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.

Clickrag.png
Примечание: Некоторые серверы скрывают свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в xxxx.dll или xxxxx.bin), так что не переживайте, если запущенный файл не является .exe-файлом.


5. В окне WPE щёлкните по кнопке Play button.

Play.png


6. Перейдите назад в окно клиента Ragnarok Online и попробуйте залогиниться.

Примечание: Не обязательно вводить правильные логин и пароль.


7. Вернитесь в окно WPE и щёлкните по кнопке Stop button.

Stopjw.png


8. Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти version, master_version, IP-адрес и порт сервера.

Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с 64 00.
На следующем рисунке показан перехваченный пакет, который содержит version и master_version. Выпишите обведённые числа на бумажку, они понадобятся позднее.
Inforb.png
Условные обозначения:
  1. - version
  2. - IP-адрес
  3. - порт
  4. - Master version


9. Чтобы перевести значения version и master version в понятный для OpenKore десятеричный формат, смотри раздел - перевод чисел в десятеричную систему.

Wireshark

1. Скачайте и установите Wireshark.

2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите Wireshark.

3. В окне Wireshark перейдите по меню Capture > Options или нажмите Ctrl + K.

Capiture.png


4. В открывшемся окне в выпадающем списке Interface: выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит unknown. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке.

Options.png


5. После настройки всех параметров, щёлкните по кнопке Start и перейдите назад в окно клиента Ragnarok Online. Попробуйте залогиниться. Примечание: Не обязательно вводить правильные логин и пароль.


6. После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке Stop.

Stop.png


7. В главном окне Wireshark можно увидеть записи о перехваченных TCP-сегментах. Отсейте ненужные, используя в фильтре пакетов введённый вами логин.

Введите в поле Filter одно из двух:
 eth contains "xxxxxx" или eth contains xxxxxx
Вместо xxxxxx подставьте логин, который вы использовали при входе в Ragnarok, и нажмите Enter. В данном пример логин был Mushroom.
Filter.png


8. Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте IP-адрес и порт сервера.

Ip.png
Запишите IP-адрес и порт сервера на бумажку, они понадобятся позже.


9. Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите Follow TCP Stream.

Tcp.png


10. Откроется новое окно, внизу слева выберите Hex Dump.

Hex.png


11. Теперь у нас есть логин-пакет. Запишите version и master version на бумажку.

Packets.png


12. Чтобы перевести значения version и master version в понятный для OpenKore десятеричный формат, смотри раздел - перевод чисел в десятеричную систему.


Перевод чисел из 16-ричной системы в 10-тичную

Выдернутые из перехваченных пакетов version и master version записаны сейчас в шестнадцетиричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10). Поэтому их надо перевести из одной системы счисления в другую.

Перевести числа в десятичную систему счисления можно при помощи обычного калькулятора Windows.

1. Откройте калькулятор Windows Start > Accessories > Calculator.

calc.png

2. Откройте меню View и выберите пункт Scientific.

sci.png

3. Выберите шестнадцетиричную систему счисления, щёлкнув по переключателю Hex.

hexa.png

4. Введите в калькулятор полученное ранее шестнадцетиричное значение master_version или version. В данном примере шестнадцетиричное значение master_version равно 10.

type.png

5. Выберите десятичную систему счисления, щёлкнув по переключателю Dec.

dec.png

6. После этого число автоматически переведётся в десятичную систему счисления.

done.png

Следуя приведённой инструкции необходимо перевести в десятичную систему счисления настройки сервера master_version и version.

Прописать настройки сервера в OpenKore

OpenKore читает настройки сервера из файла tables\servers.txt. Если вашего сервера нет в списке, тогда добавьте в этот файл новую запись. Если же ваш сервер уже есть в списке, тогда измените существующую запись. После изменения файла servers.txt следует перезапустить OpenKore.

Правописание

Записи в файле servers.txt имеют следующий формат:

[<server name>]
ip <number/host>
port <number>
version <number>
master_version <number> 
serverType <serverType name>
serverEncoding <enconding>
charBlockSize <number>

#Следующие настройки сервера необязательны
addTableFolders <folder path>
chatLangCode <boolean flag>
gameGuard <flag>
private <boolean flag> 
paddedPackets <boolean flag>
paddedPackets_attackID <packet switches>
paddedPackets_skillUseID <packet switches>
secureLogin <boolean flag>
secureLogin_type <type>
secureLogin_requestCode <hex string>
secureLogin_account <boolean flag>
storageEncryptKey <encrypt key>
recvpackets <file name>
[<server name>]
Имя вашего сервера, должно быть между квадратных скобок [ и ].
ip <number/host>
IP-адрес или DNS-имя логин-сервера.
port <number>
Номер порта логин-сервера.
version <number>
Десятичное число, обозначающее версию сервера.
master_version <number>
Десятичное число, обозначающее мастер-версию сервера.
serverType <serverType name>
Тип сервера, так называемый СерверТип. Для каждого официального сервера есть свой собственный сервер-тип. Для приватных же серверов используются kRO сервертипы, соответсвующие экзешным файлам. Ранее использовались числовые сервертипы, которые на данный момент устарели. Ну, разве что, остался от них serverType 0, на котором основаны сервертипы для официальных серверов. Используйте цифровые сервертипы только в том случае, если вы действительно уверены в такой необходимости, например для старых версий серверов.
Пример kRO-шного сервертипа - RagexeRE_2009_12_15a.
Пример буквенного сервертипа - rRO, это сервертип официального российского сервера.
Список новых сервертипов serverType.
serverEncoding <enconding>
Тип кодировки текста. Кодировка текста не может быть автоматически определена, поэтому её нужно прописывать руками. Вот список возможных кодировок:
Кодировка текста Используется в языках
Western Английский язык, или другой, основанный на латинском алфавите язык. Например немецкий, французский, португальский, а также индонезийский и другие.
Simplified Chinese Упрощённый китайский.
Traditional Chinese Традиционный китайский.
Korean Корейский язык.
Russian Русский язык, или другой, основанный на кириллице.
Japanese Японский язык.
Thai Тайский язык.
charBlockSize <number>
Длина в байтах блока информации о персонаже. Используются числа 106, 108 и 112. Эта настройка сервера прописывается если у чара отображается неправильно имя, джоб и левел во время выбора персонажа в аккаунте.
addTablesFolder <path>
Путь до папки, в которой лежат табличные файлы.
chatLangCode <boolean flag>
Если настройка сервера chatLangCode 1, то из сообщений удаляется код языка.
private <boolean flag>
Пропишите настройку сервера private 1, если OpenKore пытается соединиться с map-сервером по неправильному IP-адресу. Обычно такое случается на пиратских серверах.
recvpackets <file name.txt>
Имя файла с ресивпакетами конкретно для вашего сервера. Если этот параметр не указан, то будет использован файл recvpackets.txt.

Пример

[MushroomRO]
ip 127.0.0.1
port 6900
master_version 16
version 20
serverType 8_4
charBlockSize 108
serverEncoding Western
recvpackets mush-recvpackets.txt