Показать сообщение отдельно
Старый 26.06.2011, 17:36   #29
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Deffol, ну для начала нужно понять структуру пакета, который отвечает за то что тебе нужно. Т.е. разобрать в каком месте пакета можно найти допустим ник или лвл... Если l2phx уже показывает тебе структуру, тогда пришли ее сюда. Но, ты вроде говорил что там все плохо и структуру пакетов ты не видишь. Тогда разбирай пакет самостоятельно и пытайся выделить все части. А потом когда его разберешь, тебе нужно по количеству байт читать с пакета. Да, нужно разные переменные для себя выделять, типа ника, лвла и т.д. В общем, те, которые тебе нужно. А потом читаешь с помощью Read эти переменные. Допустим, есть у тебя пакет с такой структурой:
Name(S)ObjectID(D)Race(C)Lvl(C)x(d)y(d)z(d)

и тебе нужно из этого только имя, ObjectID и координаты. Тогда ты делаешь так:
Объявляешь нужные переменные:
var Name : string;
ObjectID : integer;
x, y, z : integer;

и потом уже где нужно ловишь пакет и считываешь через Read'ы:
pos := 2; //пропускаешь тип пакета (я только не знаю как в аионе, в ла2 это 1 байт обычно)
Name := ReadS(pos);
ObjectID := ReadD(pos);
pos := pos + 2;// пропускаем 2 байта Race(C)Lvl(C)
x := ReadD(pos);
y := ReadD(pos);
z := ReadD(pos);

Для справки:
C - 1 байт
D - 4 байта
S - строка (не фиксированное кол-во байт)

Надеюсь ты уловил мою мысль =)

P.S. Когда будешь получать структуру пакета, можешь даже не полностью ее получать, а выделить только то, что тебе нужно, главное что бы это нужное всегда было на том месте, с которого ты можешь определить программно. Допустим в моем примере ты мог получить структуру:
Name(S)ObjectID(D)??(2 байта)x(d)y(d)z(d)

И в этом случае мой пример все равно работает, потому что на эти неизвестные 2 байта я смещаюсь и это количество никогда не измениться.

Последний раз редактировалось Kilatif, 26.06.2011 в 17:40.
Kilatif вне форума   Ответить с цитированием
За это сообщение Kilatif нажился спасибкой от: