пакет npcInfo

mouzy724

Путник
Пользователь
Сообщения
7
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
83
Добый день, помогите плиз распарсить пакет npcInfo. Первый блок парсится нормально, авторой блок вообще не могу распарить. Хроники Orc Village.
 
Добый день, помогите плиз распарсить пакет npcInfo. Первый блок парсится нормально, авторой блок вообще не могу распарить. Хроники Orc Village.
количество масок стало 39.
 
да это я знаю. Но вот распарсить нормально пакет так и не выходит
Java:
        if (containsMask(NpcInfoType.CLAN))
        {
            packetWriter.writeD(_clanId);
            packetWriter.writeD(_clanCrestId);
            packetWriter.writeD(_largeClanCrestId);
            packetWriter.writeD(_allyId);
            packetWriter.writeD(_allyCrestId);
        }

        if (containsMask(NpcInfoType.COMBAT_MODE) || containsMask(NpcInfoType.DEAD) || containsMask(NpcInfoType.TARGET_ABLE))
        {
            packetWriter.writeC(_statusMask);
        }

        if (containsMask(NpcInfoType.NAMED))
        {
            packetWriter.writeC(_showName ? 1 : 0);
        }

        if(containsMask(NpcInfoType.SERVER_ID))
        {
            packetWriter.writeD(Config.REQUEST_ID);
        }

        if (containsMask(NpcInfoType.MASTER_ID))
        {
            packetWriter.writeD(_masterId);
        }
       
        if(containsMask(NpcInfoType.ABNORMALS))
        {
            packetWriter.writeH(_AbnormalVisualEffects.length);
            for(AbnormalVisualEffect abnormal : _AbnormalVisualEffects)
                packetWriter.writeH(abnormal == null ? 0 : abnormal.getId());
        }
        return true;

Java:
public enum NpcInfoType implements IUpdateTypeComponent
{
    // 0
    ID(0x00, 4),
    ATTACKABLE(0x01, 1),
    RELATIONS(0x02, 8),
    NAME(0x03, 2),
    POSITION(0x04, (3 * 4)),
    HEADING(0x05, 4),
    VEHICLE_ID(0x06, 4),
    ATK_CAST_SPEED(0x07, (2 * 4)),

    // 1
    SPEED_MULTIPLIER(0x08, (2 * 4)),
    EQUIPPED(0x09, (3 * 4)),
    ALIVE(0x0A, 1),
    RUNNING(0x0B, 1),
    COMBAT_MODE(0x0C, 0),
    DEAD(0x0D, 0),
    SWIM_OR_FLY(0x0E, 1),
    TEAM(0x0F, 1),

    // 2
    ENCHANT(0x10, 4),
    FLYING(0x11, 4),
    CLONE(0x12, 4),
    COLOR_EFFECT(0x13, 4),
    TARGET_ABLE(0x14, 0),
    NAMED(0x15, 1),
    DISPLAY_EFFECT(0x16, 4),
    TRANSFORMATION(0x17, 4),

    // 3
    CURRENT_HP(0x18, 8),
    CURRENT_MP(0x19, 4),
    MAX_HP(0x1A, 8),
    MAX_MP(0x1B, 4),
    SUMMONED(0x1C, 1),
    UNKNOWN12(0x1D, (2 * 4)),
    TITLE(0x1E, 2),
    NAME_NPCSTRINGID(0x1F, 4),

    // 4
    TITLE_NPCSTRINGID(0x20, 4),
    PVP_FLAG(0x21, 1),
    REPUTATION(0x22, 4),
    CLAN(0x23, (5 * 4)),
    ABNORMALS(0x24, 0),
    SERVER_ID(0x25, 4),
    MASTER_ID(0x26, 4);

с вас 5тыщ :Run:
 
Java:
        if (containsMask(NpcInfoType.CLAN))
        {
            packetWriter.writeD(_clanId);
            packetWriter.writeD(_clanCrestId);
            packetWriter.writeD(_largeClanCrestId);
            packetWriter.writeD(_allyId);
            packetWriter.writeD(_allyCrestId);
        }

        if (containsMask(NpcInfoType.COMBAT_MODE) || containsMask(NpcInfoType.DEAD) || containsMask(NpcInfoType.TARGET_ABLE))
        {
            packetWriter.writeC(_statusMask);
        }

        if (containsMask(NpcInfoType.NAMED))
        {
            packetWriter.writeC(_showName ? 1 : 0);
        }

        if(containsMask(NpcInfoType.SERVER_ID))
        {
            packetWriter.writeD(Config.REQUEST_ID);
        }

        if (containsMask(NpcInfoType.MASTER_ID))
        {
            packetWriter.writeD(_masterId);
        }
      
        if(containsMask(NpcInfoType.ABNORMALS))
        {
            packetWriter.writeH(_AbnormalVisualEffects.length);
            for(AbnormalVisualEffect abnormal : _AbnormalVisualEffects)
                packetWriter.writeH(abnormal == null ? 0 : abnormal.getId());
        }
        return true;

Java:
public enum NpcInfoType implements IUpdateTypeComponent
{
    // 0
    ID(0x00, 4),
    ATTACKABLE(0x01, 1),
    RELATIONS(0x02, 8),
    NAME(0x03, 2),
    POSITION(0x04, (3 * 4)),
    HEADING(0x05, 4),
    VEHICLE_ID(0x06, 4),
    ATK_CAST_SPEED(0x07, (2 * 4)),

    // 1
    SPEED_MULTIPLIER(0x08, (2 * 4)),
    EQUIPPED(0x09, (3 * 4)),
    ALIVE(0x0A, 1),
    RUNNING(0x0B, 1),
    COMBAT_MODE(0x0C, 0),
    DEAD(0x0D, 0),
    SWIM_OR_FLY(0x0E, 1),
    TEAM(0x0F, 1),

    // 2
    ENCHANT(0x10, 4),
    FLYING(0x11, 4),
    CLONE(0x12, 4),
    COLOR_EFFECT(0x13, 4),
    TARGET_ABLE(0x14, 0),
    NAMED(0x15, 1),
    DISPLAY_EFFECT(0x16, 4),
    TRANSFORMATION(0x17, 4),

    // 3
    CURRENT_HP(0x18, 8),
    CURRENT_MP(0x19, 4),
    MAX_HP(0x1A, 8),
    MAX_MP(0x1B, 4),
    SUMMONED(0x1C, 1),
    UNKNOWN12(0x1D, (2 * 4)),
    TITLE(0x1E, 2),
    NAME_NPCSTRINGID(0x1F, 4),

    // 4
    TITLE_NPCSTRINGID(0x20, 4),
    PVP_FLAG(0x21, 1),
    REPUTATION(0x22, 4),
    CLAN(0x23, (5 * 4)),
    ABNORMALS(0x24, 0),
    SERVER_ID(0x25, 4),
    MASTER_ID(0x26, 4);

с вас 5тыщ :Run:
это не полная инфа. Я вытащил эту инфу с сервака и опять же у меня не выходит распарсить нормально пакет даже имея эту инфу с сервака
 
это не полная инфа. Я вытащил эту инфу с сервака и опять же у меня не выходит распарсить нормально пакет даже имея эту инфу с сервака
остальные данные с 447 или 464 или 474 протокола не менялись.

Тогда только поменялись

Java:
        if (containsMask(NpcInfoType.CURRENT_HP))
            packetWriter.writeQ(_currentHP);

        if (containsMask(NpcInfoType.CURRENT_MP))
            packetWriter.writeD(_currentMP);

        if (containsMask(NpcInfoType.MAX_HP))
            packetWriter.writeQ(_maxHP);

        if (containsMask(NpcInfoType.MAX_MP))
            packetWriter.writeD(_maxMP);
 
Назад
Сверху