Подключение бота к серверу: различия между версиями
Manticora (обсуждение | вклад) Нет описания правки |
Manticora (обсуждение | вклад) мНет описания правки |
||
Строка 29: | Строка 29: | ||
::Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему. | ::Откроется новое окно, найдите в нём запущенный клиент Ragnarok Online и дважды щёлкните по нему. | ||
:::[[File: | :::[[File:Clickrag.png]] | ||
::'''''Примечание:''''' Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом. | ::'''''Примечание:''''' Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом. | ||
Строка 35: | Строка 35: | ||
:'''4.''' В окне WPE щёлкните по кнопке '''Play button'''. | :'''4.''' В окне WPE щёлкните по кнопке '''Play button'''. | ||
::[[File: | ::[[File:Play.png]] | ||
Строка 43: | Строка 43: | ||
:'''6.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button''' | :'''6.''' Вернитесь в окно WPE и щёлкните по кнопке '''Stop button''' | ||
::[[File: | ::[[File:Stopjw.png]] | ||
Строка 49: | Строка 49: | ||
::Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''. | ::Пакеты различаются от сервера к серверу, но в большинстве случаев пакеты начинаются с '''64 00'''. | ||
::На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее. | ::На следующем рисунке показан перехваченный пакет, который содержит '''version''' и '''master_version'''. Выпишите обведённые числа на бумажку, они понадобятся позднее. | ||
:::[[File: | :::[[File:Inforb.png]] | ||
::'''Условные обозначения''': | ::'''Условные обозначения''': | ||
Строка 71: | Строка 71: | ||
:'''4.''' В открывшемся окне в выпадающем списке '''Interface:''' выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит '''''unknown'''''. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке. | :'''4.''' В открывшемся окне в выпадающем списке '''Interface:''' выберите сетевой интерфейс, с которого вы хотите перехватывать пакеты. Если вы не уверены, какой сетевой интерфейс использовать, выберите тот, у которого прописан ваш IP-адрес в интернете, или же хотя бы не стоит '''''unknown'''''. Можно также перепробовать их все и выбрать тот, с которого можно перехватить пакеты. Все остальные параметры найстройте так, как показано на рисунке. | ||
::[[File: | ::[[File:Options.png]] | ||
Строка 78: | Строка 78: | ||
:'''6.''' После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''. | :'''6.''' После ввода логина и пароля вернитесь в окно WPE и щёлкните по кнопке '''Stop button'''. | ||
::[[File: | ::[[File:Stop.png]] | ||
Строка 86: | Строка 86: | ||
::Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''. | ::Вместо '''''xxxxxx''''' подставьте логин, который вы использовали при входе в Ragnarok, и нажмите '''Enter'''. В данном пример логин был '''Mushroom'''. | ||
:::[[File: | :::[[File:Filter.png]] | ||
:'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера. | :'''8.''' Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте '''IP-адрес''' и '''порт''' сервера. | ||
::[[File: | ::[[File:Ip.png]] | ||
Строка 97: | Строка 97: | ||
:'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''. | :'''9.''' Щёлкните по этой же записи правой кнопкой мыши, в появившемся меню выберите '''Follow TCP Stream'''. | ||
::[[File: | ::[[File:Tcp.png]] | ||
:'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''. | :'''10.''' Откроется новое окно, внизу слева выберите '''Hex Dump'''. | ||
::[[File: | ::[[File:Hex.png]] | ||
:'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку. | :'''11.''' Теперь у нас есть логин-пакет. Запишите '''version''' и '''master version''' на бумажку. | ||
::[[File: | ::[[File:Packets.png]] | ||
Версия от 00:26, 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.
- Примечание: Некоторые серверы "скрывают" свой настоящий выполняемый файл, переименовывая его (например из xxxRO.exe в binadds.dll), так что не переживайте, если запущенный файл не является .exe-файлом.
- 5. Перейдите назад в окно клиента Ragnarok Online. Залогиньтесь в игру - введите логин и пароль, нажмите Enter. Вам не нужно логиниться на map-сервер, логина на login-сервер будет достаточно.
- Примечание: Не обязательно вводить правильные логин и пароль.
- Откроется новое окно с содержимым перехваченных пакетов. Здесь можно найти 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-сервер будет достаточно.
- Примечание: Не обязательно вводить правильные логин и пароль.
- 7. В главном окне Wireshark можно увидеть записи о перехваченных TCP-сегментах. Отсейте ненужные, используя в фильтре пакетов введённый вами логин.
- Введите в поле Filter одно из двух:
eth contains "xxxxxx" или eth contains xxxxxx
- 8. Теперь останется только одна запись о перехваченном пакете, щёлкните по записи и получите кое-какую информацию о пакете. Здесь вы найдёте IP-адрес и порт сервера.
- Запишите IP-адрес и порт сервера на бумажку, они понадобятся позже.
- 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.