Подключение бота к серверу: различия между версиями

Материал из Руководство по OpenKore
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
В списках опенкоры имеется много информации о серверах. Но некоторых серверов в этих списках нет, и иногда информация меняется (например меняется IP сервера или обновляется софт). Этот гайд вам поможет определить нужную информацию для подключения к серверу. Прочтите данный гайд полностью и внимательно! Если вы сталкнулись с проблемами, дочитайте этот гайд до конца, прежде чем задавать вопросы на форуме или IRC!
Вместе с OpenKore идёт внушительный список с настройками серверов. Однако некоторых серверов нет в списке и иногда настройки устаревают (например, когда сервер меняет IP-адрес или обновляется до новой версии). Этот гайд научит вас некоторым способам выяснения настроек сервера. Прочитайте внимательно этот гайд полностью! Если вы столкнулись с проблемами, дочитайте сначала гайд до конца, прежде чем задавать вопросы на форуме или в IRC!
Прежде чем пытаться подключится к серверу, проверьте не находится ли данный сервер в списке "неподдерживаемых", чтобы все ваши усилия не стали напрасными.
Для того чтобы OpenKore смогла подключится к серверу ей потребуется следующая информация:


*Название сервера.
Однако прежде чем приступить к чтению гайда, прочитайте список [[unsupported servers|неподдерживаемых серверов]]. Если ваш сервер вообще не поддерживается, то чтение гайда будет пустой тратой времени.  
*Ip и порт сервера.
*Master Version сервера.
*Version сервера. (не путайте с master version)
*Кодировка сервера(на русских серверах везде стоит ставить ServerEncoding Russian).
*Тип сервера (serverType).  


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


==Получение информации сервера==
*Имя сервера.
Есть 2 способа получения данных, с помощью [http://wpepro.net WPE] или [http://www.wireshark.org Wireshark]. Самый легкий это способ через WPE, потому что многие игроки знают, что это такое и с чем его едят. Но некоторые сервера блокирует WPE, но не будем отчаиватся ведь нам может помочь Wireshark.
*Адрес сервера в интернете (IP-адрес или доменное имя) и номер порта.
*Номер '''master version''' сервера.
*Номер '''version''' сервера.
*Кодировка текста.
*СерверТип '''serverType''' сервера.  


===WPE (Сниффер пакетов)===
:'''1.''' Скачайте и распакуйте WPE. Скачать его можно тут [http://wpepro.net/download.html].
::'''<span style="color:red">Перед закачкой, удостоверьтесь что антивирусы выключены, т.к антивирусы определяют WPE как вирус, но на самом деле это очень полезный сниффер, после установки добавте его в исключения, чтобы антивирус нам не надоедал.</span>'''


::'''''Примечание.''''': Для распаковки нам понадобятся программы, одну из них можно скачать тут [http://www.rarlab.com/ WinRAR], а другую тут [http://www.7-zip.org/ 7zip].
==Получение информации о сервере==
Есть два способа получить информацию о сервере, с использованием [http://wpepro.net WPE] или [http://www.wireshark.org Wireshark]. Способ с WPE - проще, потому что большинство игроков уже знакомы с WPE, или хотя бы знают, что это такое и как оно работает. Однако некоторые сервера блокируют использование WPE, поэтому лучше использовать Wireshark.


:'''2.''' Запустите клиент '''''но не логинтесь!''''' Перед вами окошко с логином и вводом пароля, запускаем WPE.
===WPE (Winsock Packet Editor)===
:'''1.''' Скачайте и распакуйте. Скачивать [http://wpepro.net/download.html отсюда].
::'''<span style="color:red">До начала скачивания, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. Также следует сказать, что никто не несёт ответственности, если ваш компьютер вдруг поломается.</span>'''


:'''3.''' В окне WPE кликаем на кнопочку '''''Target Programs'''''.
::'''''Примечание:''''' Вам может потребоваться программа для распаковки архива с WPE. Наиболее распространённые ахиваторы [http://www.rarlab.com/ WinRAR] и [http://www.7-zip.org/ 7zip].
 
:'''2.''' Запустите клиент Ragnarok Online '''''но не вводите пока логин и пароль!''''' Оставьте сейчас Ragnarok и запустите WPE.
 
:'''3.''' В окне WPE щёлкните по кнопке '''''Target Programs'''''.
::[[File:Targetyc.png]]
::[[File:Targetyc.png]]




::В появившемся окошке находим экзешник с вашим клиентом и нажимаем OPEN.
::Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.
:::[[File:clickrag.png]]
:::[[File:clickrag.png]]


::'''''Примечание.''''' Некоторые .exe файлы сныканы, т.е переименованы (например xxxRO.exe имеет название binadds.dll), так что особо не парьтесь.
::'''''Примечание:''''' Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом.




:'''4.''' Далее жмем '''Play button'''.
:'''4.''' В окне WPE щёлкните по кнопке '''Play button'''.
::[[File:play.png]]
::[[File:play.png]]




:'''5.''' Логинемся. Вам не нужно подключатся к мап-серверу, только логинимся т.е вводим логин пароль и ОК.
:'''5.''' Перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
::'''''Примечание.''''' Чтобы не увели аккаунт не выкладывайте полную информацию о своем логине.
::'''''Примечание:''''' Не обязательно вводить правильные логин и пароль.




:'''6.''' Возвращаемся к WPE и жмем '''Stop button'''
:'''6.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''
::[[File:stopjw.png]]
::[[File:stopjw.png]]




::В появшемся окне мы видим различные пакеты. Здесь мы можем найти '''version and master_version, IP and port''' сервера.
::Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти '''version''', '''master_version''', '''IP-адрес''' и '''порт''' сервера.
::Пакеты могут отличатся в зависимости от сервера, но многие из них начинаются вот с таких вот циферок '''64 00'''.
::Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''.
::Это пакеты версии сервера и мастер версии.
::На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее.
:::[[File:inforb.png]]
:::[[File:inforb.png]]


::'''Обведеное красным это''':
::'''Условные обозначения''':
:#Version.
:#Version
:#IP
:#IP
:#Port
:#Port
Строка 56: Строка 58:




:'''7.''' Теперь эти циферки '''версии и мастер версии''' нужно перевести, т.к они находятся в 16ой системе, а кора у нас читает 10ю . Используем [http://www.statman.info/conversions/hexadecimal.html кулькулятор]. Теперь с преобразованными числами нами всеми любимая кора может работать. Смотрим тут [[Connectivity Guide#Passing server information to OpenKore|Passing server information to OpenKore]].
:'''7.''' Так как '''version''' и '''master version''' записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте [http://www.statman.info/conversions/hexadecimal.html вот этот калькулятор]. Переведённые в десятичную систему '''version''' и '''master version''' могут быть использованы в OpenKore. Теперь осталось только [[Connectivity Guide#Passing server information to OpenKore|прописать настройки сервера в OpenKore]].




===Wireshark===
===Wireshark===
:'''1.''' Качаем и устанавливаем Wireshark. (Жмакаем тут [http://www.wireshark.org/download.html]).
:'''1.''' Скачайте и установите Wireshark. Скачивать [http://www.wireshark.org/download.html отсюда].


:'''2.''' Открываем клиент '''''не логинемся!''''' Перед вами окошко с логином и вводом пароля, запускаем Wireshark.
:'''2.''' Запустите клиент Ragnarok Online '''''но не вводите пока логин и пароль!''''' Оставьте сейчас Ragnarok и запустите Wireshark.


:'''3.''' В окне Wireshark, жмем '''Capture > Options''' в верхнем меню давим '''Ctrl + K'''.
:'''3.''' В окне Wireshark перейдите по меню '''Capture > Options''' или нажмите '''Ctrl + K'''.
::[[File:Capiture.png]]
::[[File:Capiture.png]]




:'''4.''' В "Interface" всплывающем меню, выбирают ту строку, которая представляет ваше интернет-соединение. Если вы не уверены какая из них представляет ваше интернет-соединение: выберите ту, чей адрес IP не начинается с 192.168. Остальные настройки оставте без изменений, которые указаны ниже на картинке:
:'''4.''' В открывшемся окне в выпадающем списке '''Interface:''' выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит '''''unknown'''''. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке.
::[[File:options.png]]
::[[File:options.png]]




:'''5.''' После настройки жмем '''Start button''' и открываем клиент с окном ввода пароля. Логинится на мап-сервер не нужно..
:'''5.''' После настройки всех параметров, щёлкните по кнопке '''Start button''' и перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
::'''''Примечание.''''' Чтобы не увели аккаунт не выкладывайте полную информацию о своем логине.
::'''''Примечание:''''' Не обязательно вводить правильные логин и пароль.


:'''6.''' После логина, вновь окрываем Wireshark и жмем '''Stop button'''.
:'''6.''' После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''.
::[[File:stop.png]]
::[[File:stop.png]]




:'''7.''' В главном окне Wireshark вы увидите сегменты TCP, которые вы поймали. Заполните packet filter, при заполнение фильтра вы должны использовать имя которое вводили при логине.
:'''7.''' В главном окне Wireshark можно увидеть записи о перехваченных TCP-сегментах. Отсейте ненужные, используя в фильтре пакетов введённый вами логин.
::Введитe в "Filter":  
::Введите в поле '''Filter''' одно из двух:
   eth contains "xxxxxx" или eth contains xxxxxx
   eth contains "xxxxxx" или eth contains xxxxxx


::Замените '''''xxxxxx''''' на ваше имя использованное при логине и нажмите enter. В моем примере, имя было Mushroom.
::Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''.
:::[[File:filter.png]]
:::[[File:filter.png]]




:'''8.''' You will now have only one entry, click on it and you will have some information about it. This is where you are going to get the server's IP and port.  
:'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера.
::[[File:ip.png]]
::[[File:ip.png]]




::: Write down your ip and port because you are going to need them later.
::: Запишите '''IP-адрес''' и '''порт''' сервера на бумажку, они понадобятся позже.


   
   
:'''9.''' On the entry again, right-click on it and go to '''Follow TCP Stream'''.
:'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''.
::[[File:tcp.png]]
::[[File:tcp.png]]




:'''10.''' A new window will open, in the bottom left, select '''Hex Dump'''.
:'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''.
::[[File:hex.png]]
::[[File:hex.png]]




:'''11.''' Now we got the login packets. Take a look at it and write down the packets that contains the '''version and master version''' numbers. They are marked on the image bellow.
:'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку.
::[[File:packets.png]]
::[[File:packets.png]]




:'''12.''' With the informations above, you have to convert them, because they're a hexadecimal number (base-16) and Kore expects a decimal number (base-10). You can use [http://www.statman.info/conversions/hexadecimal.html this calculator]. With the numbers converted, you can now make openkore use it. See the section bellow for how to use it.
:'''12.''' Так как '''version''' и '''master version''' записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте [http://www.statman.info/conversions/hexadecimal.html вот этот калькулятор]. Переведённые в десятичную систему '''version''' и '''master version''' могут быть использованы в OpenKore. В следующем разделе вы узнаете, как [[Connectivity Guide#Passing server information to OpenKore|прописать настройки сервера в OpenKore]].




==Passing server information to OpenKore==
==Прописать настройки сервера в OpenKore==
OpenKore reads server information from a file named servers.txt. The file is on ''tables'' folder.
OpenKore читает настройки сервера из файла '''tables\servers.txt'''.


If your server is not listed in the file, then add a new entry. If your server is already listed, then modify the existing entry. Here is the format:
Если вашего сервера нет в списке, тогда добавьте в этот файл новую запись. Если же ваш сервер уже есть в списке, тогда измените существующую запись. Записи имеют следующий формат:


  [Server's Name] -> Your server's name. Must be between '[' and ']'
  [Server's Name] -> Имя вашего сервера, должно быть между квадратных скобок '[' и ']'.
  ip x.x.x.x -> Your server's IP.
  ip x.x.x.x         -> IP-адрес сервера.
  port xxxx -> Your server's port number.
  port xxxx         -> Порт сервера.
  master_version xx -> Your server's master_version. The one that you converted from hex to
  master_version xx     -> master_version сервера, одно из тех чисел, которое мы переводили
  decimal.
                          из шестнадцетеричной системы в десятичную.
  version xx -> The server's version. The one that you converted from hex to decimal.
  version xx         -> version сервера, другое число, которое мы переводили из шестнадцетеричной
  serverType xxx -> Your serverType. For privates default one is 8_4. Officials one have
                          системы в десятичную.The one that you converted from hex to decimal.
  their own.
  serverType xxx     -> СерверТип, для пиратских обычно 8_2, иногда бывает что-то
  charBlockSize xx -> Set this if you are getting wrong char name and job name. Default is 106.
                          вроде RagexeRE_2009_12_15a, официальные сервера имеют буквенные
  serverEncoding xxxx -> Character encoding. More information read bellow.
                          сервертипы, для руофа, например, это rRO.
  private 1 -> Only set this if the bot connects to the wrong map server IP.
  charBlockSize xx -> По умолчанию 106. Если у чара отображается неправильно имя и профессия,
  Used by private servers.
  то следует выяснить и прописать правильное значение.
  recvpackets xxxxxx.txt -> Your recvpackets' name file. It this option is not set, it will use
  serverEncoding xxxx -> Кодировка текста.
  the default one (recvpackets.txt). More informations read bellow.
  private 1         -> Этот параметр указывается только в том случае, если OpenKore соединяется
                          с map-сервером, используя неправильный ip-адрес. Обычно такое случается
  на пиратских серверах.
  recvpackets xxxxxx.txt -> Имя файла с ресивпакетами конкретно для вашего сервера. Если этот параметр
                          не указан, то будет использован файл recvpackets.txt.




And here is an example:
И вот вам один пример:
  [MushroomRO]
  [MushroomRO]
  ip 127.0.0.1
  ip 127.0.0.1
Строка 141: Строка 147:
  recvpackets mush-recvpackets.txt
  recvpackets mush-recvpackets.txt


After having modified servers.txt, restart OpenKore.
После изменения файла '''servers.txt''' следует перезапустить OpenKore.




===Character encoding===
===Кодировка текста===
The character encoding cannot be automatically detected, but here's a list of possible character encodings that you can use:  
Кодировка текста не может быть автоматически определена, поэтому её нужно прописывать руками. Вот список возможных кодировок:


{| class="wikitable" border="1" cellspacing="0"
{| class="wikitable" border="1" cellspacing="0"
|-style=background-color:#F9F9F9;
|-style=background-color:#F9F9F9;
!Encoding
!Кодировка текста
!Language used
!Используется в языках
|-
|-
|align=center|Western  
|align=center|Western  
English, or a language which uses a Roman-based alphabet. For example, German, French, Portuguese, etc., but also Indonesian.  
Английский язык, или другой, основанный на латинском алфавите язык. Например немецкий, французский, португальский, а также индонезийский и другие.
|-
|-
|align=center|Simplified Chinese  
|align=center|Simplified Chinese  
Simplified Chinese.  
Упрощённый китайский.  
|-
|-
|align=center|Traditional Chinese
|align=center|Traditional Chinese
Traditional Chinese.  
Традиционный китайский.  
|-
|-
|align=center|Korean
|align=center|Korean
Korean
Корейский язык.
|-
|-
|align=center|Russian
|align=center|Russian
Russian, or a Cyrillic-based language.  
Русский язык, или другой, основанный на кириллице.
|-
|-
|align=center|Japanese
|align=center|Japanese
Japanese
Японский.
|-
|-
|align=center|Thai  
|align=center|Thai  
Thai
Тайский язык.
|}
|}


==Packet Length Extractor==
==Packet Length Extractor==
Packet Length Extractor is a program which retreives the packet lengths from the RO client and stores them in recvpackets.txt.  
'''Packet Length Extractor''' - это программа, которая достаёт из клиента RO длины используемых им пакетов и сохраняет их в файле  '''recvpackets.txt'''.
If you're having server problems, such as:
Если вы испытываете такие проблемы со своим сервером, как:
*Packet Tokenizer: Unknown switch: xxxx
*Packet Tokenizer: Unknown switch: xxxx
*Getting disconnected after a few seconds
*Дисконнект после нескольких секунд
*NPCs, players and monsters are not recognized by Kore
*OpenKore не видит неписей, игроков и мобов


Then generating a new recvpackets.txt might solve the problem. It's advisable to '''''always''''' extract the recvpackets for any server that you will play. The file must be on tables folder.
В этом случае создание своего собственного файла '''recvpackets.txt''' может решить проблему. На самом деле рекомендуется '''''всегда''''' извлекать ресивпакеты для любого сервера, на котором вы бы хотели играть. Этот файл должен находиться в папке '''tables'''.


'''''Note.''''' You may have problems extracting the recvpackets if your server's client has some kind of protection.
'''Примечание:''' У вас могут возникнуть сложности с извлечением ресивпакетов, если клиент был каким-то образом защищён.




===About Recvpackets===
===Зачем нужны ресивпакеты?===
The network data that the server sends to Kore, is a byte stream. Kore must be able to recognize messages inside that byte stream to be able to do something with it. But the size of the messages can vary from to server to server. Recvpackets.txt contains information about the size of each message, so Kore can correctly split the byte stream into messages.
Данные, которые посылает сервер к OpenKore, являются неразрывным потоком байт. OpenKore должна распознать в этом потоке отдельные сообщения, чтобы потом их как-то обработать. Однако длина одного и того же сообщения меняется от сервера к серверу. Файл '''recvpackets.txt''' содержит информацию о длине каждого сообщения, таким образом OpenKore удаётся правильно разбивать поток байт на отдельные сообщения.




===Download===
===Скачать извлекалки ресивпакетов===
There are two programs you can use to extract the recvpackets:
Есть две программы для извлечения ресивпакетов:
*JCV's RO Tools
*JCV's RO Tools
*OpenKore Packet Length Extractor
*OpenKore Packet Length Extractor


It's better to use JCV's RO Tools as it is more up to date and have some fixes for newer clients. Also it's much easier to maintain, but it has undesirable and outdated options in addition to the packet extractor.
Лучше использовать '''JCV's RO Tools''', так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - '''*OpenKore Packet Length Extractor'''.
*[http://www.megaupload.com/?d=7PXQ9J1N JCV's RO Tools v1.0.3]
*[http://www.megaupload.com/?d=7PXQ9J1N JCV's RO Tools v1.0.3]
*[http://www.megaupload.com/?d=MLUVJLSL OpenKore Packet Length Extractor v1.1.0]
*[http://www.megaupload.com/?d=MLUVJLSL OpenKore Packet Length Extractor v1.1.0]

Версия от 00:21, 21 марта 2010

Вместе с OpenKore идёт внушительный список с настройками серверов. Однако некоторых серверов нет в списке и иногда настройки устаревают (например, когда сервер меняет IP-адрес или обновляется до новой версии). Этот гайд научит вас некоторым способам выяснения настроек сервера. Прочитайте внимательно этот гайд полностью! Если вы столкнулись с проблемами, дочитайте сначала гайд до конца, прежде чем задавать вопросы на форуме или в IRC!

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

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

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


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

Есть два способа получить информацию о сервере, с использованием WPE или Wireshark. Способ с WPE - проще, потому что большинство игроков уже знакомы с WPE, или хотя бы знают, что это такое и как оно работает. Однако некоторые сервера блокируют использование WPE, поэтому лучше использовать Wireshark.

WPE (Winsock Packet Editor)

1. Скачайте и распакуйте. Скачивать отсюда.
До начала скачивания, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. Также следует сказать, что никто не несёт ответственности, если ваш компьютер вдруг поломается.
Примечание: Вам может потребоваться программа для распаковки архива с WPE. Наиболее распространённые ахиваторы WinRAR и 7zip.
2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите WPE.
3. В окне WPE щёлкните по кнопке Target Programs.


Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.
Файл:clickrag.png
Примечание: Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом.


4. В окне WPE щёлкните по кнопке Play button.
Файл:play.png


5. Перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
Примечание: Не обязательно вводить правильные логин и пароль.


6. Вернитесь в окно WPE и щёлкните по кнопке Stop button
Файл:stopjw.png


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


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


Wireshark

1. Скачайте и установите Wireshark. Скачивать отсюда.
2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите Wireshark.
3. В окне Wireshark перейдите по меню Capture > Options или нажмите Ctrl + K.


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


5. После настройки всех параметров, щёлкните по кнопке Start button и перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
Примечание: Не обязательно вводить правильные логин и пароль.
6. После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке Stop button.
Файл: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 записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте вот этот калькулятор. Переведённые в десятичную систему version и master version могут быть использованы в OpenKore. В следующем разделе вы узнаете, как прописать настройки сервера в OpenKore.


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

OpenKore читает настройки сервера из файла tables\servers.txt.

Если вашего сервера нет в списке, тогда добавьте в этот файл новую запись. Если же ваш сервер уже есть в списке, тогда измените существующую запись. Записи имеют следующий формат:

[Server's Name]		-> Имя вашего сервера, должно быть между квадратных скобок '[' и ']'.
ip x.x.x.x		        -> IP-адрес сервера.
port xxxx		        -> Порт сервера.
master_version xx      -> master_version сервера, одно из тех чисел, которое мы переводили
                          из шестнадцетеричной системы в десятичную.
version xx		        -> version сервера, другое число, которое мы переводили из шестнадцетеричной
                          системы в десятичную.The one that you converted from hex to decimal.
serverType xxx		    -> СерверТип, для пиратских обычно 8_2, иногда бывает что-то 
                          вроде RagexeRE_2009_12_15a, официальные сервера имеют буквенные
                          сервертипы, для руофа, например, это rRO.
charBlockSize xx		-> По умолчанию 106. Если у чара отображается неправильно имя и профессия,

то следует выяснить и прописать правильное значение.

serverEncoding xxxx	-> Кодировка текста.
private 1		        -> Этот параметр указывается только в том случае, если OpenKore соединяется
                          с map-сервером, используя неправильный ip-адрес. Обычно такое случается 

на пиратских серверах.

recvpackets xxxxxx.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

После изменения файла servers.txt следует перезапустить OpenKore.


Кодировка текста

Кодировка текста не может быть автоматически определена, поэтому её нужно прописывать руками. Вот список возможных кодировок:

Кодировка текста Используется в языках
Western Английский язык, или другой, основанный на латинском алфавите язык. Например немецкий, французский, португальский, а также индонезийский и другие.
Simplified Chinese Упрощённый китайский.
Traditional Chinese Традиционный китайский.
Korean Корейский язык.
Russian Русский язык, или другой, основанный на кириллице.
Japanese Японский.
Thai Тайский язык.

Packet Length Extractor

Packet Length Extractor - это программа, которая достаёт из клиента RO длины используемых им пакетов и сохраняет их в файле recvpackets.txt. Если вы испытываете такие проблемы со своим сервером, как:

  • Packet Tokenizer: Unknown switch: xxxx
  • Дисконнект после нескольких секунд
  • OpenKore не видит неписей, игроков и мобов

В этом случае создание своего собственного файла recvpackets.txt может решить проблему. На самом деле рекомендуется всегда извлекать ресивпакеты для любого сервера, на котором вы бы хотели играть. Этот файл должен находиться в папке tables.

Примечание: У вас могут возникнуть сложности с извлечением ресивпакетов, если клиент был каким-то образом защищён.


Зачем нужны ресивпакеты?

Данные, которые посылает сервер к OpenKore, являются неразрывным потоком байт. OpenKore должна распознать в этом потоке отдельные сообщения, чтобы потом их как-то обработать. Однако длина одного и того же сообщения меняется от сервера к серверу. Файл recvpackets.txt содержит информацию о длине каждого сообщения, таким образом OpenKore удаётся правильно разбивать поток байт на отдельные сообщения.


Скачать извлекалки ресивпакетов

Есть две программы для извлечения ресивпакетов:

  • JCV's RO Tools
  • OpenKore Packet Length Extractor

Лучше использовать JCV's RO Tools, так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - *OpenKore Packet Length Extractor.