Packet Length Extractor — различия между версиями

Материал из Руководство по OpenKore
Перейти к: навигация, поиск
(Извлечение ресивпакетов выделено в отдельную статью. Добавлен раздел "извлечение ресивпакетов" с картинками.)
 
Строка 36: Строка 36:
  
 
'''Примечание:''' Можно дать файлу с ресивпакетами другое имя. Тогда имя этого файла следует прописать в файле '''servers.txt''' в настройке сервера  '''recvpackets''' (смотри гайд - [[Подключение бота к серверу]]).
 
'''Примечание:''' Можно дать файлу с ресивпакетами другое имя. Тогда имя этого файла следует прописать в файле '''servers.txt''' в настройке сервера  '''recvpackets''' (смотри гайд - [[Подключение бота к серверу]]).
 +
 +
== Пакет 016C ==
 +
Пакет '''016C''' получают персонажи, состоящие в гильдии. '''Этот пакет не извлекается''' при помощи утилит для создания ресивпакетов! Следует руками дописать его в файл с ресивпакетами. Обычно длина пакета составляет 43 байта и запись будет выглядеть так:
 +
016C 43
 +
Более подробную информацию смотри в первоисточнике: [http://forums.openkore.com/viewtopic.php?f=56&t=8484 [packet extractor] 016C]

Версия 21:11, 26 февраля 2011

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

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

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

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


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

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


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

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

Лучше использовать JCV's RO Tools, так как она более свежая и заточена под новые клиенты. Но в некоторых случаях помогает другая программа - OpenKore Packet Length 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]