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

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

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

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

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


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

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

  • Upvote 1

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


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

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

  • Upvote 1

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


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

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

  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
  В 09.10.2013 в 15:52, vadim346 сказал:

ну что нашли?

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

  • 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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
  В 09.10.2013 в 17:15, vadim346 сказал:

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

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

В aCis:

FastMap -> HashMap

FastList -> ArrayList

TextBuilder -> StringBuilder

и т.д. )

  • Upvote 2

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


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

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

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

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