ValiiLucifer 285 Опубликовано 1 декабря, 2015 Всем доброго времени суток ! Подскажите пожалуйста как убрать расу камаэль из создание персонажа,через ядро ?! public class CharacterSelectionInfo extends L2GameServerPacket { // d (SdSddddddddddffdQdddddddddddddddddddddddddddddddddddddddffdddchhd) private String _loginName; private int _sessionId; private CharSelectInfoPackage[] _characterPackages; public CharacterSelectionInfo(String loginName, int sessionId) { _sessionId = sessionId; _loginName = loginName; _characterPackages = loadCharacterSelectInfo(loginName); if(getClient() != null) getClient().setCharSelection(_characterPackages); } public CharSelectInfoPackage[] getCharInfo() { return _characterPackages; } @Override protected final void writeImpl() { int size = _characterPackages != null ? _characterPackages.length : 0; writeC(0x09); writeD(size); writeD(0x07); //Kamael, 0x07 ? writeC(0x00); //Kamael разрешает или запрещает создание игроков long lastAccess = 0L; int lastUsed = -1; for(int i = 0; i < size; i++) if(lastAccess < _characterPackages[i].getLastAccess()) { lastAccess = _characterPackages[i].getLastAccess(); lastUsed = i; } for(int i = 0; i < size; i++) { CharSelectInfoPackage charInfoPackage = _characterPackages[i]; writeS(charInfoPackage.getName()); writeD(charInfoPackage.getCharId()); // ? writeS(_loginName); writeD(_sessionId); writeD(charInfoPackage.getClanId()); writeD(0x00); // ?? writeD(charInfoPackage.getSex()); writeD(charInfoPackage.getRace()); writeD(charInfoPackage.getClassId()); writeD(0x01); // active ?? writeD(charInfoPackage.getX()); writeD(charInfoPackage.getY()); writeD(charInfoPackage.getZ()); writeF(charInfoPackage.getCurrentHp()); writeF(charInfoPackage.getCurrentMp()); writeD(charInfoPackage.getSp()); writeQ(charInfoPackage.getExp()); writeD(charInfoPackage.getLevel()); writeD(charInfoPackage.getKarma()); writeD(charInfoPackage.getPk()); writeD(charInfoPackage.getPvP()); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); writeD(0x00); for(byte PAPERDOLL_ID : UserInfo.PAPERDOLL_ORDER) writeD(charInfoPackage.getPaperdollItemId(PAPERDOLL_ID)); 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.getEnchantEffect(), 127)); writeD(0x00); // TODO AugmentationId writeD(0x00); // TODO TransformationId writeD(0x00); // npdid - 16024 Tame Tiny Baby Kookaburra A9E89C writeD(0x00); // level writeD(0x00); // ? writeD(0x00); // food? - 1200 writeF(0x00); // max Hp writeF(0x00); // cur Hp } } public static CharSelectInfoPackage[] loadCharacterSelectInfo(String loginName) { CharSelectInfoPackage charInfopackage; GArray<CharSelectInfoPackage> characterList = new GArray<CharSelectInfoPackage>(); ThreadConnection con = null; FiltredPreparedStatement statement = null; ResultSet pl_rset = null; try { con = L2DatabaseFactory.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.isBase=1) WHERE account_name=? LIMIT 7"); statement.setString(1, loginName); pl_rset = statement.executeQuery(); while(pl_rset.next()) // fills the package { charInfopackage = restoreChar(pl_rset, pl_rset); if(charInfopackage != null) characterList.add(charInfopackage); } } catch(Exception e) { _log.log(Level.WARNING, "could not restore charinfo:", e); } finally { DatabaseUtils.closeDatabaseCSR(con, statement, pl_rset); } return characterList.toArray(new CharSelectInfoPackage[characterList.size()]); } private static CharSelectInfoPackage restoreChar(ResultSet chardata, ResultSet charclass) { CharSelectInfoPackage charInfopackage = null; try { int objectId = chardata.getInt("obj_Id"); int classid = charclass.getInt("class_id"); boolean female = chardata.getInt("sex") == 1; L2PlayerTemplate templ = CharTemplateTable.getInstance().getTemplate(classid, female); if(templ == null) { _log.log(Level.WARNING, "restoreChar fail | templ == null | objectId: " + objectId + " | classid: " + classid + " | female: " + female); return null; } String name = chardata.getString("char_name"); charInfopackage = new CharSelectInfoPackage(objectId, name); charInfopackage.setLevel(charclass.getInt("level")); charInfopackage.setMaxHp(charclass.getInt("maxHp")); charInfopackage.setCurrentHp(charclass.getDouble("curHp")); charInfopackage.setMaxMp(charclass.getInt("maxMp")); charInfopackage.setCurrentMp(charclass.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(female ? 1 : 0); charInfopackage.setExp(charclass.getLong("exp")); charInfopackage.setSp(charclass.getInt("sp")); charInfopackage.setClanId(chardata.getInt("clanid")); charInfopackage.setKarma(chardata.getInt("karma")); charInfopackage.setRace(templ.race.ordinal()); charInfopackage.setClassId(classid); 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) { PlayerManager.deleteFromClan(objectId, charInfopackage.getClanId()); PlayerManager.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.log(Level.INFO, "", e); } return charInfopackage; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrDuck 5 Опубликовано 1 декабря, 2015 CharacterCreate вставляем проверку на расу, если раса пернатых шлём в лес, из клиента interface.xdat Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ValiiLucifer 285 Опубликовано 2 декабря, 2015 CharacterCreate вставляем проверку на расу, если раса пернатых шлём в лес, из клиента interface.xdat Можешь по точнее подсказать ?! public class CharacterCreate extends L2GameClientPacket { // cSdddddddddddd private String _name; private int _sex; private int _classId; private int _hairStyle; private int _hairColor; private int _face; @Override public void readImpl() { _name = readS(); readD(); // race _sex = readD(); _classId = readD(); readD(); // int readD(); // str readD(); // con readD(); // men readD(); // dex readD(); // wit _hairStyle = readD(); _hairColor = readD(); _face = readD(); } @Override public void runImpl() { for(ClassId cid : ClassId.values()) if(cid.getId() == _classId && cid.getLevel() != 1) return; if(CharNameTable.getInstance().accountCharNumber(getClient().getLoginName()) >= { sendPacket(Msg.CharacterCreateFail_REASON_TOO_MANY_CHARACTERS); return; } if(!Util.isMatchingRegexp(_name, Config.CNAME_TEMPLATE)) { sendPacket(Msg.CharacterCreateFail_REASON_16_ENG_CHARS); return; } else if(CharNameTable.getInstance().doesCharNameExist(_name)) { sendPacket(Msg.CharacterCreateFail_REASON_NAME_ALREADY_EXISTS); return; } L2Player newChar = L2Player.create(_classId, (byte) _sex, getClient().getLoginName(), _name, (byte) _hairStyle, (byte) _hairColor, (byte) _face); if(newChar == null) return; newChar.setConnected(false); sendPacket(Msg.CharacterCreateSuccess); initNewChar(getClient(), newChar); } private void initNewChar(L2GameClient client, L2Player newChar) { L2PlayerTemplate template = newChar.getTemplate(); L2Player.restoreCharSubClasses(newChar); if(Config.STARTING_ADENA > 0) newChar.addAdena(Config.STARTING_ADENA); if(ConfigSystem.getInt("StartingItem") > 0) { ItemTemplates itemTable = ItemTemplates.getInstance(); L2ItemInstance item = itemTable.createItem(ConfigSystem.getInt("StartingItem")); item.setCount(ConfigSystem.getInt("StartingItemCount")); newChar.getInventory().addItem(item); } newChar.setXYZInvisible(template.spawnLoc); if(Config.CHAR_TITLE) newChar.setTitle(Config.ADD_CHAR_TITLE); else newChar.setTitle(""); ItemTemplates itemTable = ItemTemplates.getInstance(); for(L2Item i : template.getItems()) { L2ItemInstance item = itemTable.createItem(i.getItemId()); newChar.getInventory().addItem(item); if(item.getItemId() == 5588) // tutorial book newChar.registerShortCut(new L2ShortCut(11, 0, L2ShortCut.TYPE_ITEM, item.getObjectId(), -1)); if(item.isEquipable() && (newChar.getActiveWeaponItem() == null || item.getItem().getType2() != L2Item.TYPE2_WEAPON)) newChar.getInventory().equipItem(item, false); } // Scroll of Escape: Kamael Village L2ItemInstance item = itemTable.createItem(9716); item.setCount(10); newChar.getInventory().addItem(item); // Adventurer's Scroll of Escape item = itemTable.createItem(10650); item.setCount(5); newChar.getInventory().addItem(item); for(L2SkillLearn skill : SkillTreeTable.getInstance().getAvailableSkills(newChar, newChar.getClassId())) newChar.addSkill(SkillTable.getInstance().getInfo(skill.id, skill.skillLevel), true); if(newChar.getSkillLevel(1001) > 0) // Soul Cry newChar.registerShortCut(new L2ShortCut(1, 0, L2ShortCut.TYPE_SKILL, 1001, 1)); if(newChar.getSkillLevel(1177) > 0) // Wind Strike newChar.registerShortCut(new L2ShortCut(1, 0, L2ShortCut.TYPE_SKILL, 1177, 1)); if(newChar.getSkillLevel(1216) > 0) // Self Heal newChar.registerShortCut(new L2ShortCut(2, 0, L2ShortCut.TYPE_SKILL, 1216, 1)); // add attack, take, sit shortcut newChar.registerShortCut(new L2ShortCut(0, 0, L2ShortCut.TYPE_ACTION, 2, -1)); newChar.registerShortCut(new L2ShortCut(3, 0, L2ShortCut.TYPE_ACTION, 5, -1)); newChar.registerShortCut(new L2ShortCut(10, 0, L2ShortCut.TYPE_ACTION, 0, -1)); startTutorialQuest(newChar); newChar.setCurrentHpMp(newChar.getMaxHp(), newChar.getMaxMp()); PlayerManager.saveCharToDisk(newChar); newChar.deleteMe(); // release the world of this character and it's inventory client.setCharSelection(CharacterSelectionInfo.loadCharacterSelectInfo(client.getLoginName())); } public static void startTutorialQuest(L2Player player) { Quest q = QuestManager.getQuest(255); if(q != null) q.newQuestState(player, Quest.CREATED); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrDuck 5 Опубликовано 2 декабря, 2015 (изменено) for(ClassId cid : ClassId.values()) if(cid.getId() == _classId && cid.getLevel() != 1 || cid.getRace() == Race.kamael) return; Изменено 2 декабря, 2015 пользователем mrDuck 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ValiiLucifer 285 Опубликовано 2 декабря, 2015 for(ClassId cid : ClassId.values()) if(cid.getId() == _classId && cid.getLevel() != 1 || cid.getRace() == Race.kamael) return; Ошибку выдает при компли Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrDuck 5 Опубликовано 2 декабря, 2015 Ошибку выдает при компли какую? или мне в угадайку играть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ValiiLucifer 285 Опубликовано 2 декабря, 2015 какую? или мне в угадайку играть? Извиняюсь ! compile: [javac] Compiling 1641 source files to D:\FP-Reborn\build\classes [javac] D:\FP-Reborn\java\fpr\gameserver\clientpackets\CharacterCreate.java:56: error: cannot find symbol [javac] if(cid.getId() == _classId && cid.getLevel() != 1 || cid.getRace() == Race.kamael) [javac] ^ [javac] symbol: variable Race [javac] location: class CharacterCreate [javac] 1 error BUILD FAILED D:\FP-Reborn\build.xml:51: Compile failed; see the compiler error output for details. Total time: 25 seconds Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrDuck 5 Опубликовано 2 декабря, 2015 Извиняюсь ! compile: [javac] Compiling 1641 source files to D:\FP-Reborn\build\classes [javac] D:\FP-Reborn\java\fpr\gameserver\clientpackets\CharacterCreate.java:56: error: cannot find symbol [javac] if(cid.getId() == _classId && cid.getLevel() != 1 || cid.getRace() == Race.kamael) [javac] ^ [javac] symbol: variable Race [javac] location: class CharacterCreate [javac] 1 error BUILD FAILED D:\FP-Reborn\build.xml:51: Compile failed; see the compiler error output for details. Total time: 25 seconds а добавить импорт класса Race религия не позволяет? import l2p.gameserver.model.base.Race; примерно такой ибо не знаю что у вас за сборка. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ValiiLucifer 285 Опубликовано 2 декабря, 2015 (изменено) Спасибо за помощь ! Останется сам клиент уже отредактировать Изменено 2 декабря, 2015 пользователем avangard Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 17 декабря, 2015 (изменено) offtop dell Изменено 17 декабря, 2015 пользователем LifeGame32 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ValiiLucifer 285 Опубликовано 17 декабря, 2015 offtop dell Когда я так сделал то я вообще не одного чара не смог создать ! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты