Просмотр полной версии : Есть где-нить описание пакетов?
glukmaker
01.02.2013, 14:27
Часть информации по пакетам нашел в инете, часть из файла packetsc4.ini от l2phx
но по названию пакетов не всегда можно понять смысл пакета. Особенно если нужно найти в каком пакете передается нужная мне информация.
есть ли у кого перечень пакетов с краткой информацией на русском языке о назначении данного пакета? Или где можно глянуть?
Они же по тупому названы, достаточно слегка знать английский.
glukmaker
01.02.2013, 15:31
Они же по тупому названы, достаточно слегка знать английский.
да, но вот например понадобилась мне информация кто поднял предмет, а не могу найти какой пакет за это отвечает.
да, но вот например понадобилась мне информация кто поднял предмет, а не могу найти какой пакет за это отвечает.
64=SystemMessage:d(MsgID)d(typesCount)
Где MsgID или 1533 или 1534
А вообще пример неудачный )
glukmaker
01.02.2013, 15:46
64=SystemMessage:d(MsgID)d(typesCount)
Где MsgID или 1533 или 1534
А вообще пример неудачный )
Спасибо, но пока не совсем ясно...
если перс поднял предмет, то как узнать имя (или ID) перса и название или (ID предмета)?
Вообще для этого лучше всего скачать любой исходник Java сервера ладвы и посмотреть в коде как формируется пакет SystemMessage для этих MsgID.
Вообще с поднятием предмета не так все просто. Там череда пакетов идет.
DeleteObject, SystemMessage, мб следом прилетает CharInfo того кто поднял.
SystemMessage для MsgID=1534 получается примерно такой:
1. MsgID (1534)
2. КоличествоПараметров (3)
3. ID чара который поднял
4. ObjID предмета который подняли
5. Количество предметов которые подняли
Для MsgID=1533:
1. MsgID (1533)
2. КоличествоПараметров (2)
3. ID чара который поднял
4. ObjID предмета который подняли
Имя чара по ID в пакетхаке можно получить лишь ведя список всех чаров которые рядом, и поиском по ID в этом списке.
Либо если ты свой иньект делаешь, то вызвав метод клиента отвечающий за получение имени по ID.
glukmaker
01.02.2013, 16:59
Вообще для этого лучше всего скачать любой исходник Java сервера ладвы и посмотреть в коде как формируется пакет SystemMessage для этих MsgID.
Вообще с поднятием предмета не так все просто. Там череда пакетов идет.
DeleteObject, SystemMessage, мб следом прилетает CharInfo того кто поднял.
SystemMessage для MsgID=1534 получается примерно такой:
1. MsgID (1534)
2. КоличествоПараметров (3)
3. ID чара который поднял
4. ObjID предмета который подняли
5. Количество предметов которые подняли
Для MsgID=1533:
1. MsgID (1533)
2. КоличествоПараметров (2)
3. ID чара который поднял
4. ObjID предмета который подняли
Имя чара по ID в пакетхаке можно получить лишь ведя список всех чаров которые рядом, и поиском по ID в этом списке.
Либо если ты свой иньект делаешь, то вызвав метод клиента отвечающий за получение имени по ID.
О. То что нужно... буду пробовать...
ЗЫ. Я не делаю инъект и не использую пакетхак.
Просто пишу компонент для Дельфи с помощью которого можно конектиться и обмениваться инфой с сервером...
Компонент выполняет авторизацию на сервере, формирование пакетов для сервера, распознавание пакетов с сервера.
А работа с компонентом ведется с помощью методов и событий.
Пока по мере возможности добавляю туда новые пакеты.
Но уже кое-что можно делать используя этот компонент...
А что касается поиска имени перса по ид, то вот как раз планирую прикрутить к компоненту еще некое хранилище данных по объектам находящимся в зоне видимости.
Зачем компонент? Просто что бы руки занять? Его использовать будут чуть менее чем ты один.
Так то у меня например есть на дельфи проектик который логинился, подключался к ГС и снифил пакеты, отвечая на NetPing сервера. Но компонент делать для этого помоему перебор. Вполне себе офф-лайн бот без функционала.
glukmaker
01.02.2013, 18:07
Ну просто захотелось компонент написать...
да и самому потом будет проще. любого бота можно будет за короткое время наваять...
ну да ладно...
а вот насчет пакета 64 пробовал... ничего не получилось...
Решил посмотреть что там в пакете...
выкинул и поднял ДК боты персонажем с именем Avel
Получил вот это:
21 00 64 FD 05 00 00 02 00 00 00 00 00 00 00 41 | ! . d э . . . . . . . . . . . A
00 76 00 65 00 6C 00 00 00 03 00 00 00 93 16 00 | . v . e . l . . . . . . . “ . .
00 | .
Получается в пакете уже есть имя перса.
Значит:
21 00 - длина
64 - тип пакета
FD 05 00 00 - 1533 вобщем то что ожидалось
02 00 00 00 - 2 (чего 2? параметра? но их же больше!!!)
00 00 00 00 - хз что это
41 00 76 00 65 00 6C 00 00 00 - Avel (имя перса с нуль-терминатором)
03 00 00 00 - тоже хз что это
93 16 00 00 - 5779 (совпадает с ID Dark Crystal Boots Robe)
что за непонятные данные?
Значит:
21 00 - длина
64 - тип пакета
FD 05 00 00 - 1533 вобщем то что ожидалось
02 00 00 00 - 2 (чего 2? параметра? но их же больше!!!)
00 00 00 00 - хз что это
41 00 76 00 65 00 6C 00 00 00 - Avel (имя перса с нуль-терминатором)
03 00 00 00 - тоже хз что это
93 16 00 00 - 5779 (совпадает с ID Dark Crystal Boots Robe)
что за непонятные данные?
21 00 - длина
64 - тип пакета
FD 05 00 00 - ID сообщения = ATTENTION_S1_PICKED_UP_S2(1533)
02 00 00 00 - В сообщении 2 параметра
00 00 00 00 - Тип параметра TYPE_TEXT = 0;
41 00 76 00 65 00 6C 00 00 00 - Собственно текст (В нашем случае имя персонажа)
03 00 00 00 - Тип параметра TYPE_ITEM_NAME = 3
93 16 00 00 - ID шмотки
Т.е. каждому параметру в сообщении предшествует DWORD - тип параметра.
Пуф (http://svn2.assembla.com/svn/l2j-umbrella/trunk/L2_UmbrellaGS_CT2_2/src/main/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java)
Только по ссылке ID у пакета уже 62, хроники другие.
ф-ция формирования пакета protected final void writeImpl()
glukmaker
01.02.2013, 18:39
Вот еще: выкинул и поднял арку точенную на +4
29 00 64 FE 05 00 00 03 00 00 00 00 00 00 00 41 | ) . d ю . . . . . . . . . . . A
00 76 00 65 00 6C 00 00 00 01 00 00 00 04 00 00 | . v . e . l . . . . . . . . . .
00 03 00 00 00 D0 19 00 00 | . . . . . Р . . .
29 00 - размер пакета
64 - тип пакета
FE 05 00 00 - те же самые 1533
03 00 00 00 - а тут уже 3 (получается что данные о заточке если заточки нет не передаются)
00 00 00 00 - та же непонятная хрень
41 00 76 00 65 00 6C 00 00 00 - имя персонажа
01 00 00 00 - непонятно что
04 00 00 00 - возможно уровень заточки
03 00 00 00 - опять хз что
D0 19 00 00 - 6608 (id Arcana Mace Acumen)
Добавлено через 1 минуту
Т.е. каждому параметру в сообщении предшествует DWORD - тип параметра.
Ага, вот оно что... Теперь ясно...
00 00 00 00 TYPE_TEXT = 0;
....
01 00 00 00 TYPE_NUMBER = 1;
04 00 00 00 Да, для стаковых это количество, для нестаковых - уровень заточки
03 00 00 00 TYPE_ITEM_NAME = 3;
vBulletin® v3.6.11, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot