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

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


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


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


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


Есть два способа получить информацию о сервере, с использованием [http://wpepro.net WPE] или [http://www.wireshark.org Wireshark].


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


===WPE (Winsock Packet Editor)===
===WPE (Winsock Packet Editor)===
:'''1.''' Скачайте и распакуйте. Скачивать [http://wpepro.net/index.php?categoryid=4 отсюда].  
'''1.''' [http://wpepro.net/index.php?categoryid=4 Скачайте WPE] и распакуйте.  
::'''<span style="color:red">До начала скачивания, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. Также следует сказать, что никто не несёт ответственности, если ваш компьютер вдруг поломается.</span>'''
:* Перед скачиванием, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. '''Вы скачиваете WPE под свою ответственность''', никто иной не будет виноват, если ваш компьютер сломается.
:* Вам может потребоваться программа для распаковки архива с WPE. Наиболее распространённые ахиваторы [http://www.rarlab.com/ WinRAR] и [http://www.7-zip.org/ 7zip].
 
'''2.''' Запустите клиент Ragnarok Online '''''но не вводите пока логин и пароль!''''' Оставьте сейчас Ragnarok и запустите WPE.
 
'''3.''' В окне WPE щёлкните по кнопке '''Target Program'''.
:[[File:Targetyc.png]]
 


::'''''Примечание:''''' Вам может потребоваться программа для распаковки архива с WPE. Наиболее распространённые ахиваторы [http://www.rarlab.com/ WinRAR] и [http://www.7-zip.org/ 7zip].
'''4.''' Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.
:[[File:Clickrag.png]]
:'''''Примечание:''''' Некоторые серверы скрывают свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в xxxx.dll или xxxxx.bin), так что не переживайте, если запущенный файл не является .exe-файлом.


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


:'''3.''' В окне WPE щёлкните по кнопке '''''Target Program'''''.
'''5.''' В окне WPE щёлкните по кнопке '''Play button'''.
::[[File:Targetyc.png]]
:[[File:Play.png]]




::Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.
'''6.''' Перейдите назад в окно клиента Ragnarok Online и попробуйте залогиниться.
:::[[File:Clickrag.png]]
:'''''Примечание:''''' Не обязательно вводить правильные логин и пароль.


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


'''7.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''.
:[[File:Stopjw.png]]


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


'''8.''' Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти '''version''', '''master_version''', '''IP-адрес''' и '''порт''' сервера.
:Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''.
:На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее.
:[[File:Inforb.png]]
:'''Условные обозначения''':
# - version
# - IP-адрес
# - порт
# - Master version


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


'''9.''' Чтобы перевести значения '''version''' и '''master version''' в понятный для OpenKore десятеричный формат, смотри раздел - [[Подключение бота к серверу#Перевод чисел из 16-ричной системы в 10-тичную|перевод чисел в десятеричную систему]].


:'''6.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''
===Wireshark===
::[[File:Stopjw.png]]
'''1.''' [http://www.wireshark.org/download.html Скачайте] и установите Wireshark.


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


::Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти '''version''', '''master_version''', '''IP-адрес''' и '''порт''' сервера.
'''3.''' В окне Wireshark перейдите по меню '''Capture > Options''' или нажмите '''Ctrl + K'''.
::Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''.
:[[File:Capiture.png]]
::На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее.
:::[[File:Inforb.png]]


::'''Условные обозначения''':
:#Version
:#IP
:#Port
:#Master version


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


:'''7.''' Так как '''version''' и '''master version''' записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте [http://www.statman.info/conversions/hexadecimal.html вот этот калькулятор]. Переведённые в десятичную систему '''version''' и '''master version''' могут быть использованы в OpenKore. Теперь осталось только [[%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%BE%D1%82%D0%B0_%D0%BA_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83#.D0.9F.D1.80.D0.BE.D0.BF.D0.B8.D1.81.D0.B0.D1.82.D1.8C_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_.D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D0.B0_.D0.B2_OpenKore|прописать настройки сервера в OpenKore]].


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


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


:'''2.''' Запустите клиент Ragnarok Online '''''но не вводите пока логин и пароль!''''' Оставьте сейчас Ragnarok и запустите Wireshark.
'''6.''' После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке '''Stop'''.
:[[File:Stop.png]]


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


'''7.''' В главном окне Wireshark можно увидеть записи о перехваченных TCP-сегментах. Отсейте ненужные, используя в фильтре пакетов введённый вами логин.
:Введите в поле '''Filter''' одно из двух:
  eth contains "xxxxxx" или eth contains xxxxxx
:Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''.
:[[File:Filter.png]]


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


'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера.
:[[File:Ip.png]]
: Запишите '''IP-адрес''' и '''порт''' сервера на бумажку, они понадобятся позже.


:'''5.''' После настройки всех параметров, щёлкните по кнопке '''Start button''' и перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
::'''''Примечание:''''' Не обязательно вводить правильные логин и пароль.
'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''.
:[[File:Tcp.png]]


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


'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''.
:[[File:Hex.png]]


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


::Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''.
'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку.
:::[[File:Filter.png]]
:[[File:Packets.png]]




:'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера.
'''12.''' Чтобы перевести значения '''version''' и '''master version''' в понятный для OpenKore десятеричный формат, смотри раздел - [[Подключение бота к серверу#Перевод чисел из 16-ричной системы в 10-тичную|перевод чисел в десятеричную систему]].
::[[File:Ip.png]]




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


Перевести числа в десятичную систему счисления можно при помощи обычного калькулятора Windows.
:'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''.
::[[File:Tcp.png]]


'''1.''' Откройте калькулятор Windows '''Start > Accessories > Calculator'''.
:[[File:calc.png]]


:'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''.
'''2.''' Откройте меню '''View''' и выберите пункт '''Scientific'''.
::[[File:Hex.png]]
:[[File:sci.png]]


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


:'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку.
'''4.''' Введите в калькулятор полученное ранее шестнадцетиричное значение '''master_version''' или '''version'''. В данном примере шестнадцетиричное значение '''master_version''' равно '''10'''.
::[[File:Packets.png]]
:[[File:type.png]]


'''5.''' Выберите десятичную систему счисления, щёлкнув по переключателю '''Dec'''.
:[[File:dec.png]]


:'''12.''' Так как '''version''' и '''master version''' записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте [http://www.statman.info/conversions/hexadecimal.html вот этот калькулятор]. Переведённые в десятичную систему '''version''' и '''master version''' могут быть использованы в OpenKore. В следующем разделе вы узнаете, как прописать настройки сервера в OpenKore.
'''6.''' После этого число автоматически переведётся в десятичную систему счисления.
:[[File:done.png]]


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


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


Если вашего сервера нет в списке, тогда добавьте в этот файл новую запись. Если же ваш сервер уже есть в списке, тогда измените существующую запись. Записи имеют следующий формат:
=== Правописание ===
Записи в файле '''servers.txt''' имеют следующий формат:
<pre>
[<server name>]
ip <number/host>
port <number>
version <number>
master_version <number>
serverType <serverType name>
serverEncoding <enconding>
charBlockSize <number>


[Server's Name] -> Имя вашего сервера, должно быть между квадратных скобок '[' и ']'.
#Следующие настройки сервера необязательны
ip x.x.x.x         -> IP-адрес сервера.
addTableFolders <folder path>
port xxxx         -> Порт сервера.
chatLangCode <boolean flag>
master_version xx      -> master_version сервера, одно из тех чисел, которое мы переводили
gameGuard <flag>
                          из шестнадцетеричной системы в десятичную.
private <boolean flag>
version xx         -> version сервера, другое число, которое мы переводили из шестнадцетеричной
paddedPackets <boolean flag>
                          системы в десятичную.The one that you converted from hex to decimal.
paddedPackets_attackID <packet switches>
serverType xxx     -> СерверТип, для пиратских обычно 8_2, иногда бывает что-то
paddedPackets_skillUseID <packet switches>
                          вроде RagexeRE_2009_12_15a, официальные сервера имеют буквенные
secureLogin <boolean flag>
                          сервертипы, для руофа, например, это rRO.
secureLogin_type <type>
charBlockSize xx -> По умолчанию 106. Если у чара отображается неправильно имя и профессия,
secureLogin_requestCode <hex string>
  то следует выяснить и прописать правильное значение.
secureLogin_account <boolean flag>
serverEncoding xxxx -> Кодировка текста.
storageEncryptKey <encrypt key>
private 1         -> Этот параметр указывается только в том случае, если OpenKore соединяется
recvpackets <file name>
                          с map-сервером, используя неправильный ip-адрес. Обычно такое случается
</pre>
  на пиратских серверах.
recvpackets xxxxxx.txt -> Имя файла с ресивпакетами конкретно для вашего сервера. Если этот параметр
                          не указан, то будет использован файл recvpackets.txt.


; [<server name>]
: Имя вашего сервера, '''должно быть''' между квадратных скобок '''[''' и ''']'''.


И вот вам один пример:
; ip <number/host>
[MushroomRO]
: IP-адрес или DNS-имя логин-сервера.
ip 127.0.0.1
 
port 6900
; port <number>
master_version 16
: Номер порта логин-сервера.
version 20
 
serverType 8_4
; version <number>
charBlockSize 108
: Десятичное число, обозначающее версию сервера.
serverEncoding Western
 
recvpackets mush-recvpackets.txt
; master_version <number>
: Десятичное число, обозначающее мастер-версию сервера.


После изменения файла '''servers.txt''' следует перезапустить OpenKore.
; serverType <serverType name>
: Тип сервера, так называемый СерверТип. Для каждого официального сервера есть свой собственный сервер-тип. Для приватных же серверов используются '''kRO сервертипы''', соответсвующие экзешным файлам. Ранее использовались числовые сервертипы, которые на данный момент устарели. Ну, разве что, остался от них '''serverType 0''', на котором основаны сервертипы для официальных серверов. Используйте цифровые сервертипы только в том случае, если вы действительно уверены в такой необходимости, например для старых версий серверов.
: Пример kRO-шного сервертипа - RagexeRE_2009_12_15a.
: Пример буквенного сервертипа - rRO, это сервертип официального российского сервера.
: Список '''официальных''' серверов:
:{| class="wikitable" border="1" cellspacing="1" cellpadding="2"
!Название сервера
!Значение сервертипа
|- align=center
| Brazil Ragnarok Online Odin
| bRO
|- align=center
| Brazil Ragnarok Online Thor
| bRO_Thor
|- align=center
| Europe Ragnarok Online
| euRO
|- align=center
| France Ragnarok Online
| fRO
|- align=center
| India Ragnarok Online
| inRO
|- align=center
| Indonesia Ragnarok Online
| idRO
|- align=center
| International Ragnarok Online
| iRO
|- align=center
| Korea Ragnarok Online
| kRO_RagexeRE_0
|- align=center
| Malaysia Ragnarok Online
| mRO
|- align=center
| Philippines Ragnarok Online
| pRO
|- align=center
|Russia Ragnarok Online
| rRO
|- align=center
| Taiwan Ragnarok Online
| twRO
|- align=center
| Thailand Ragnarok Online
| tRO
|- align=center
| Vietnam Ragnarok Online
| vRO
|}
<!-- TODO: add all 100 serverTypes, but how? o.O
-- kRO serverTypes require only overview for how to use them. If anybody want the details they're pretty self-documented
:: Other serverTypes:
-->




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


{| class="wikitable" border="1" cellspacing="0"
{| class="wikitable" border="1" cellspacing="0"
Строка 174: Строка 257:
|-
|-
|align=center|Japanese
|align=center|Japanese
|  Японский.
|  Японский язык.
|-
|-
|align=center|Thai  
|align=center|Thai  
Строка 180: Строка 263:
|}
|}


==Packet Length Extractor==
; charBlockSize <number>
'''Packet Length Extractor''' - это программа, которая достаёт из клиента RO длины используемых им пакетов и сохраняет их в файле  '''recvpackets.txt'''.
: Длина в байтах блока информации о персонаже. Используются числа 106, 108 и 112. Эта настройка сервера прописывается если у чара отображается неправильно имя, джоб и левел во время выбора персонажа в аккаунте.
Если вы испытываете такие проблемы со своим сервером, как:
*Packet Tokenizer: Unknown switch: xxxx
*Дисконнект после нескольких секунд
*OpenKore не видит неписей, игроков и мобов


В этом случае создание своего собственного файла '''recvpackets.txt''' может решить проблему. На самом деле рекомендуется '''''всегда''''' извлекать ресивпакеты для любого сервера, на котором вы бы хотели играть. Этот файл должен находиться в папке '''tables'''.
; addTablesFolder <path>
: Путь до папки, в которой лежат табличные файлы.
 
; chatLangCode <boolean flag>
: Если настройка сервера chatLangCode '''1''', то из сообщений удаляется код языка.
 
<!-- ; gameGuard <value>
: ??
-->
; private <boolean flag>
: Пропишите настройку сервера private '''1''', если OpenKore пытается соединиться с map-сервером по неправильному IP-адресу. Обычно такое случается на пиратских серверах.
<!-- ; paddedPackets <boolean flag>
: ??
 
; paddedPackets_attackID <packet switches>
: ??
; paddedPackets_skillUseID <packet switches>
: ??


'''Примечание:''' У вас могут возникнуть сложности с извлечением ресивпакетов, если клиент был каким-то образом защищён.
; secureLogin <boolean flag>
: ??


; secureLogin_type <type>
: ??


===Зачем нужны ресивпакеты?===
; secureLogin_code <hex string>
Данные, которые посылает сервер к OpenKore, являются неразрывным потоком байт. OpenKore должна распознать в этом потоке отдельные сообщения, чтобы потом их как-то обработать. Однако длина одного и того же сообщения меняется от сервера к серверу. Файл '''recvpackets.txt''' содержит информацию о длине каждого сообщения, таким образом OpenKore удаётся правильно разбивать поток байт на отдельные сообщения.
: ??


; secureLogin_account <boolean flag>
: ??
-->


===Скачать извлекалки ресивпакетов===
; recvpackets <file name.txt>
Есть две программы для извлечения ресивпакетов:
: Имя файла с ресивпакетами конкретно для вашего сервера. Если этот параметр не указан, то будет использован файл recvpackets.txt.
* [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]


Лучше использовать '''JCV's RO Tools''', так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - '''OpenKore Packet Length Extractor'''.
=== Пример ===
[MushroomRO]
ip 127.0.0.1
port 6900
master_version 16
version 20
serverType 8_4
charBlockSize 108
serverEncoding Western
recvpackets mush-recvpackets.txt

Версия от 00:04, 7 апреля 2010

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

Вместе с 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.


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

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


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


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

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


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


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

Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с 64 00.
На следующем рисунке показан перехваченный пакет, который содержит version и master_version. Выпишите обведённые числа на бумажку, они понадобятся позднее.
Условные обозначения:
  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.


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


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


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


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

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


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

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


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


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


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


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


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

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

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

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

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

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

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

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

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

Следуя приведённой инструкции необходимо перевести в десятичную систему счисления настройки сервера 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, это сервертип официального российского сервера.
Список официальных серверов:
Название сервера Значение сервертипа
Brazil Ragnarok Online Odin bRO
Brazil Ragnarok Online Thor bRO_Thor
Europe Ragnarok Online euRO
France Ragnarok Online fRO
India Ragnarok Online inRO
Indonesia Ragnarok Online idRO
International Ragnarok Online iRO
Korea Ragnarok Online kRO_RagexeRE_0
Malaysia Ragnarok Online mRO
Philippines Ragnarok Online pRO
Russia Ragnarok Online rRO
Taiwan Ragnarok Online twRO
Thailand Ragnarok Online tRO
Vietnam Ragnarok Online vRO


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