Возможно кто то уже разбирался с данным пакетом до меня.. и сможет указать где же мой недочет.
Декларация пакета(Pandora) немного подправленая мной.
<PacketInfo Type="0x1197" Direction="S2C" Container="False" Name="GuildInfo">
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Dword" Name="Guild_ID" />
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Byte" Name="GuildTextLen" />
<PacketField Type="UString" Length="GuildTextLen.Value" Name="GuildText" />
<PacketField Type="Byte" Name="unk" />
<PacketField Type="Byte" Name="PlayerCount" />
<PacketDataBlock Count="PlayerCount.Value" Name="Player">
<PacketField Type="Dword" Name="UID" />
<PacketField Type="Byte" Name="Level" />
<PacketField Type="Byte" Name="class" />
<PacketField Type="Byte" Name="Post" />
<PacketField Type="Word" Name="unk" /> //
<PacketField Type="Word" Name="NameLen" />
<PacketField Type="UString" Length="NameLen.Value" Name="Name" />
<PacketField Type="Byte" Name="TitleLen" />
<PacketField Type="UString" Length="TitleLen.Value" Name="Title" />
<PacketField Type="Dword" Name=""Score"" />
<PacketField Type="Byte" Name="Unk" />//всегда 0
<PacketField Type="Dword" Name="Unk" />//или 0 или FF FF FF FF
</PacketDataBlock>
///А дальше проблема... в определении длинны поля неизвестных байт
<PacketField Type="Bytes" Length="???" Name="unk" />
///Окончание пакета
<PacketDataBlock Count="????" Name="Online"> //тут список WID игроков онлайн с несколькими непонятными вставками по 4б пока обнаружил их за 3 Wid и за 6 Wid при онлайне в 21 и 23человека
<PacketField Type="Dword" Name="UID" />
</PacketDataBlock>
</PacketInfo>
Так же данный пакет при повторном приходе имеет другую структуру.. в которой пока не разобрался кроме того что окончание совпадает.
<PacketInfo Type="0x1197" Direction="S2C" Container="False" Name="GuildInfo">
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Dword" Name="Guild_ID" />
<PacketField Type="Dword" Name="unk" />
///А дальше проблема... в определении длинны поля неизвестных байт
<PacketField Type="Bytes" Length="???" Name="unk" />
///Окончание пакета
<PacketDataBlock Count="????" Name="Online"> //тут список WID игроков онлайн с несколькими непонятными вставками по 4б пока обнаружил их за 3 Wid и за 6 Wid при онлайне в 21 и 23человека
<PacketField Type="Dword" Name="UID" />
</PacketDataBlock>
</PacketInfo>
Добавлено через 1 час 34 минуты
Код:
<PacketInfo Type="0x1197" Direction="S2C" Container="False" Name="GuildInfo">
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Dword" Name="Guild_ID" />
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Byte" Name="GuildTextLen" />
<PacketField Type="UString" Length="GuildTextLen.Value" Name="GuildText" />
<PacketField Type="Byte" Name="GuildList" />
<If Clause="Equal" Value1="GuildList.Value" Value2="128">
<PacketField Type="Byte" Name="PlayerCount" />
<PacketDataBlock Count="PlayerCount.Value" Name="Player">
<PacketField Type="Dword" Name="UID" />
<PacketField Type="Byte" Name="Level" />
<PacketField Type="Byte" Name="class" />
<PacketField Type="Byte" Name="Post" />
<PacketField Type="Word" Name="unk" />
<PacketField Type="Word" Name="NameLen" />
<PacketField Type="UString" Length="NameLen.Value" Name="Name" />
<PacketField Type="Byte" Name="TitleLen" />
<PacketField Type="UString" Length="TitleLen.Value" Name="Title" />
<PacketField Type="Dword" Name=""Score"" />
<PacketField Type="Byte" Name="Unk" />
<PacketField Type="Dword" Name="Unk" />
</PacketDataBlock>
</If>
<PacketField Type="Byte" Name="OnlineCnt" />
<PacketDataBlock Count="OnlineCnt.Value" Name="Online">
<PacketField Type="Dword" Name="WID" />
</PacketDataBlock>
</PacketInfo>
На данный момент так, только несовсем понятно что за айди передаются в списке онлайна, точней там много лишних айди, но более нигде в трафике я их не встречаю. а все кто по факту онлайн, в данный список входят, т.е. при перекрестной проверки есть ли айди в списке, можно получать список персонажей онлайн.
зы. если кто разгадает секрет лишних айди, просьба ответить в данной теме.
зы.ы. запрос данного пакета.
Код:
<PacketInfo Type="0x12C4" Direction="C2S" Container="False" Name="GetMyGuildInfo">
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Dword" Name="MyUID" />
<PacketField Type="Dword" Name="unk" />
<PacketField Type="Byte" Name="full" /> //0 - запрос полного списка, 1- запрос только онлайн части.
</PacketInfo>
Добавлено через 5 часов 15 минут
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
зы. если кто разгадает секрет лишних айди, просьба ответить в данной теме.
|
|
 |
|
 |
|
То что пока накопал...
перечисленные айди(проверил выборочно 20 шт которых нет в клане) принадлежат персонажам которые недавно покинули ги, в сети на момент получения пакета их нет.. только непонятным остается как они туда попадают, или как в список попадают персонажи из клана которые в сети...
все айди которые в есть в данном списке и в клане - в сети.