Перейти к содержанию
Авторизация  
vadim346

Помогите Очень Нужно

Рекомендуемые сообщения

Добрый вечер всем. У меня возникла проблема хочу вывести в config увеличение времени баффов только не пойму где что нужно сделать. Прошу вашей помощи очень. + с меня

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю под aCis сборку ?)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Минуту, у меня есть diff патч.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да конечно. Сам пользуюсь aCis'ом. :)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну что нашли?

Немного подождите пожалуйста. У меня сейчас плохое интернет соединение. Поэтому так долго все загружает.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+ это добавить в код.

- это удалить из кода.

 

И так делаем следующее:

Сначала открываем 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.

Изменено пользователем SoFace
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все сделал работает все отлично. Спасибо еще раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все сделал работает все отлично. Спасибо еще раз.

Совет. Если будете добавлять всякие фичи в сборку. Не используйте библиотеку javolution и ее классы. Т.к. лишняя нагрузка на ЦП. Лучше лишний раз спросить.

В aCis:

FastMap -> HashMap

FastList -> ArrayList

TextBuilder -> StringBuilder

и т.д. )

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...