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

Материал из Руководство по OpenKore
Перейти к: навигация, поиск
м
м
Строка 201: Строка 201:
 
* [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]
  
Лучше использовать '''JCV's RO Tools''', так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - '''*OpenKore Packet Length Extractor'''.
+
Лучше использовать '''JCV's RO Tools''', так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - '''OpenKore Packet Length Extractor'''.

Версия 02:56, 1 апреля 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 Program.
Targetyc.png


Откроется новое окно, найдите в нём запущенный клиент 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.
Capiture.png


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.