Показать сообщение отдельно
Старый 13.04.2011, 21:08   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Делаем packetsAion.ini

Вот, что уже имеем в pakets.ini.

Код:
Для L2PacketHack3.5.167+
From AION X Engine 2.1

Типы данных, используемые в пакетах:
c: Byte (1 байт)
h: Word (2 байта)
d: DWord (4 байта)
i: integer (4 байта)
f: Real/Double (8 байт) используется в Lineage II
n: Real/Double (4 байт) используется в Aion
q: Int64 (8 байт целое)
s: String
Во многих пакетах, очень часто встречаются циклические списки, пример:
Код:
18=StatusUpdate:o(ObjectID)d(ListSize:Loop.0002.0002)d(unk)d(ID)d(Value)

здесь в куске d(ListSize:Loop.0002.0002)
ListSize - количество повторов цикла
Loop - означает что будет цикл
0002 - элемент пакета с которого начинать цикл
0002 - сколько элементов циклить
т.е. элементы d(ID) и d(Value) будут повторятся ListSize количество раз, d(unk) просто выводится и в цикле не участвует.
или
Код:
18=StatusUpdate:o(ObjectID)d(ListSize:For.0002)d(ID)d(Value)

здесь в куске d(ListSize:For.0002)
ListSize - количество повторов цикла
For - означает что будет цикл
0002 - сколько элементов циклить
т.е. элементы d(ID) и d(Value) будут повторятся ListSize количество раз.
Оператор выбора switch в java имеет следующий вид:
Код:
switch (выражение) { case
значение1:
// последовательность операторов
break;
case значение2:
// последовательность операторов 
break;
... 
case значениеN:
// последовательность операторов 
break;
default: 
// последовательность операторов, выполняемая по умолчанию
У нас оператор выбора выглядит так, пример:
Код:
17=SM_MESSAGE:h(id2)c(chatType:switch.0002.0003)c(RaceId)d(ObjectId)_(id:case.0.2)h(unk)s(message)_(id:case.1.3)h(unk)d(unk)s(message)_(id:case.2.4)h(unk) d(unk)d(unk)s(message) s(Name)s(message)
Код:
здесь в куске c(chatType:switch.0002.0003)
chatType  - выражение, тип чата (1 байт)
 switch  - ключевое слово оператора выбора
0002 - сколько элементов после switch пропускать, т.е. элементы c(RaceId)d(ObjectId) просто выводятся в расшифровке на экран
0003 - сколько элементов _(id:case присутствует в switch

в куске _(id:case.0000.0002)h(unk)s(message)
_ - пропускается
id - пропускается, сюда можно вписать имя идентификатора
case - ключевое слово для элемента выбора со значением 0000
0002 – количество элементов в блоке case, т.е. элементы h(unk)s(message)
Последние элементы s(Name)s(message) попадают под выбор default, т.е. если chatType не соответствует ни одному case, то в расшифровку попадают элементы s(Name)s(message).
Не значащие нули везде можно опускать, т.е. вместо 0001 пишем 1.

to be continued ...
Вложения
Тип файла: rar packetsAion.rar (6.8 Кб, 139 просмотров)
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 30.04.2011 в 03:20.
NLObP вне форума   Ответить с цитированием