Вернуться   CoderX :: Forums > Другие игры > Aion
Войти через OpenID

Aion Форум посвященный игре Aion

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.04.2011, 22:47   #1
Рыцарь
 
Аватар для 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 вне форума   Ответить с цитированием
Старый 14.04.2011, 16:00   #2
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
элемент mask имеет нереальное значение, хотя в пакете реальное повторение от 12 до 15 раз.

В каком месте узнать величину повторений for (Item item : items)? Как это клиент узнает?
хех, всё очень просто, mask это битовая маска, сколько бит в ней установлено столько и элементов в списке, правда в пакетхаке для такого придётся дополнительный костыль мутить ибо ничего встроенного чтоб превратить эту маску в число элементов нету
я вот так количество вычислял:
delphi Код:
k:=fp.ReadH; // EquipmentMask     c:=0;     for i:=0 to 15 do c:=c+((k shr i)and 1);

Добавлено через 4 минуты
Эта битовая маска заодно указывает на что надета каждая вещь из списка
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 14.04.2011 в 16:00. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Ответ

  CoderX :: Forums > Другие игры > Aion



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:59.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!