Ivan123456789 0 Опубликовано 28 августа, 2014 (изменено) В окне выбора персонаже они все серые не как не могу исправить что нужно поправить тут ? Артея 603 протокол public class CharacterSelectionInfo extends L2GameServerPacket { // dc cd SdSddddddddddffdQfddddddddddddddddddddddddddddddddddddddddffdddchhdddddffdd private static final Logger _log = LoggerFactory.getLogger(CharacterSelectionInfo.class); private final String _loginName; private final int _sessionId; private final CharSelectionInfo charSelectionInfo; public CharacterSelectionInfo(String loginName, int sessionId) { _sessionId = sessionId; _loginName = loginName; charSelectionInfo = loadCharacterSelectInfo(loginName); } public CharSelectionInfo getCharInfo() { return charSelectionInfo; } @Override protected final void writeImpl() { int size = charSelectionInfo.size(); writeC(0x09); writeD(size); writeD(0x07); writeC(0x00); writeC(0x01); writeC(0x02);// хз у гв всегда 2 поступало writeD(0x00); long lastAccess = -1L; int lastUsed = -1; for (CharSelectInfoPackage info : charSelectionInfo) { if (lastAccess < info.getLastAccess()) { lastAccess = info.getLastAccess(); lastUsed++; } } int i = 0; for (CharSelectInfoPackage charInfoPackage : charSelectionInfo) { writeS(charInfoPackage.getName()); writeD(charInfoPackage.getCharId()); // ? writeS(_loginName); writeD(_sessionId); writeD(charInfoPackage.getClanId()); writeD(0x00); // ?? writeD(charInfoPackage.getSex()); writeD(charInfoPackage.getRace()); writeD(charInfoPackage.getBaseClassId()); writeD(0x01); // active ?? writeD(charInfoPackage.getX()); writeD(charInfoPackage.getY()); writeD(charInfoPackage.getZ()); writeF(charInfoPackage.getCurrentHp()); writeF(charInfoPackage.getCurrentMp()); writeD(charInfoPackage.getSp()); writeQ(charInfoPackage.getExp()); int lvl = charInfoPackage.getLevel(); writeF(Experience.getExpPercent(lvl, charInfoPackage.getExp())); writeD(lvl); writeD(charInfoPackage.getKarma()); writeD(charInfoPackage.getPk()); writeD(charInfoPackage.getPvP()); // 468 - ? (7) writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); for (int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) { writeD(charInfoPackage.getPaperdollItemId(PAPERDOLL_ID)); } // New Protocol 411 writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); // End Protocol 411 writeD(charInfoPackage.getHairStyle()); writeD(charInfoPackage.getHairColor()); writeD(charInfoPackage.getFace()); writeF(charInfoPackage.getMaxHp()); // hp max writeF(charInfoPackage.getMaxMp()); // mp max writeD(charInfoPackage.getAccessLevel() > -100 ? charInfoPackage.getDeleteTimer() : -1); writeD(charInfoPackage.getClassId()); writeD(i == lastUsed ? 1 : 0); writeC(Math.min(charInfoPackage.getPaperdollEnchantEffect(Inventory.PAPERDOLL_RHAND), 127)); writeD(charInfoPackage.getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND)); int weaponId = charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND); if (weaponId == 8190) { writeD(301); } else if (weaponId == 8689) { writeD(302); } else { writeD(0x00); } // TODO: Pet info? writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeF(0x00); writeF(0x00); writeD(charSelectionInfo.getVitalityPoints()); writeD(charSelectionInfo.getPremiumAccess() > 0 ? 300 : 200); // Vitality percent writeD(5); // Vitaliti items count writeD(charInfoPackage.getAccessLevel() > -100 ? 0x01 : 0x00); writeC(0x00); writeC(0x00); } } public static CharSelectionInfo loadCharacterSelectInfo(String loginName) { CharSelectionInfo charSelectionInfo = new CharSelectionInfo(); Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT * FROM characters AS c LEFT JOIN character_subclasses AS cs ON (c.obj_Id=cs.char_obj_id AND cs.active=1) WHERE account_name=? LIMIT 7"); statement.setString(1, loginName); rset = statement.executeQuery(); while (rset.next()) { // fills the package charSelectionInfo.addSelectionInfo(restoreChar(rset)); } DbUtils.closeQuietly(statement, rset); statement = con.prepareStatement("SELECT `points` FROM `vitality_points` WHERE `account_name`=?"); statement.setString(1, loginName); rset = statement.executeQuery(); if (rset.next()) { int points = rset.getInt(1); charSelectionInfo.setVitalityPoints(points); } } catch (Exception e) { _log.error("could not restore charinfo:", e); } finally { DbUtils.closeQuietly(con, statement, rset); } return charSelectionInfo; } private static int[] restoreBaseClassId(int objId) { int[] classId = new int[2]; Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT class_id, default_class_id FROM character_subclasses WHERE char_obj_id=? AND type=" + SubClassType.BASE_CLASS.ordinal()); statement.setInt(1, objId); rset = statement.executeQuery(); while (rset.next()) { classId[0] = rset.getInt("class_id"); classId[1] = rset.getInt("default_class_id"); } } catch (Exception e) { _log.error("could not restore base class id:", e); } finally { DbUtils.closeQuietly(con, statement, rset); } return classId; } private static CharSelectInfoPackage restoreChar(ResultSet chardata) { CharSelectInfoPackage charInfopackage = null; try { int objectId = chardata.getInt("obj_Id"); int classid = chardata.getInt("class_id"); int[] baseClassId = new int[] { classid, chardata.getInt("default_class_id") }; boolean useBaseClass = chardata.getInt("type") == SubClassType.BASE_CLASS.ordinal(); if (!useBaseClass) { baseClassId = restoreBaseClassId(objectId); } Race race = ClassId.VALUES[baseClassId[1]].getRace(); String name = chardata.getString("char_name"); charInfopackage = new CharSelectInfoPackage(objectId, name); charInfopackage.setLevel(chardata.getInt("level")); charInfopackage.setMaxHp(chardata.getInt("maxHp")); charInfopackage.setCurrentHp(chardata.getDouble("curHp")); charInfopackage.setMaxMp(chardata.getInt("maxMp")); charInfopackage.setCurrentMp(chardata.getDouble("curMp")); charInfopackage.setX(chardata.getInt("x")); charInfopackage.setY(chardata.getInt("y")); charInfopackage.setZ(chardata.getInt("z")); charInfopackage.setPk(chardata.getInt("pkkills")); charInfopackage.setPvP(chardata.getInt("pvpkills")); charInfopackage.setFace(chardata.getInt("face")); charInfopackage.setHairStyle(chardata.getInt("hairstyle")); charInfopackage.setHairColor(chardata.getInt("haircolor")); charInfopackage.setSex(chardata.getInt("sex")); charInfopackage.setExp(chardata.getLong("exp")); charInfopackage.setSp(chardata.getInt("sp")); charInfopackage.setClanId(chardata.getInt("clanid")); charInfopackage.setKarma(chardata.getInt("karma")); charInfopackage.setRace(race.ordinal()); charInfopackage.setClassId(classid); charInfopackage.setBaseClassId(baseClassId[0]); long deletetime = chardata.getLong("deletetime"); int deletedays = 0; if (Config.DELETE_DAYS > 0) { if (deletetime > 0) { deletetime = (int) ((System.currentTimeMillis() / 1000) - deletetime); deletedays = (int) (deletetime / 3600 / 24); if (deletedays >= Config.DELETE_DAYS) { CharacterDAO.getInstance().deleteCharByObjId(objectId); return null; } deletetime = (Config.DELETE_DAYS * 3600 * 24) - deletetime; } else { deletetime = 0; } } charInfopackage.setDeleteTimer((int) deletetime); charInfopackage.setLastAccess(chardata.getLong("lastAccess") * 1000L); charInfopackage.setAccessLevel(chardata.getInt("accesslevel")); if ((charInfopackage.getAccessLevel() < 0) && !AutoBan.isBanned(objectId)) { charInfopackage.setAccessLevel(0); } } catch (Exception e) { _log.error("", e); } return charInfopackage; } } Изменено 28 августа, 2014 пользователем Ivan123456789 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 28 августа, 2014 Зачем браться за исходники, если Java не знаешь? Идиотизм, имхо. + Отсутствуют знания структуры пакета. И если не ошибаюсь, это чарселектион от Линдвиора. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ivan123456789 0 Опубликовано 28 августа, 2014 Зачем браться за исходники, если Java не знаешь? Идиотизм, имхо. + Отсутствуют знания структуры пакета. И если не ошибаюсь, это чарселектион от Линдвиора. ху из ху знаю его структура // dc cd SdSddddddddddffdQfddddddddddddddddddddddddddddddddddddddddffdddchhdddddffdd я составить правельно не могу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 28 августа, 2014 ху из ху знаю его структура // dc cd SdSddddddddddffdQfddddddddddddddddddddddddddddddddddddddddffdddchhdddddffdd я составить правельно не могу Это структура Линдвиоровского чарселектионинфо. Эм, не побоюсь спросить, а каким образом ты его составляешь то? Ctrl+C -> Ctrl+V? Мой тебе совет: если уж и приспичило ла2 заниматься, то для начала выучи яву, основные библиотеки, потом структуру исходников, а потом уже заниматься ими. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ivan123456789 0 Опубликовано 28 августа, 2014 Это структура Линдвиоровского чарселектионинфо. Эм, не побоюсь спросить, а каким образом ты его составляешь то? Ctrl+C -> Ctrl+V? Мой тебе совет: если уж и приспичило ла2 заниматься, то для начала выучи яву, основные библиотеки, потом структуру исходников, а потом уже заниматься ими. так и знал что не та структура ... да я библиотеки знаю структуру не много а ты можешь мне скинуть структуру по 603 протоколу в пм тока Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Becass 38 Опубликовано 28 августа, 2014 так и знал что не та структура ... да я библиотеки знаю структуру не много а ты можешь мне скинуть структуру по 603 протоколу в пм тока А зачем изобретать велосипед, если в сурсах JTW это есть и прекрасно работает? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 28 августа, 2014 Ну у JTW только, пожалуй, базовые пакеты, честно скопипасченные, и можно выпилить. И то, там CharSI в таком состоянии, что увы и ах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ivan123456789 0 Опубликовано 29 августа, 2014 (изменено) Ну у JTW только, пожалуй, базовые пакеты, честно скопипасченные, и можно выпилить. И то, там CharSI в таком состоянии, что увы и ах. вот вот полностью с тобой согласен с JWT брать не чего все что мог я взял только UserInfo и можно уже диалоги делать Изменено 29 августа, 2014 пользователем Ivan123456789 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
oneoloki 0 Опубликовано 29 августа, 2014 ivan you would help me a mano thing sends me pm or add my skype ae demytri2006@hotmail.com вот вот полностью с тобой согласен с JWT брать не чего все что мог я взял только UserInfo и можно уже диалоги делать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ivan123456789 0 Опубликовано 29 августа, 2014 (изменено) Пакет написал работает как часы , тема закрыта ищу инфу о пакете UserInfo в пишите влс точнее от 29 мне мстит 1 школьник из http://dev.lineage-2.me/ Atures зовут у админа на сосал чтоб мне бан дали лс сообщений Изменено 29 августа, 2014 пользователем Ivan123456789 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
oneoloki 0 Опубликовано 29 августа, 2014 Пакет написал работает как часы , тема закрыта ищу инфу о пакете UserInfo в пишите влс точнее от 29 мне мстит 1 школьник из http://dev.lineage-2.me/ Atures зовут у админа на сосал чтоб мне бан дали лс сообщений site offline would help me if I get stuck in the loading screen ertheia not pass the server think it's something in the UserInfo and CharInfo and maybe EnterWorld loading screen please help me on this bro Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
oneoloki 0 Опубликовано 29 августа, 2014 (изменено) site offline would help me if I get stuck in the loading screen ertheia not pass the server think it's something in the UserInfo and CharInfo and maybe EnterWorld loading screen please help me on this bro Изменено 29 августа, 2014 пользователем oneoloki Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
oneoloki 0 Опубликовано 29 августа, 2014 please help for packest 603 UserInfo e CharInfo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
localhost 715 Опубликовано 29 августа, 2014 <strong class='bbc'>Автоматическое сообщение</strong><br /><br /><br />Эта тема была перемещена из "Ядро" в "Архив старых тем". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты