Проблема со вставкой ЛС

parrx

Выдающийся
Участник
Сообщения
57
Розыгрыши
0
Репутация
7
Реакции
5
Баллы
1 310
Хроники
  1. Ertheia / Dimensional Strangers
Исходники
Присутствуют
Сборка
Over
Всем привет
помогите решить проблему
до вставки лс
Shot00000.jpg
а после вставки
Shot00002.jpg
Shot00001.jpg
склоняюсь неправильной пакетке UserInfo но не могу понять где косяк
Код:
protected final void writeImpl()
    {
        if(!can_writeImpl)
            return;

        writeD(obj_id);
        writeD(_initSize);
        writeH(23);
        writeB(_masks);

        if(containsMask(UserInfoType.RELATION))
            writeD(_relation);

        if(containsMask(UserInfoType.BASIC_INFO))
        {
            writeH(UserInfoType.BASIC_INFO.getBlockLength() + (_name.length() * 2));

            writeString(_name);
            writeC(gm_commands);
            writeC(_race);
            writeC(sex);
            writeD(base_class);
            writeD(class_id);
            writeC(level);
        }

        if(containsMask(UserInfoType.BASE_STATS))
        {
            writeH(UserInfoType.BASE_STATS.getBlockLength());

            writeH(_str);
            writeH(_dex);
            writeH(_con);
            writeH(_int);
            writeH(_wit);
            writeH(_men);
            writeH(_luc);
            writeH(_cha);
        }

        if(containsMask(UserInfoType.MAX_HPCPMP))
        {
            writeH(UserInfoType.MAX_HPCPMP.getBlockLength());

            writeD(maxHp);
            writeD(maxMp);
            writeD(maxCp);
        }

        if(containsMask(UserInfoType.CURRENT_HPMPCP_EXP_SP))
        {
            writeH(UserInfoType.CURRENT_HPMPCP_EXP_SP.getBlockLength());

            writeD(curHp);
            writeD(curMp);
            writeD(curCp);
            writeQ(_sp);
            writeQ(_exp);
            writeF(_expPercent);
        }

        if(containsMask(UserInfoType.ENCHANTLEVEL))
        {
            writeH(UserInfoType.ENCHANTLEVEL.getBlockLength());

            writeC(_weaponEnchant);
            writeC(_armorSetEnchant);
        }

        if(containsMask(UserInfoType.APPAREANCE))
        {
            writeH(UserInfoType.APPAREANCE.getBlockLength());

            writeD(hair_style);
            writeD(hair_color);
            writeD(face);
            writeC(!_hideHeadAccessories);
        }

        if(containsMask(UserInfoType.STATUS))
        {
            writeH(UserInfoType.STATUS.getBlockLength());

            writeC(mount_type);
            writeC(private_store);
            writeC(can_crystalize);
            writeC(_usedAbilitiesPoints);
        }

        if(containsMask(UserInfoType.STATS))
        {
            writeH(UserInfoType.STATS.getBlockLength());

            writeH(_weaponFlag);
            writeD(_patk);
            writeD(_patkspd);
            writeD(_pdef);
            writeD(_pEvasion);
            writeD(_pAccuracy);
            writeD(_pCrit);
            writeD(_matk);
            writeD(_matkspd);
            writeD(_patkspd);
            writeD(_mEvasion);
            writeD(_mdef);
            writeD(_mAccuracy);
            writeD(_mCrit);
        }

        if(containsMask(UserInfoType.ELEMENTALS))
        {
            writeH(UserInfoType.ELEMENTALS.getBlockLength());

            writeH(defenceFire);
            writeH(defenceWater);
            writeH(defenceWind);
            writeH(defenceEarth);
            writeH(defenceHoly);
            writeH(defenceUnholy);
        }

        if(containsMask(UserInfoType.POSITION))
        {
            writeH(UserInfoType.POSITION.getBlockLength());

            writeD(_loc.x);
            writeD(_loc.y);
            writeD(_loc.z + Config.CLIENT_Z_SHIFT);
            writeD(vehicle_obj_id);
        }

        if(containsMask(UserInfoType.SPEED))
        {
            writeH(UserInfoType.SPEED.getBlockLength());

            writeH(_runSpd);
            writeH(_walkSpd);
            writeH(_swimRunSpd);
            writeH(_swimWalkSpd);
            writeH(_flRunSpd);
            writeH(_flWalkSpd);
            writeH(_flyRunSpd);
            writeH(_flyWalkSpd);
        }

        if(containsMask(UserInfoType.MULTIPLIER))
        {
            writeH(UserInfoType.MULTIPLIER.getBlockLength());

            writeF(move_speed);
            writeF(attack_speed);
        }

        if(containsMask(UserInfoType.COL_RADIUS_HEIGHT))
        {
            writeH(UserInfoType.COL_RADIUS_HEIGHT.getBlockLength());

            writeF(col_radius);
            writeF(col_height);
        }

        if(containsMask(UserInfoType.ATK_ELEMENTAL))
        {
            writeH(UserInfoType.ATK_ELEMENTAL.getBlockLength());

            writeC(attackElement.getId());
            writeH(attackElementValue);
        }

        if(containsMask(UserInfoType.CLAN))
        {
            writeH(UserInfoType.CLAN.getBlockLength() + (_title.length() * 2));

            writeString(_title);
            writeH(pledge_type);
            writeD(clan_id);
            writeD(large_clan_crest_id);
            writeD(clan_crest_id);
            writeD(ClanPrivs);
            writeC(_isClanLeader);
            writeD(ally_id);
            writeD(ally_crest_id);
            writeC(partyRoom ? 0x01 : 0x00);
        }

        if(containsMask(UserInfoType.SOCIAL))
        {
            writeH(UserInfoType.SOCIAL.getBlockLength());

            writeC(pvp_flag);
            writeD(karma);
            writeC(noble);
            writeC(hero);
            writeC(pledge_class);
            writeD(pk_kills);
            writeD(pvp_kills);
            writeH(rec_left);
            writeH(rec_have);
        }

        if(containsMask(UserInfoType.VITA_FAME))
        {
            writeH(UserInfoType.VITA_FAME.getBlockLength());

            writeD(vitality);
            writeC(0x00);  // Vita Bonus
            writeD(fame);
            writeD(0x00);  // raid points
        }

        if(containsMask(UserInfoType.SLOTS))
        {
            writeH(UserInfoType.SLOTS.getBlockLength());

            writeC(talismans);
            writeC(_jewelsLimit);
            writeC(_team.ordinal());
            writeD(0); // Светиться вокруг персонажа красный пунтктирный круг.
        }

        if(containsMask(UserInfoType.MOVEMENTS))
        {
            writeH(UserInfoType.MOVEMENTS.getBlockLength());

            writeC(_moveType);
            writeC(running);
        }

        if(containsMask(UserInfoType.COLOR))
        {
            writeH(UserInfoType.COLOR.getBlockLength());

            writeD(name_color);
            writeD(title_color);
        }

        if(containsMask(UserInfoType.INVENTORY_LIMIT))
        {
            writeH(UserInfoType.INVENTORY_LIMIT.getBlockLength());

            writeD(0x00);  // mount
            writeH(InventoryLimit);
            writeC(0);  // hide title - 1, 0 - no
        }

        if(containsMask(UserInfoType.TRUE_HERO))
        {
            writeH(UserInfoType.TRUE_HERO.getBlockLength());

            writeD(0x00);
            writeD(0x00);
            writeH(0x00);
            writeC(0x00);
        }
    }
 
UserInfo этот пакет за отображение инфы чара
Смотри в стороннуRequestConfirmCancelItem RequestConfirmRefinerItem RequestConfirmGemStone и так далее если на сколько я помню
 
частично решил проблему отправлялись не правильные значения в L2GameServerPacket.writeItemInfo(......)

а теперь новое)

при вставке
Shot00003.jpg Shot00004.jpg Shot00005.jpg
а после релога
Shot00006.jpg

в InventoryUpdatePacket вроде как все верно
 
проблема решена)

и еще вопрос в ertheia отображается эффект от ЛС при выбора персонажа?
вроде шлются в CharacterSelectionInfoPacket но не видно
Java:
writeH(charInfoPackage.getPaperdollVariation1Id(Inventory.PAPERDOLL_RHAND));
writeH(charInfoPackage.getPaperdollVariation2Id(Inventory.PAPERDOLL_RHAND));


Shot00009.jpg Shot00008.jpg
 
проблема решена)

и еще вопрос в ertheia отображается эффект от ЛС при выбора персонажа?
вроде шлются в CharacterSelectionInfoPacket но не видно
Java:
writeH(charInfoPackage.getPaperdollVariation1Id(Inventory.PAPERDOLL_RHAND));
writeH(charInfoPackage.getPaperdollVariation2Id(Inventory.PAPERDOLL_RHAND));


Посмотреть вложение 26482Посмотреть вложение 26483
Отображается
 
может кто то подсказать что там нужно отправить?
Чекай пакет CharacterSelectionInfo, скорее всего часть с инкрустацией коряво отправляется. Т.е либо туда вообще ничего не передается или может быть там вообще writeD



По типу:

Код:
            writeD(charInfoPackage.getPaperdollAugmentation1Id(Inventory.PAPERDOLL_RHAND));
            writeD(charInfoPackage.getPaperdollAugmentation2Id(Inventory.PAPERDOLL_RHAND));
 
Чекай пакет CharacterSelectionInfo, скорее всего часть с инкрустацией коряво отправляется. Т.е либо туда вообще ничего не передается или может быть там вообще writeD



По типу:

Код:
            writeD(charInfoPackage.getPaperdollAugmentation1Id(Inventory.PAPERDOLL_RHAND));
            writeD(charInfoPackage.getPaperdollAugmentation2Id(Inventory.PAPERDOLL_RHAND));

но у Вас на скрине только эффект от заточки
 
Назад
Сверху Снизу