Pro100Sata 0 Опубликовано 12 апреля, 2016 Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 12 апреля, 2016 В 12.04.2016 в 12:17, Pro100Sata сказал: Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. Сурс есть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LeZGiN 1 Опубликовано 13 апреля, 2016 В 12.04.2016 в 12:17, Pro100Sata сказал: Здравствуйте, помогите пожалуйста с саб классами... В сборке 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 В 12.04.2016 в 12:17, Pro100Sata сказал: Здравствуйте, помогите пожалуйста с саб классами... В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает... # Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0) AltSubAdd = 2 Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить. gama server config custom Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 В 12.04.2016 в 13:35, SmokiMo сказал: Сурс есть? Да, есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 В 13.04.2016 в 08:52, LeZGiN сказал: # ---------------------------------------------- # Управление суб-классами # ---------------------------------------------- # Разрешить игроку добавить суб-класс без прохождения квеста # По умолчанию: 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 В 13.04.2016 в 09:34, Pro100Sata сказал: Да, есть. Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 13 апреля, 2016 В 13.04.2016 в 10:14, SmokiMo сказал: Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. Не могу найти где там увеличить количество саб классов... =( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 15 апреля, 2016 В 15.04.2016 в 13:12, P1ckw1ck сказал: По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте. l2pcinstance нету такого файла... может он как-то по другому называется? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 Завтра буду дома скину все что связано с сабами. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
P1ckw1ck 158 Опубликовано 15 апреля, 2016 А проще юзните поиск через notepad по всему сурсу,по конфигу сабкласов, по их кол-во, в 2ух класах он должен найти конфиг, если реализация есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pro100Sata 0 Опубликовано 15 апреля, 2016 В 15.04.2016 в 14:54, P1ckw1ck сказал: А проще юзните поиск через 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 В 16.04.2016 в 01:55, P1ckw1ck сказал: Ну у меня вот такая реализация. в 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 В 17.04.2016 в 14:41, P1ckw1ck сказал: исходники есть? Да, есть. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 17 апреля, 2016 В 16.04.2016 в 18:35, Pro100Sata сказал: L2PcInstance у меня это-го файла нету... искал через поиск))))) L2PcInstance.java = Player.java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты