vadim346 27 Опубликовано 9 октября, 2013 Добрый вечер всем. У меня возникла проблема хочу вывести в config увеличение времени баффов только не пойму где что нужно сделать. Прошу вашей помощи очень. + с меня Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 Я так понимаю под aCis сборку ?) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Да Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 Минуту, у меня есть diff патч. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Знаете как это сделать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Буду очень благодарен вам Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 Да конечно. Сам пользуюсь aCis'ом. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 да мне тоже нравится эта команда Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 ну что нашли? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 ну что нашли? Немного подождите пожалуйста. У меня сейчас плохое интернет соединение. Поэтому так долго все загружает. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 аа извиняюсь что тороплю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 я вам поставил + 3 раза Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 (изменено) + это добавить в код. - это удалить из кода. И так делаем следующее: Сначала открываем DocumentBase.java: @@ -26,6 +26,7 @@ import javolution.util.FastList; import javolution.util.FastMap; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.model.ChanceCondition; import net.sf.l2j.gameserver.model.L2Skill; @@ -239,7 +240,28 @@ count = Integer.decode(getValue(attrs.getNamedItem("count").getNodeValue(), template)); if (attrs.getNamedItem("time") != null) + { time = Integer.decode(getValue(attrs.getNamedItem("time").getNodeValue(), template)); + if(Config.ENABLE_MODIFY_SKILL_DURATION) + { + if(Config.SKILL_DURATION_LIST.containsKey(((L2Skill) template).getId())) + { + if(((L2Skill) template).getLevel() < 100) + { + time = Config.SKILL_DURATION_LIST.get(((L2Skill) template).getId()); + } + else if(((L2Skill) template).getLevel() >= 100 && ((L2Skill) template).getLevel() < 140) + { + time += Config.SKILL_DURATION_LIST.get(((L2Skill) template).getId()); + } + else if(((L2Skill) template).getLevel() > 140) + { + time = Config.SKILL_DURATION_LIST.get(((L2Skill) template).getId()); + } + } + } + + } else if (((L2Skill) template).getBuffDuration() > 0) time = ((L2Skill) template).getBuffDuration() / 1000 / count; Далее Config.java: @@ -30,6 +30,8 @@ import java.util.StringTokenizer; import java.util.logging.Logger; +import javolution.util.FastMap; + import net.sf.l2j.gameserver.util.FloodProtectorConfig; import net.sf.l2j.util.StringUtil; @@ -485,6 +487,8 @@ /** Buffs */ public static boolean STORE_SKILL_COOLTIME; public static byte BUFFS_MAX_AMOUNT; + public static boolean ENABLE_MODIFY_SKILL_DURATION; + public static FastMap<Integer, Integer> SKILL_DURATION_LIST; // -------------------------------------------------- // Server @@ -1247,6 +1251,39 @@ BUFFS_MAX_AMOUNT = Byte.parseByte(players.getProperty("MaxBuffsAmount", "20")); STORE_SKILL_COOLTIME = Boolean.parseBoolean(players.getProperty("StoreSkillCooltime", "true")); + ENABLE_MODIFY_SKILL_DURATION = Boolean.parseBoolean(players.getProperty("EnableModifySkillDuration", "false")); + if(ENABLE_MODIFY_SKILL_DURATION) + { + SKILL_DURATION_LIST = new FastMap<Integer, Integer>(); + + String[] propertySplit; + propertySplit = players.getProperty("SkillDurationList", "").split(";"); + + for(String skill : propertySplit) + { + String[] skillSplit = skill.split(","); + if(skillSplit.length != 2) + { + System.out.println("[skillDurationList]: invalid config property -> SkillDurationList \"" + skill + "\""); + } + else + { + try + { + SKILL_DURATION_LIST.put(Integer.parseInt(skillSplit[0]), Integer.parseInt(skillSplit[1])); + } + catch(NumberFormatException nfe) + { + nfe.printStackTrace(); + + if(!skill.equals("")) + { + System.out.println("[skillDurationList]: invalid config property -> SkillList \"" + skillSplit[0] + "\"" + skillSplit[1]); + } + } + } + } + } } catch (Exception e) { И players.properties: +# -------------------------------------- +# Alternative time buffs - +# -------------------------------------- +# When the reads, buff, and their duration. +# Format: id_skill time; id_skill2, time2 ;.... +# Example: +# SkillDurationList = 264,3600; 265,3600; 266,3600; 267,3600; 268,3600; \ +# 269.3600, 270.3600, 304.3600, 305.1200, 306.3600, 308.3600, 349.3600; \ +# 363.3600, 364.3600 +# Default: false +EnableModifySkillDuration = False +SkillDurationList = Позже сделаю мануал. Сразу: Где бьет ошибку на javolution.util.FastMap; , меняем на java.util.HashMap; Ну и соответственно в коде FastMap меняем на HashMap. Изменено 9 октября, 2013 пользователем SoFace 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Спасибо большое за diff Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Все сделал работает все отлично. Спасибо еще раз. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 9 октября, 2013 Все сделал работает все отлично. Спасибо еще раз. Совет. Если будете добавлять всякие фичи в сборку. Не используйте библиотеку javolution и ее классы. Т.к. лишняя нагрузка на ЦП. Лучше лишний раз спросить. В aCis: FastMap -> HashMap FastList -> ArrayList TextBuilder -> StringBuilder и т.д. ) 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vadim346 27 Опубликовано 9 октября, 2013 Спасибо за совет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 28 января, 2014 Автоматическое сообщение Эта тема была перемещена из "Форум для новичков" в "Архив старых тем". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты