Пишу своего бота на C#, пока для с4., хочу полностью понять протокол.
Пакеты изучаю поглядывая в l2ph.
Тестирую пакеты в безлюдном месте. так вот - раз в ~110с, сервер присылает пакет ValidateLocation (0x61), который содержит данные charID, X Y Z и какой-то Heading.
значение CharID находится в небольшом диапазоне (от 0 до 150 000), короче похоже что это действительно идентификатор какого-то персонажа (не путайте с ObjectID).
Значения координат тоже весьма похожи на те которые бывают в разных местах ла2., короче в структуре пакета ошибки вроде бы нет. Но возникает вопрос - зачем клиенту нужны координаты какого-то "рандомного?" персонажа, каждые 110 секунд? особенно учитывая то, что мой клиент не знает CharID никаких других персонажей, кроме своего, полученного при логине в пакете CharSelected (0x15)
Добавлено через 3 минуты
Прилагаю небольшой лог, для понимания:
61 DB 56 00 00 28 76 01 00 68 5F 03 00 6E 03 00 00 3B 7A 00 00
Tип: 0x61 (ValidateLocation)
Pазмер: 21+2
Время прихода: 13:16:55:671
0002 d charID: 22235 (0x000056DB)
0006 d X: 95784 (0x00017628)
0010 d Y: 221032 (0x00035F68)
0014 d Z: 878 (0x0000036E)
0018 d Heading: 31291 (0x00007A3B)
61 FC 30 00 00 C8 06 01 00 D8 19 03 00 2D 2F 00 00 97 7C 00 00
Tип: 0x61 (ValidateLocation)
Pазмер: 21+2
Время прихода: 13:18:45:046
0002 d charID: 12540 (0x000030FC)
0006 d X: 67272 (0x000106C8)
0010 d Y: 203224 (0x000319D8)
0014 d Z: 12077 (0x00002F2D)
0018 d Heading: 31895 (0x00007C97)
61 CF 32 00 00 88 64 01 00 E8 6B 03 00 3F 31 00 00 79 4C 00 00
Tип: 0x61 (ValidateLocation)
Pазмер: 21+2
Время прихода: 13:20:35:531
0002 d charID: 13007 (0x000032CF)
0006 d X: 91272 (0x00016488)
0010 d Y: 224232 (0x00036BE8)
0014 d Z: 12607 (0x0000313F)
0018 d Heading: 19577 (0x00004C79)
61 06 17 00 00 18 3D 01 00 58 31 03 00 A7 5D 00 00 AC 44 00 00
Tип: 0x61 (ValidateLocation)
Pазмер: 21+2
Время прихода: 13:22:25:999
0002 d charID: 5894 (0x00001706)
0006 d X: 81176 (0x00013D18)
0010 d Y: 209240 (0x00033158)
0014 d Z: 23975 (0x00005DA7)
0018 d Heading: 17580 (0x000044AC)
61 4E 4D 00 00 68 6D 01 00 28 26 03 00 40 06 00 00 57 70 00 00
Tип: 0x61 (ValidateLocation)
Pазмер: 21+2
Время прихода: 13:24:16:015
0002 d charID: 19790 (0x00004D4E)
0006 d X: 93544 (0x00016D68)
0010 d Y: 206376 (0x00032628)
0014 d Z: 1600 (0x00000640)
0018 d Heading: 28759 (0x00007057)
Последний раз редактировалось alexov, 22.01.2015 в 12:14.
Причина: Добавлено сообщение
ты невнимательно прочитал что пишу.
1) ObjectID всегда принимает большое значение - 7-8 знаков или больше., а CharID - маленькое значение., в данном пакете это точно не ObjectID
2) тестирую пакеты в пустынном месте, там 100% никого нет. А если бы кто и был - посмотри координаты в пакетах, они из разных концов мира
Я вообще не знаю откуда берется этот пакет. На хф используется 59=ValidatePosition:d(X)d(Y)d(Z)d(Heading)d(Data) - hf
Добавлено через 14 минут
Вообще может там стоит шифрация пакетов?
Вообще-то и в ХФ используется
$79 = ValidateLocation:d(CharID)d(X)d(Y)d(Z)d(Heading);
А то, что Вы указываете - это пакет от клиента - серверу.
по теме: вообще - есть ли уверенность, что пакет полностью верно расшифрован?
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 22.01.2015 в 23:33.
по теме: вообще - есть ли уверенность, что пакет полностью верно расшифрован?
Ну, пакеты либо все расшифровываются, либо все не расшифровываются, по другому не бывает) у меня все нормально работает, бот бегает качается. значит я все нормально с шифрацией справился
чтобы послать Action, мне нужен ObjectID. а здесь CharID, и это не просто название, как я уже говорил. ObjectID всегда принимает большие значения, а CharID - маленькие
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 24.01.2015 в 22:29.