Packet Length Extractor
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. Находит пакеты лучше всех, но работает в основном на старых серверах.
- Внимание: с 19.01.2012 перестал работать www.megaupload.com, на котором лежал файл.
- JCV's RO Tools v1.0.3 - находит пакеты там где не может справиться первый Extractor, но задваивает некоторые пакеты что не совсем хорошо. Я обычно ручками вычищаю лишние пакеты.
- Внимание: с 19.01.2012 перестал работать www.megaupload.com, на котором лежал файл.
Извлечение ресивпакетов
1. Запустите программу JCV's RO Tools.
2. Щёлкните по кнопке с многоточием ..., которая находится в правом верхнем углу. В открышемся диалоговом окне найдите запускаемый файл от клиента (не спутать с патчером) и выберите его.
3. В области Extractor Type, выберите вариант Full Disarm - полный разбор.
4. Щёлкните по кнопке Start и дождитесь окончания извлечения ресивпакетов.
5. После завершения извлечения информации о ресивпакетах, программа спросит куда сохранить файл с ресивпакетами. Этот файл следует сохранить в папке tables, которая находится в корневой папке OpenKore. Если там уже имеется такой файл - перепишите его поверх старого.
Примечание: Можно дать файлу с ресивпакетами другое имя. Тогда имя этого файла следует прописать в файле servers.txt в настройке сервера recvpackets (смотри гайд - Подключение бота к серверу).
Пакет 016C
Пакет 016C получают персонажи, состоящие в гильдии. Этот пакет не извлекается при помощи утилит для создания ресивпакетов! Следует руками дописать его в файл с ресивпакетами. Обычно длина пакета составляет 43 байта и запись будет выглядеть так:
016C 43
Более подробную информацию смотри в первоисточнике: packet extractor 016C