Сообщений: 16
Тем: 1
Зарегистрирован: Jan 2015
Репутация:
0
mmorgdev Написал:Ванга в отпуске, хоть на чем сборка основана (дримы(феникс) или лыжа?))
P.S. Все меня прет!
Лыжа.
хроники классик
При прохождении квеста на 1 профу, так же не учатся скилы до релога.
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
WOLKkr Написал:Ребят, подскажите пожалуйста, ситуация такая.
Ставишь эмблему клана, но она не отображается до релога.
Еще проблема подобного рода со скилами, получаешь 1 профу, скиллы не учаться до релога.
После релога все норм.
Что и где добавить?
Не помню, есть ли в UI блок с значками клана и альянса, но если есть, то либо данный блок не отправляется, либо вообще UI не шлется после выбора иконки.
На счет скиллов, что именно не работает? Автоизучение или даже вручную не учаться скиллы или вообще не отображаются?
Сообщений: 16
Тем: 1
Зарегистрирован: Jan 2015
Репутация:
0
Warencense Написал:Не помню, есть ли в UI блок с значками клана и альянса, но если есть, то либо данный блок не отправляется, либо вообще UI не шлется после выбора иконки.
На счет скиллов, что именно не работает? Автоизучение или даже вручную не учаться скиллы или вообще не отображаются?
После получения профессии, в окне изучения скилов жму по скилу и не появляется 2 окно для изучения скила, после релога все работает. Автоизучением все учится.
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
WOLKkr Написал:После получения профессии, в окне изучения скилов жму по скилу и не появляется 2 окно для изучения скила, после релога все работает. Автоизучением все учится.
Мб что-то в консоли пишет?
Сообщений: 16
Тем: 1
Зарегистрирован: Jan 2015
Репутация:
0
Warencense Написал:Мб что-то в консоли пишет?
Открыть спойлер
'офф'Кстати, народ, а у всех робит сниффер на текущем NA сервере? А то я как с х32 на х64 перешел, l2phx ниче не видит, а самурай стал выбивать IOException при попытке создания сессии. Не пойму в чем прикол. Мь сталкивался кто
в консоле все чисто
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
WOLKkr Написал:в консоле все чисто
Ну у меня только одна идея сейчас - запустить пх, посмотреть что за пакет пропущен или неправильно получен.
Народ, а что это за флажок около ника?
Сообщений: 162
Тем: 0
Зарегистрирован: May 2012
Репутация:
310
Warencense Написал:Ну у меня только одна идея сейчас - запустить пх, посмотреть что за пакет пропущен или неправильно получен.
Народ, а что это за флажок около ника?
Система упрощенного поиска помощи
Начальные игроки имеют флажок, видимый всем (если /mark on), включить флажок (/initial on)
После 6 месяцев, начальные игроки могут помогать другим, значок будет рукопожатия (/evangelist on)
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
04-26-2015, 10:58 PM
(Сообщение последний раз редактировалось: 05-14-2015, 12:06 AM Daan Raven.)
ChaosPaladin Написал:Система упрощенного поиска помощи
Начальные игроки имеют флажок, видимый всеми (если /mark on), включить флажок (/initial on)
После 6 месяцев, начальные игроки могут помогать другим, значок будет рукопожатия (/evangelist on)
Хм, интересная система) Вот только на ру и на ее не видел.
Вот дамп, если кому надо. 24 протокол.
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
04-28-2015, 11:25 PM
(Сообщение последний раз редактировалось: 06-09-2015, 10:35 PM Daan Raven.)
Кому надо, вот набросок UI 24 протокола (одиссея). В мир не входил, просто проверил соответствие полей в пхаке. Еще там у меня сомнения по поводу 3 флагов (1-ый я пометил знаками вопроса, а 2 и 3 - baseClassId и classId - то ли у кого-то из них тип изменился, в чем я сомневаюсь, то ли добавились 1-2 новых флага в том районе. В общем, поправьте, если что.
Открыть спойлер
'UIPacket'[src='java'] writeC(0x32);
writeD(_activeChar.getObjectId());
writeD(_initSize);
writeH(23);
writeC(_masks);
writeC(_masks);
writeC(_masks);
writeD(_relation);
writeH(16 + (_activeChar.getName().length() * 2));
writeH(nameLength);
writeCutS(_activeChar.getName());
writeC(_activeChar.isGM() ? 0x01 : 0x00);
writeC(_activeChar.getRace().ordinal());
writeC(_activeChar.getAppearance().getSex() ? 0x01 : 0x00);
writeD(_activeChar.getBaseClass());
writeD(_activeChar.getClassId().getId());
writeC(_activeChar.getLevel());
writeH(18);
writeH(_activeChar.getSTR());
writeH(_activeChar.getDEX());
writeH(_activeChar.getCON());
writeH(_activeChar.getINT());
writeH(_activeChar.getWIT());
writeH(_activeChar.getMEN());
writeH(_activeChar.getLUC());
writeH(_activeChar.getCHA());
writeH(14);
writeD(_activeChar.getMaxHp());
writeD(_activeChar.getMaxMp());
writeD(_activeChar.getMaxCp());
writeH(38);
writeD((int) Math.round(_activeChar.getCurrentHp()));
writeD((int) Math.round(_activeChar.getCurrentMp()));
writeD((int) Math.round(_activeChar.getCurrentCp()));
writeQ(_activeChar.getSp());
writeQ(_activeChar.getExp());
writeF((float) (_activeChar.getExp() - ExperienceData.getInstance().getExpForLevel(_activeChar.getLevel())) / (ExperienceData.getInstance().getExpForLevel(_activeChar.getLevel() + 1) - ExperienceData.getInstance().getExpForLevel(_activeChar.getLevel())));
writeH(4);
writeC(_enchantLevel);
writeC(_armorEnchant);
writeH(15);
writeD(_activeChar.getVisualHair());
writeD(_activeChar.getVisualHairColor());
writeD(_activeChar.getVisualFace());
writeC(_activeChar.isHairAccessoryEnabled() ? 0x01 : 0x00);
writeH(6);
writeC(_activeChar.getMountType().ordinal());
writeC(_activeChar.getPrivateStoreType().getId());
writeC(_activeChar.hasDwarvenCraft() ? 1 : 0);
writeC(_activeChar.getAbilityPointsUsed());
writeH(56);
writeH(_activeChar.getActiveWeaponItem() != null ? 40 : 20);
writeD(_activeChar.getPAtk(null));
writeD(_activeChar.getPAtkSpd());
writeD(_activeChar.getPDef(null));
writeD(_activeChar.getEvasionRate(null));
writeD(_activeChar.getAccuracy());
writeD(_activeChar.getCriticalHit(null, null));
writeD(_activeChar.getMAtk(null, null));
writeD(_activeChar.getMAtkSpd());
writeD(_activeChar.getPAtkSpd()); // Seems like atk speed - 1
writeD(_activeChar.getMagicEvasionRate(null));
writeD(_activeChar.getMDef(null, null));
writeD(_activeChar.getMagicAccuracy());
writeD(_activeChar.getMCriticalHit(null, null));
writeH(14);
writeH(_activeChar.getDefenseElementValue(Elementals.FIRE));
writeH(_activeChar.getDefenseElementValue(Elementals.WATER));
writeH(_activeChar.getDefenseElementValue(Elementals.WIND));
writeH(_activeChar.getDefenseElementValue(Elementals.EARTH));
writeH(_activeChar.getDefenseElementValue(Elementals.HOLY));
writeH(_activeChar.getDefenseElementValue(Elementals.DARK));
writeH(18);
writeD(_activeChar.getX());
writeD(_activeChar.getY());
writeD(_activeChar.getZ());
writeD(_activeChar.isInVehicle() ? _activeChar.getVehicle().getObjectId() : 0);
writeH(18);
writeH(_runSpd);
writeH(_walkSpd);
writeH(_swimRunSpd);
writeH(_swimWalkSpd);
writeH(_flRunSpd);
writeH(_flWalkSpd);
writeH(_flyRunSpd);
writeH(_flyWalkSpd);
writeH(18);
writeF(_moveMultiplier);
writeF(_activeChar.getAttackSpeedMultiplier());
writeH(18);
writeF(_activeChar.getCollisionRadius());
writeF(_activeChar.getCollisionHeight());
writeH(5);
writeC(attackAttribute);
writeH(_activeChar.getAttackElementValue(attackAttribute));
writeH(32 + (_title.length() * 2));
writeH(titleLength);
writeCutS(_title);
writeH(_activeChar.getPledgeType());
writeD(_activeChar.getClanId());
writeD(_activeChar.getClanCrestLargeId());
writeD(_activeChar.getClanCrestId());
writeC(_activeChar.isClanLeader() ? -1 : 0x00);
writeD(_activeChar.getClanPrivileges().getBitmask());
writeD(_activeChar.getAllyId());
writeD(_activeChar.getAllyCrestId());
writeC(_activeChar.isInPartyMatchRoom() ? 0x01 : 0x00);
writeH(22);
writeC(_activeChar.getPvpFlag());
writeD(_activeChar.getReputation());
writeC(_activeChar.isNoble() ? 0x01 : 0x00);
writeC(_activeChar.isHero() ? 0x01 : 0x00);
writeC(_activeChar.getPledgeClass());
writeD(_activeChar.getPkKills());
writeD(_activeChar.getPvpKills());
writeD(_activeChar.getRecomLeft());
writeH(15);
writeD(_activeChar.getVitalityPoints());
writeC(0x00); // Vita Bonus
writeD(_activeChar.getFame());
writeD(RaidBossPointsManager.getInstance().getPointsByOwnerId(_activeChar.getObjectId()));
writeH(9);
writeC(_activeChar.getInventory().getTalismanSlots()); // Confirmed
writeC(_activeChar.getInventory().getBroochJewelSlots()); // Confirmed
writeC(_activeChar.getTeam().getId()); // Confirmed
writeC(0x00); // (1 = Red, 2 = White, 3 = White Pink) dotted ring on the floor
writeC(0x00);
writeC(0x00);
writeC(0x00);
writeH(4);
writeC(_activeChar.isInsideZone(ZoneId.WATER) ? 1 : _activeChar.isFlyingMounted() ? 2 : 0);
writeC(_activeChar.isRunning() ? 0x01 : 0x00);
writeH(10);
writeD(_activeChar.getAppearance().getNameColor());
writeD(_activeChar.getAppearance().getTitleColor());
writeH(9);
writeH(0x00);
writeH(0x00);
writeH(_activeChar.getInventoryLimit());
writeC(0x00); // if greater than 1 show the attack cursor when interacting
writeH(9);
writeC(0x00);
writeH(0x00);
writeD(0x00);[/src]
Добавлено через 17 часов 56 минут
Вот структура, взятая опираясь на снифф с евро
Открыть спойлер
'CharacterSelectionInfo'
[src='java'] writeC(0x09);
int _size = _characterPackages.size();
writeD(_size);
writeD(Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT);
writeC(_size == Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT ? 0x01 : 0x00);
writeC(0x02);
writeD(0x00);
writeC(0x00);
for (int i = 0; i < _size; i++)
{
writeS(charInfoPackage.getName());
writeD(charInfoPackage.getObjectId());
writeS(_loginName);
writeD(_sessionId);
writeD(0x00);
writeD(0x00);
writeD(charInfoPackage.getSex());
writeD(charInfoPackage.getRace());
writeD(charInfoPackage.getClassId());
writeD(0x11); //??
writeD(charInfoPackage.getX());
writeD(charInfoPackage.getY());
writeD(charInfoPackage.getZ());
writeF(charInfoPackage.getCurrentHp());
writeF(charInfoPackage.getCurrentMp());
writeQ(charInfoPackage.getSp());
writeQ(charInfoPackage.getExp());
writeF((float) (charInfoPackage.getExp() - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five
writeD(charInfoPackage.getLevel());
writeD(charInfoPackage.getKarma() > 0 ? charInfoPackage.getKarma() * -1 : charInfoPackage.getReputation());
writeD(charInfoPackage.getPkKills());
writeD(charInfoPackage.getPvPKills());
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeD(charInfoPackage.getPaperdollItemVisualId(slot));
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeD(charInfoPackage.getHairStyle());
writeD(charInfoPackage.getHairColor());
writeD(charInfoPackage.getFace());
writeF(charInfoPackage.getMaxHp());
writeF(charInfoPackage.getMaxMp());
writeD(charInfoPackage.getDeleteTimer() > 0 ? (int) ((charInfoPackage.getDeleteTimer() - System.currentTimeMillis()) / 1000) : 0);
writeD(charInfoPackage.getClassId());
writeD(i == _activeId ? 1 : 0);
writeC(charInfoPackage.getEnchantEffect() > 127 ? 127 : charInfoPackage.getEnchantEffect());
writeD(charInfoPackage.getAugmentationId());
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeF(0x00);
writeF(0x00);
writeD(charInfoPackage.getVitalityPoints());
writeD(200); //??? - vitality what
writeD(_vitalityItems);
writeD(1); //?? - maybe access type
writeC(0x00); //???
writeC(Hero.getInstance().isHero(charInfoPackage.getObjectId()) ? 0x01 : 0x00);
writeC(charInfoPackage.isHairAccessoryEnabled() ? 0x01 : 0x00);
}[/src]
В HEX виде:
Открыть спойлер
'66 лвл, хавк'
Код: 09 01 00 00 00 07 00 00 00 00 02 00 00 00 00 00 47 00 68 00 30 00 75 00 4C 00 00 00 20 C7 0D 00 5F 00 33 00 35 00 30 00 32 00 39 00 32 00 32 00 00 00 4A 73 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 38 42 02 00 0F 28 FF FF 58 F5 FF FF 43 65 F7 13 FB 04 B8 40 E5 A7 6B 3E 4A 41 A0 40 C6 92 00 00 00 00 00 00 BD DA DC 10 00 00 00 00 88 B6 EA FA 1D 52 D6 3F 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 3A 00 00 76 3A 00 00 77 3A 00 00 78 3A 00 00 78 3A 00 00 83 3A 00 00 C0 3A 00 00 FD 7D 00 00 96 3A 00 00 94 3A 00 00 95 3A 00 00 97 3A 00 00 00 00 00 00 C0 3A 00 00 C7 87 00 00 00 00 00 00 00 00 00 00 B1 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 46 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 43 65 F7 13 FB 04 B8 40 E5 A7 6B 3E 4A 41 A0 40 00 00 00 00 09 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 E7 03 00 00 01 00 00 00 00 00 00
Добавлено через 18 часов 9 минут
Открыть спойлер
'CharInfo'[src='java']writeC(0x31);
writeD(_x);
writeD(_y);
writeD(_z);
writeD(_vehicleId);
writeD(_objId);
writeS(_activeChar.getAppearance().getVisibleName());
writeH(_activeChar.getRace().ordinal());
writeC(_activeChar.getAppearance().getSex() ? 0x01 : 0x00);
writeD(_activeChar.getBaseClass());
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollItemDisplayId(slot));
writeD(_activeChar.getInventory().getPaperdollAugmentationId(slot));
writeD(_activeChar.getInventory().getPaperdollAugmentationId(slot));
writeD(_activeChar.getInventory().getPaperdollAugmentationId(slot));
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeC(_armorEnchant);
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeD(_activeChar.getInventory().getPaperdollItemVisualId(slot));
writeC(_activeChar.getPvpFlag());
writeD(_activeChar.getKarma());
writeD(_mAtkSpd);
writeD(_pAtkSpd);
writeH(_runSpd);
writeH(_walkSpd);
writeH(_swimRunSpd);
writeH(_swimWalkSpd);
writeH(_flyRunSpd);
writeH(_flyWalkSpd);
writeH(_flyRunSpd);
writeH(_flyWalkSpd);
writeF(_moveMultiplier);
writeF(_attackSpeedMultiplier);
writeF(_activeChar.getCollisionRadius());
writeF(_activeChar.getCollisionHeight());
writeD(_activeChar.getVisualHair());
writeD(_activeChar.getVisualHairColor());
writeD(_activeChar.getVisualFace());
writeS(gmSeeInvis ? "[Invisible]" : _activeChar.getAppearance().getVisibleTitle());
writeD(_activeChar.getClanId());
writeD(_activeChar.getClanCrestId());
writeD(_activeChar.getAllyId());
writeD(_activeChar.getAllyCrestId());
writeC(_activeChar.isSitting() ? 0x00 : 0x01);
writeC(_activeChar.isRunning() ? 0x01 : 0x00);
writeC(_activeChar.isInCombat() ? 0x01 : 0x00);
writeC(!_activeChar.isInOlympiadMode() && _activeChar.isAlikeDead() ? 0x01 : 0x00);
writeC(!gmSeeInvis && isInvisible() ? 0x01 : 0x00);
writeC(_activeChar.getMountType().ordinal());
writeC(_activeChar.getPrivateStoreType().getId());
short cubicSize = _activeChar.getCubics().size();
writeH(cubicSize);
for (short i=0;i<cubicSize;i++)
{
writeH(_cubicId);
}
writeC(_activeChar.isInPartyMatchRoom() ? 0x01 : 0x00);
writeC(_activeChar.isInsideZone(ZoneId.WATER) ? 1 : _activeChar.isFlyingMounted() ? 2 : 0);
writeH(_activeChar.getRecomHave());
writeD(_activeChar.getMountNpcId() == 0 ? 0 : _activeChar.getMountNpcId() + 1000000);
writeD(_activeChar.getClassId().getId());
writeD(0x00);
writeC(_activeChar.isMounted() ? 0 : _enchantLevel);
writeC(_activeChar.getTeam().getId());
writeD(_activeChar.getClanCrestLargeId());
writeC(_activeChar.isNoble() ? 1 : 0);
writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0);
writeC(_activeChar.isFishing() ? 1 : 0);
writeD(_activeChar.getFishx());
writeD(_activeChar.getFishy());
writeD(_activeChar.getFishz());
writeD(_activeChar.getAppearance().getNameColor());
writeD(_heading);
writeC(_activeChar.getPledgeClass());
writeH(_activeChar.getPledgeType());
writeD(_activeChar.getAppearance().getTitleColor());
writeC(_activeChar.isCursedWeaponEquipped() ? CursedWeaponsManager.getInstance().getLevel(_activeChar.getCursedWeaponEquippedId()) : 0);
writeD(_activeChar.getClanId() > 0 ? _activeChar.getClan().getReputationScore() : 0);
writeD(_activeChar.getTransformationDisplayId());
writeD(_activeChar.getAgathionId());
writeC(0x01);
writeD((int) Math.round(_activeChar.getCurrentCp()));
writeD(_activeChar.getMaxHp());
writeD((int) Math.round(_activeChar.getCurrentHp()));
writeD(_activeChar.getMaxMp());
writeD((int) Math.round(_activeChar.getCurrentMp()));
writeC(0x00);
int abnormalSize = abnormalVisualEffects.size();
writeD(abnormalSize);
for (int i=0;i<abnormalSize;i++)
{
writeH(abnormalVisualEffect.getClientId());
}
writeC(0x00);
writeC(_activeChar.isHairAccessoryEnabled() ? 0x01 : 0x00);
writeC(_activeChar.getAbilityPointsUsed());[/src]
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
04-30-2015, 12:24 AM
(Сообщение последний раз редактировалось: 04-30-2015, 02:27 PM Daan Raven.)
Не поделитесь опкодами 24 протокола? Видать ExUserInfoEquipSlot сдвинулся или изменилась его структура.
Изменилась структура ExUserInfoEquipSlot - добавилось 4 байта в блок. Теперь размер блока не 18, а 22. Что именно добавилось, D/2H/4C, не знаю. Скорее всего D.
|