Pro100Sata 0 Опубликовано 12 апреля, 2016 Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 12 апреля, 2016 Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. Сурс есть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LeZGiN 1 Опубликовано 13 апреля, 2016 Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. # ---------------------------------------------- # Управление суб-классами # ---------------------------------------------- # Разрешить игроку добавить суб-класс без прохождения квеста # По умолчанию: false AltSubClassWithoutQuests = true # Разрешить игроку добавить суб-класс не проходя квест, но игрок должен иметь итемы (Destiny, Mimir's Elixir) # По умолчанию: false SubclassWithItemAndNoQuest = false # Разрешить игроку добавить суб-класс за определенной вид итемов # По умолчанию: false SubclassWithCustomItem = true SubclassWithCustomItemID = 57 SubclassWithCustomItemCount = 1 # Если true, то скилы от предыдущего суб-класса не будут удалены # default = false AltSubClassSkills = false # Максимальное количество добавленных суб-классов # По умолчанию: 3 MaxSubClass = 5 # Какой максимальный уровень может получить суб-класс # По умолчанию: 80 SubclassMaxLevel = 80 # Какой уровень получает новый суб-класс # По умолчанию: 40 SublcassInitLevel = 40 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LeZGiN 1 Опубликовано 13 апреля, 2016 Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. gama server config custom Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 Сурс есть? Да, есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 # ---------------------------------------------- # Управление суб-классами # ---------------------------------------------- # Разрешить игроку добавить суб-класс без прохождения квеста # По умолчанию: false AltSubClassWithoutQuests = true # Разрешить игроку добавить суб-класс не проходя квест, но игрок должен иметь итемы (Destiny, Mimir's Elixir) # По умолчанию: false SubclassWithItemAndNoQuest = false # Разрешить игроку добавить суб-класс за определенной вид итемов # По умолчанию: false SubclassWithCustomItem = true SubclassWithCustomItemID = 57 SubclassWithCustomItemCount = 1 # Если true, то скилы от предыдущего суб-класса не будут удалены # default = false AltSubClassSkills = false # Максимальное количество добавленных суб-классов # По умолчанию: 3 MaxSubClass = 5 # Какой максимальный уровень может получить суб-класс # По умолчанию: 80 SubclassMaxLevel = 80 # Какой уровень получает новый суб-класс # По умолчанию: 40 SublcassInitLevel = 40 У меня нету такого в конфиге.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 13 апреля, 2016 Да, есть. Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. Не могу найти где там увеличить количество саб классов... =( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 15 апреля, 2016 По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте. l2pcinstance нету такого файла... может он как-то по другому называется? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 Завтра буду дома скину все что связано с сабами. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 А проще юзните поиск через notepad по всему сурсу,по конфигу сабкласов, по их кол-во, в 2ух класах он должен найти конфиг, если реализация есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 15 апреля, 2016 А проще юзните поиск через notepad по всему сурсу,по конфигу сабкласов, по их кол-во, в 2ух класах он должен найти конфиг, если реализация есть. Искал уже так... реализация вроде как и есть.. но не работает. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 16 апреля, 2016 (изменено) Ну у меня вот такая реализация. в L2PcInstance public boolean addSubClass(int classId, int classIndex) { if (!_subclassLock.tryLock()) return false; try { if (getTotalSubClasses() == Config.MAX_SUB_CLASSES || classIndex == 0) return false; if (getSubClasses().containsKey(classIndex)) return false; // Note: Never change _classIndex in any method other than setActiveClass(). SubClass newClass = new SubClass(); newClass.setClassId(classId); newClass.setClassIndex(classIndex); try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement(ADD_CHAR_SUBCLASS); statement.setInt(1, getObjectId()); statement.setInt(2, newClass.getClassId()); statement.setLong(3, newClass.getExp()); statement.setInt(4, newClass.getSp()); statement.setInt(5, newClass.getLevel()); statement.setInt(6, newClass.getClassIndex()); // <-- Added statement.execute(); statement.close(); } catch (Exception e) { _log.warning("WARNING: Could not add character sub class for " + getName() + ": " + e); return false; } // Commit after database INSERT incase exception is thrown. getSubClasses().put(newClass.getClassIndex(), newClass); ClassId subTemplate = ClassId.values()[classId]; Collection<L2SkillLearn> skillTree = SkillTreeTable.getInstance().getAllowedSkills(subTemplate); if (skillTree == null) return true; final Map<Integer, L2Skill> prevSkillList = new LinkedHashMap<>(); for (L2SkillLearn skillInfo : skillTree) { if (skillInfo.getMinLevel() <= 40) { L2Skill prevSkill = prevSkillList.get(skillInfo.getId()); L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getId(), skillInfo.getLevel()); if (prevSkill != null && (prevSkill.getLevel() > newSkill.getLevel())) continue; prevSkillList.put(newSkill.getId(), newSkill); storeSkill(newSkill, prevSkill, classIndex); } } return true; } finally { _subclassLock.unlock(); } } L2VilladgeMasterInstance case 1: // Add Subclass - Initial // Avoid giving player an option to add a new sub class, if they have three already. if(player.getTotalSubClasses() == Config.MAX_SUB_CLASSES) { player.sendMessage("You can now only change one of your current sub classes."); return; } subsAvailable = getAvailableSubClasses(player); if(subsAvailable != null && !subsAvailable.isEmpty()) { content.append("Add Subclass:<br>Which sub class do you wish to add?<br>"); for(PlayerClass subClass : subsAvailable) { content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 4 " + subClass.ordinal() + "\" msg=\"1268;" + formatClassForDisplay(subClass) + "\">" + formatClassForDisplay(subClass) + "</a><br>"); } } else { player.sendMessage("There are no sub classes available at this time."); return; } break; Обратите внимание в конфиге может быть MaxSubClasses, а в коде MAX_SUB_CLASSES. Изменено 16 апреля, 2016 пользователем P1ckw1ck Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 16 апреля, 2016 Ну у меня вот такая реализация. в L2PcInstance public boolean addSubClass(int classId, int classIndex) { if (!_subclassLock.tryLock()) return false; try { if (getTotalSubClasses() == Config.MAX_SUB_CLASSES || classIndex == 0) return false; if (getSubClasses().containsKey(classIndex)) return false; // Note: Never change _classIndex in any method other than setActiveClass(). SubClass newClass = new SubClass(); newClass.setClassId(classId); newClass.setClassIndex(classIndex); try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement(ADD_CHAR_SUBCLASS); statement.setInt(1, getObjectId()); statement.setInt(2, newClass.getClassId()); statement.setLong(3, newClass.getExp()); statement.setInt(4, newClass.getSp()); statement.setInt(5, newClass.getLevel()); statement.setInt(6, newClass.getClassIndex()); // <-- Added statement.execute(); statement.close(); } catch (Exception e) { _log.warning("WARNING: Could not add character sub class for " + getName() + ": " + e); return false; } // Commit after database INSERT incase exception is thrown. getSubClasses().put(newClass.getClassIndex(), newClass); ClassId subTemplate = ClassId.values()[classId]; Collection<L2SkillLearn> skillTree = SkillTreeTable.getInstance().getAllowedSkills(subTemplate); if (skillTree == null) return true; final Map<Integer, L2Skill> prevSkillList = new LinkedHashMap<>(); for (L2SkillLearn skillInfo : skillTree) { if (skillInfo.getMinLevel() <= 40) { L2Skill prevSkill = prevSkillList.get(skillInfo.getId()); L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getId(), skillInfo.getLevel()); if (prevSkill != null && (prevSkill.getLevel() > newSkill.getLevel())) continue; prevSkillList.put(newSkill.getId(), newSkill); storeSkill(newSkill, prevSkill, classIndex); } } return true; } finally { _subclassLock.unlock(); } } L2VilladgeMasterInstance case 1: // Add Subclass - Initial // Avoid giving player an option to add a new sub class, if they have three already. if(player.getTotalSubClasses() == Config.MAX_SUB_CLASSES) { player.sendMessage("You can now only change one of your current sub classes."); return; } subsAvailable = getAvailableSubClasses(player); if(subsAvailable != null && !subsAvailable.isEmpty()) { content.append("Add Subclass:<br>Which sub class do you wish to add?<br>"); for(PlayerClass subClass : subsAvailable) { content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 4 " + subClass.ordinal() + "\" msg=\"1268;" + formatClassForDisplay(subClass) + "\">" + formatClassForDisplay(subClass) + "</a><br>"); } } else { player.sendMessage("There are no sub classes available at this time."); return; } break; Обратите внимание в конфиге может быть MaxSubClasses, а в коде MAX_SUB_CLASSES. L2PcInstance у меня это-го файла нету... искал через поиск Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 17 апреля, 2016 исходники есть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 17 апреля, 2016 исходники есть? Да, есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 17 апреля, 2016 L2PcInstance у меня это-го файла нету... искал через поиск))))) L2PcInstance.java = Player.java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты