Перейти к содержанию
Авторизация  
l2inplay

Unknown Opcode

Рекомендуемые сообщения

Помогите решить проблему или хотя бы напутствие на путь истинный)

При попытке логина клиента к логин серверу такая ошибка!

 

[18/05 16:04:55] Unknown Opcode: 14 for state: AUTHED_LOGIN

 

Подскажите в чем проблема и если возможно путь ее решения!

Спасибо за ранее!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите решить проблему или хотя бы напутствие на путь истинный)

При попытке логина клиента к логин серверу такая ошибка!

 

[18/05 16:04:55] Unknown Opcode: 14 for state: AUTHED_LOGIN

 

Подскажите в чем проблема и если возможно путь ее решения!

Спасибо за ранее!

Какая сборка стоит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие хроники? Может патч кривой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие хроники? Может патч кривой?

Сборка Mobius . А вот клиент патчил EP 2.5 – Infinite Odyssey - Hymn of the Soul. То есть как я понял каких то пакетов не хватает в ядре?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

угу сервер не знает такого опкода 14

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

угу сервер не знает такого опкода 14

А где капатся нужно ну в каком .java файле это возможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где капатся нужно ну в каком .java файле это возможно?

GamePacketHandler.java

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

GamePacketHandler.java

Тогда еще вопрос в чем суть и как добавить данный opcode?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда еще вопрос в чем суть и как добавить данный opcode?

Что-бы добавить опкод нужно понимать от какого он пакета..  На деле все выглядит так.

 

                                              case 0x13:

                                                        msg = new NewCharacter();

                                                         break;

 

красное это опкод

 

оранжевое это пакет которому он пренадлежит..

Изменено пользователем 3dxxx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-бы добавить опкод нужно понимать от какого он пакета..  На деле все выглядит так.

 

                                              case 0x13:

                                                        msg = new NewCharacter();

                                                         break;

 

красное это опкод

 

оранжевое это пакет которому он пренадлежит..

А ну тогда понял нужно раскавырять пакетку клиента и тогда вуа ля получим оп код!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот у меня такие два файла я ядре логина!

 

 

 

L2JGameServerPacketHandler

L2LoginPacketHandler

не-не-не смотреть за вас и делать я ничего не буду хотите заниматься учебник по java и вперед)

Изменено пользователем 3dxxx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ну тогда понял нужно раскавырять пакетку клиента и тогда вуа ля получим оп код!

ну в целом да.. а на деле нужны навыки специфические особенно если учесть что в пследних версиях клиента кореяки спрятали пакетку немного глубже в клиенте так что ее терь сложновато достать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Патч кривой значит. Логин сервер не менялся еще со времен как минимум интерлюда (возможно и ранних версий).

+ С сурсом мобиуса получишь либо крит, либо кривое отображение после выбора сервера, так как они сейчас занимаются Ertheia и Classic 19 протокол.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как сказать вот господа уже выложили

  writeC(0x32);
    writeD(_activeChar.getObjectId());
    writeD(_initSize);
    writeH(23);
    writeC(_masks);
    writeC(_masks);
    writeC(_masks);
    writeD(_relation);
    writeH(16 + (_activeChar.getName().length() * 2));
    writeH(??);
    writeS(_activeChar.getName());
    writeC(_activeChar.isGM() ? 0x01 : 0x00);
    writeC(_activeChar.getRace().ordinal());
    writeC(_activeChar.getAppearance().getSex() ? 0x01 : 0x00);
    writeH(_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));
    writeS(_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);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Как сказать вот господа уже выложили

  writeC(0x32);
    writeD(_activeChar.getObjectId());
    writeD(_initSize);
    writeH(23);
    writeC(_masks);
    writeC(_masks);
    writeC(_masks);
    writeD(_relation);
    writeH(16 + (_activeChar.getName().length() * 2));
    writeH(??);
    writeS(_activeChar.getName());
    writeC(_activeChar.isGM() ? 0x01 : 0x00);
    writeC(_activeChar.getRace().ordinal());
    writeC(_activeChar.getAppearance().getSex() ? 0x01 : 0x00);
    writeH(_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));
    writeS(_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);

Я дико извиняюсь но я в плане ядра не особо профи, больше по дата паку, можете хотя бы показать что именно мне искать в дампе , точнее как мне вычислить этот opcode 14! Заранее спасибо! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пост выше со структурой вообще не в тему. При чем здесь UI?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не-не-не смотреть за вас и делать я ничего не буду хотите заниматься учебник по java и вперед)

а ты ничего сделать за него и не сможешь, ибо выше херню еще ту спорол, так что успокой свои амбиций мего программиста 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пост выше со структурой вообще не в тему. При чем здесь UI?

 

Ну у него проблема с пушками =)

Еще а это UI и CI

 

Только надо норм патч и дернуть с него opcod 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем решил проблему, что-то из этого подействовало (скорее всего первое):

UsePIAgreement=False

UseEMailAccount=False

Изменено пользователем DiQuero

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...