Есть проблемы. Вот например кусок пакета SM_PLAYER_INFO
по данным aionxemu
Код:
List<Item> items = player.getEquipment().getEquippedItemsWithoutStigma();
short mask = 0;
for (Item item : items) {
mask |= item.getEquipmentSlot();
}
writeH(buf, mask);
for (Item item : items) {
if (item.getEquipmentSlot() < Short.MAX_VALUE * 2) {
writeD(buf, item.getItemSkinTemplate().getTemplateId());
GodStone godStone = item.getGodStone();
writeD(buf, godStone != null ? godStone.getItemId() : 0);
writeD(buf, item.getItemColor());
writeH(buf, 0x00);// unk (0x00)
}
}
никак не заменить куском
Код:
h(mask:Loop.1.4)d(ItemSkinTemplateId)d(ItemId)d(ItemColor)h(0)
Код:
0109 h mask: 32767 (0x7FFF)
0111 d ItemSkinTemplateId: 101500796 (0x060CC77C)
0115 d ItemId: 0 (0x00000000)
0119 d ItemColor: 0 (0x00000000)
0123 h 0: 0 (0x0000)
элемент mask имеет нереальное значение, хотя в пакете реальное повторение от 12 до 15 раз.
В каком месте узнать величину повторений for (Item item : items)? Как это клиент узнает?