Packet Length Extractor

Материал из RO-fan
Перейти к: навигация, поиск

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

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

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

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


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

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


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

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

  • Packet_Extractor_v3 самая свежая поделка от kLabMouse, который также доступен через SVN. Призван вытаскивать пакеты из самых современных серверов. Не сортирует пакеты, что в принципе рядовому пользователю пофиг.
  • OpenKore Packet Length Extractor v1.1.0. Находит пакеты лучше всех, но работает в основном на старых серверах.
  • JCV's RO Tools v1.0.3 - находит пакеты там где не может справиться первый Extractor, но задваивает некоторые пакеты что не совсем хорошо. Я обычно ручками вычищаю лишние пакеты.

Извлечение ресивпакетов

1. Запустите программу JCV's RO Tools.

2. Щёлкните по кнопке с многоточием ..., которая находится в правом верхнем углу. В открышемся диалоговом окне найдите запускаемый файл от клиента (не спутать с патчером) и выберите его.

button.png

3. В области Extractor Type, выберите вариант Full Disarm - полный разбор.

full.png

4. Щёлкните по кнопке Start и дождитесь окончания извлечения ресивпакетов.

start.png

5. После завершения извлечения информации о ресивпакетах, программа спросит куда сохранить файл с ресивпакетами. Этот файл следует сохранить в папке tables, которая находится в корневой папке OpenKore. Если там уже имеется такой файл - перепишите его поверх старого.

Примечание: Можно дать файлу с ресивпакетами другое имя. Тогда имя этого файла следует прописать в файле servers.txt в настройке сервера recvpackets (смотри гайд - Подключение бота к серверу).

Пакет 016C

Пакет 016C получают персонажи, состоящие в гильдии. Этот пакет не извлекается при помощи утилит для создания ресивпакетов! Следует руками дописать его в файл с ресивпакетами. Обычно длина пакета составляет 43 байта и запись будет выглядеть так:

016C 43

Более подробную информацию смотри в первоисточнике: packet extractor 016C