Подключение бота к серверу: различия между версиями
Darkdeath (обсуждение | вклад) Нет описания правки |
Manticora (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Вместе с OpenKore идёт внушительный список с настройками серверов. Однако некоторых серверов нет в списке и иногда настройки устаревают (например, когда сервер меняет IP-адрес или обновляется до новой версии). Этот гайд научит вас некоторым способам выяснения настроек сервера. Прочитайте внимательно этот гайд полностью! Если вы столкнулись с проблемами, дочитайте сначала гайд до конца, прежде чем задавать вопросы на форуме или в IRC! | |||
Однако прежде чем приступить к чтению гайда, прочитайте список [[unsupported servers|неподдерживаемых серверов]]. Если ваш сервер вообще не поддерживается, то чтение гайда будет пустой тратой времени. | |||
OpenKore нуждается в следующей информации о сервере Ragnarok Online, прежде чем сможет залогиниться: | |||
*Имя сервера. | |||
*Адрес сервера в интернете (IP-адрес или доменное имя) и номер порта. | |||
*Номер '''master version''' сервера. | |||
*Номер '''version''' сервера. | |||
*Кодировка текста. | |||
*СерверТип '''serverType''' сервера. | |||
==Получение информации о сервере== | |||
Есть два способа получить информацию о сервере, с использованием [http://wpepro.net WPE] или [http://www.wireshark.org Wireshark]. Способ с WPE - проще, потому что большинство игроков уже знакомы с WPE, или хотя бы знают, что это такое и как оно работает. Однако некоторые сервера блокируют использование WPE, поэтому лучше использовать Wireshark. | |||
:''' | ===WPE (Winsock Packet Editor)=== | ||
:'''1.''' Скачайте и распакуйте. Скачивать [http://wpepro.net/download.html отсюда]. | |||
::'''<span style="color:red">До начала скачивания, отключите ваш антивирус, так как он может принять WPE за вирус и удалить его. Также следует сказать, что никто не несёт ответственности, если ваш компьютер вдруг поломается.</span>''' | |||
:'''3.''' В окне WPE | ::'''''Примечание:''''' Вам может потребоваться программа для распаковки архива с 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]] | ||
:: | ::Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему. | ||
:::[[File:clickrag.png]] | :::[[File:clickrag.png]] | ||
::'''''Примечание | ::'''''Примечание:''''' Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом. | ||
:'''4.''' | :'''4.''' В окне WPE щёлкните по кнопке '''Play button'''. | ||
::[[File:play.png]] | ::[[File:play.png]] | ||
:'''5.''' | :'''5.''' Перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно. | ||
::'''''Примечание | ::'''''Примечание:''''' Не обязательно вводить правильные логин и пароль. | ||
:'''6.''' | :'''6.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button''' | ||
::[[File:stopjw.png]] | ::[[File:stopjw.png]] | ||
:: | ::Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти '''version''', '''master_version''', '''IP-адрес''' и '''порт''' сервера. | ||
::Пакеты | ::Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''. | ||
:: | ::На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее. | ||
:::[[File:inforb.png]] | :::[[File:inforb.png]] | ||
::''' | ::'''Условные обозначения''': | ||
:#Version | :#Version | ||
:#IP | :#IP | ||
:#Port | :#Port | ||
Строка 56: | Строка 58: | ||
:'''7.''' | :'''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.''' | :'''1.''' Скачайте и установите Wireshark. Скачивать [http://www.wireshark.org/download.html отсюда]. | ||
:'''2.''' | :'''2.''' Запустите клиент Ragnarok Online '''''но не вводите пока логин и пароль!''''' Оставьте сейчас Ragnarok и запустите Wireshark. | ||
:'''3.''' В окне Wireshark | :'''3.''' В окне Wireshark перейдите по меню '''Capture > Options''' или нажмите '''Ctrl + K'''. | ||
::[[File:Capiture.png]] | ::[[File:Capiture.png]] | ||
:'''4.''' В | :'''4.''' В открывшемся окне в выпадающем списке '''Interface:''' выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит '''''unknown'''''. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке. | ||
::[[File:options.png]] | ::[[File:options.png]] | ||
:'''5.''' После настройки | :'''5.''' После настройки всех параметров, щёлкните по кнопке '''Start button''' и перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно. | ||
::'''''Примечание | ::'''''Примечание:''''' Не обязательно вводить правильные логин и пароль. | ||
:'''6.''' После логина | :'''6.''' После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''. | ||
::[[File:stop.png]] | ::[[File:stop.png]] | ||
:'''7.''' В главном окне Wireshark | :'''7.''' В главном окне Wireshark можно увидеть записи о перехваченных TCP-сегментах. Отсейте ненужные, используя в фильтре пакетов введённый вами логин. | ||
:: | ::Введите в поле '''Filter''' одно из двух: | ||
eth contains "xxxxxx" или eth contains xxxxxx | eth contains "xxxxxx" или eth contains xxxxxx | ||
:: | ::Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''. | ||
:::[[File:filter.png]] | :::[[File:filter.png]] | ||
:'''8.''' | :'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера. | ||
::[[File:ip.png]] | ::[[File:ip.png]] | ||
::: | ::: Запишите '''IP-адрес''' и '''порт''' сервера на бумажку, они понадобятся позже. | ||
:'''9.''' | :'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''. | ||
::[[File:tcp.png]] | ::[[File:tcp.png]] | ||
:'''10.''' | :'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''. | ||
::[[File:hex.png]] | ::[[File:hex.png]] | ||
:'''11.''' | :'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку. | ||
::[[File:packets.png]] | ::[[File:packets.png]] | ||
:'''12.''' | :'''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]]. | ||
== | ==Прописать настройки сервера в OpenKore== | ||
OpenKore | OpenKore читает настройки сервера из файла '''tables\servers.txt'''. | ||
Если вашего сервера нет в списке, тогда добавьте в этот файл новую запись. Если же ваш сервер уже есть в списке, тогда измените существующую запись. Записи имеют следующий формат: | |||
[Server's Name] -> | [Server's Name] -> Имя вашего сервера, должно быть между квадратных скобок '[' и ']'. | ||
ip x.x.x.x | ip x.x.x.x -> IP-адрес сервера. | ||
port xxxx | port xxxx -> Порт сервера. | ||
master_version xx -> | master_version xx -> master_version сервера, одно из тех чисел, которое мы переводили | ||
из шестнадцетеричной системы в десятичную. | |||
version xx | version xx -> version сервера, другое число, которое мы переводили из шестнадцетеричной | ||
serverType xxx | системы в десятичную.The one that you converted from hex to decimal. | ||
serverType xxx -> СерверТип, для пиратских обычно 8_2, иногда бывает что-то | |||
charBlockSize xx -> | вроде RagexeRE_2009_12_15a, официальные сервера имеют буквенные | ||
serverEncoding xxxx -> | сервертипы, для руофа, например, это rRO. | ||
private 1 | charBlockSize xx -> По умолчанию 106. Если у чара отображается неправильно имя и профессия, | ||
то следует выяснить и прописать правильное значение. | |||
recvpackets xxxxxx.txt -> | serverEncoding xxxx -> Кодировка текста. | ||
private 1 -> Этот параметр указывается только в том случае, если OpenKore соединяется | |||
с map-сервером, используя неправильный ip-адрес. Обычно такое случается | |||
на пиратских серверах. | |||
recvpackets xxxxxx.txt -> Имя файла с ресивпакетами конкретно для вашего сервера. Если этот параметр | |||
не указан, то будет использован файл recvpackets.txt. | |||
И вот вам один пример: | |||
[MushroomRO] | [MushroomRO] | ||
ip 127.0.0.1 | ip 127.0.0.1 | ||
Строка 141: | Строка 147: | ||
recvpackets mush-recvpackets.txt | recvpackets mush-recvpackets.txt | ||
После изменения файла '''servers.txt''' следует перезапустить OpenKore. | |||
=== | ===Кодировка текста=== | ||
Кодировка текста не может быть автоматически определена, поэтому её нужно прописывать руками. Вот список возможных кодировок: | |||
{| class="wikitable" border="1" cellspacing="0" | {| class="wikitable" border="1" cellspacing="0" | ||
|-style=background-color:#F9F9F9; | |-style=background-color:#F9F9F9; | ||
! | !Кодировка текста | ||
! | !Используется в языках | ||
|- | |- | ||
|align=center|Western | |align=center|Western | ||
| | | Английский язык, или другой, основанный на латинском алфавите язык. Например немецкий, французский, португальский, а также индонезийский и другие. | ||
|- | |- | ||
|align=center|Simplified Chinese | |align=center|Simplified Chinese | ||
| | | Упрощённый китайский. | ||
|- | |- | ||
|align=center|Traditional Chinese | |align=center|Traditional Chinese | ||
| | | Традиционный китайский. | ||
|- | |- | ||
|align=center|Korean | |align=center|Korean | ||
| | | Корейский язык. | ||
|- | |- | ||
|align=center|Russian | |align=center|Russian | ||
| | | Русский язык, или другой, основанный на кириллице. | ||
|- | |- | ||
|align=center|Japanese | |align=center|Japanese | ||
| | | Японский. | ||
|- | |- | ||
|align=center|Thai | |align=center|Thai | ||
| | | Тайский язык. | ||
|} | |} | ||
==Packet Length Extractor== | ==Packet Length Extractor== | ||
Packet Length Extractor | '''Packet Length Extractor''' - это программа, которая достаёт из клиента RO длины используемых им пакетов и сохраняет их в файле '''recvpackets.txt'''. | ||
Если вы испытываете такие проблемы со своим сервером, как: | |||
*Packet Tokenizer: Unknown switch: xxxx | *Packet Tokenizer: Unknown switch: xxxx | ||
* | *Дисконнект после нескольких секунд | ||
* | *OpenKore не видит неписей, игроков и мобов | ||
В этом случае создание своего собственного файла '''recvpackets.txt''' может решить проблему. На самом деле рекомендуется '''''всегда''''' извлекать ресивпакеты для любого сервера, на котором вы бы хотели играть. Этот файл должен находиться в папке '''tables'''. | |||
''''' | '''Примечание:''' У вас могут возникнуть сложности с извлечением ресивпакетов, если клиент был каким-то образом защищён. | ||
=== | ===Зачем нужны ресивпакеты?=== | ||
Данные, которые посылает сервер к OpenKore, являются неразрывным потоком байт. OpenKore должна распознать в этом потоке отдельные сообщения, чтобы потом их как-то обработать. Однако длина одного и того же сообщения меняется от сервера к серверу. Файл '''recvpackets.txt''' содержит информацию о длине каждого сообщения, таким образом OpenKore удаётся правильно разбивать поток байт на отдельные сообщения. | |||
=== | ===Скачать извлекалки ресивпакетов=== | ||
Есть две программы для извлечения ресивпакетов: | |||
*JCV's RO Tools | *JCV's RO Tools | ||
*OpenKore Packet Length Extractor | *OpenKore Packet Length 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 за вирус и удалить его. Также следует сказать, что никто не несёт ответственности, если ваш компьютер вдруг поломается.
- 2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите WPE.
- Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему.
- Примечание: Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом.
- 4. В окне WPE щёлкните по кнопке Play button.
- 5. Перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
- Примечание: Не обязательно вводить правильные логин и пароль.
- 6. Вернитесь в окно WPE и щёлкните по кнопке Stop button
- Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти version, master_version, IP-адрес и порт сервера.
- Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с 64 00.
- На следующем рисунке показан перехваченный пакет, который содержит version и master_version. Выпишите обведённые числа на бумажку, они понадобятся позднее.
- Условные обозначения:
- Version
- IP
- Port
- Master version
- 7. Так как version и master version записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 16), а OpenKore ожидает их увидеть в десятичном формате (основание равно 10), то их надо перевести из одной системы счисления в другую. Используйте вот этот калькулятор. Переведённые в десятичную систему version и master version могут быть использованы в OpenKore. Теперь осталось только прописать настройки сервера в OpenKore.
Wireshark
- 1. Скачайте и установите Wireshark. Скачивать отсюда.
- 2. Запустите клиент Ragnarok Online но не вводите пока логин и пароль! Оставьте сейчас Ragnarok и запустите Wireshark.
- 4. В открывшемся окне в выпадающем списке Interface: выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит unknown. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке.
- 5. После настройки всех параметров, щёлкните по кнопке Start button и перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
- Примечание: Не обязательно вводить правильные логин и пароль.
- 6. После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке Stop button.
- 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 записаны сейчас в шестнадцетеричном формате (основание системы счисления равно 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.