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

Есть проблемы. Вот например кусок пакета 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)? Как это клиент узнает?
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



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