ndex: /L2jdev/config/l2jmods.properties
===================================================================
--- /L2jdev/config/l2jmods.properties (revision 39)
+++ /L2jdev/config/l2jmods.properties (revision 41)
@@ -5,2 +5,8 @@
# PK Announcements:
AnnouncePk = True
+
+# Maximum Attack Speed 0
+MaxAttackSpeed = 1200
+
+# Maximum Casting Speed 0
+MaxCastingSpeed = 1400
Index: /L2jdev/src/main/java/net/sf/l2j/Config.java
===================================================================
--- /L2jdev/src/main/java/net/sf/l2j/Config.java (revision 3)
+++ /L2jdev/src/main/java/net/sf/l2j/Config.java (revision copy)
@@ -954,4 +954,6 @@
public static boolean ENCHANT_BREAK_ARMOR_CRYSTAL;
public static boolean ENCHANT_BREAK_ARMOR_BLESSED;
+ public static int MAX_PATK_SPEED;
+ public static int MAX_MATK_SPEED;
/** ************************************************* **/
@@ -1897,4 +1899,6 @@
ALT_ANNOUNCE_PK = Boolean.parseBoolean(L2JModSettings.getProperty("AnnouncePk", "False"));
+ MAX_PATK_SPEED = Integer.parseInt(L2JModSettings.getProperty("MaxAttackSpeed", "0"));
+ MAX_MATK_SPEED = Integer.parseInt(L2JModSettings.getProperty("MaxCastingSpeed", "0"));
}
@@ -2445,5 +2449,7 @@
else if (pName.equalsIgnoreCase("ChampionRewardItemID")) L2JMOD_CHAMPION_REWARD_ID = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("ChampionRewardItemQty")) L2JMOD_CHAMPION_REWARD_QTY = Integer.parseInt(pValue);
-
+ else if (pName.equalsIgnoreCase("MaxAttackSpeed")) MAX_PATK_SPEED = Integer.parseInt(pValue);
+ else if (pName.equalsIgnoreCase("MaxCastingSpeed")) MAX_MATK_SPEED = Integer.parseInt(pValue);
+
// L2JMOD Wedding System
else if (pName.equalsIgnoreCase("AllowWedding")) L2JMOD_ALLOW_WEDDING = Boolean.parseBoolean(pValue);
@@ -2461,5 +2467,5 @@
else if (pName.equalsIgnoreCase("TvTEventRunningTime")) TVT_EVENT_RUNNING_TIME = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("TvTEventParticipationNpcId")) TVT_EVENT_PARTICIPATION_NPC_ID = Integer.parseInt(pValue);
-
+
// PvP settings
else if (pName.equalsIgnoreCase("MinKarma")) KARMA_MIN_KARMA = Integer.parseInt(pValue);
Index: /L2jdev/src/main/java/net/sf/l2j/gameserver/model/L2Character.java
===================================================================
--- /L2jdev/src/main/java/net/sf/l2j/gameserver/model/L2Character.java (revision 3)
+++ /L2jdev/src/main/java/net/sf/l2j/gameserver/model/L2Character.java (revision copy)
@@ -6446,5 +6446,29 @@
public final int getMaxCp() { return getStat().getMaxCp(); }
public int getMAtk(L2Character target, L2Skill skill) { return getStat().getMAtk(target, skill); }
- public int getMAtkSpd() { return getStat().getMAtkSpd(); }
+ public final int getMAtkSps(L2Character target, L2Skill skill)
+ {
+ int matk = (int)calcStat(Stats.MAGIC_ATTACK, _template.baseMAtk, target, skill);
+ L2ItemInstance weaponInst = getActiveWeaponInstance();
+ if (weaponInst != null)
+ {
+ if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
+ matk *= 4;
+ else if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_SPIRITSHOT)
+ matk *= 2;
+ }
+ return matk;
+ }
+
+ public int getMAtkSpd()
+ {
+ int _matkspd = getStat().getMAtkSpd();
+ if (Config.MAX_MATK_SPEED > 0)
+ {
+ if (_matkspd > Config.MAX_MATK_SPEED)
+ return Config.MAX_MATK_SPEED;
+ }
+ return _matkspd;
+ }
+
public int getMaxMp() { return getStat().getMaxMp(); }
public int getMaxHp() { return getStat().getMaxHp(); }
@@ -6468,5 +6492,15 @@
public double getPDefGiants(L2Character target) { return getStat().getPDefGiants(target); }
- public int getPAtkSpd() { return getStat().getPAtkSpd(); }
+ public int getPAtkSpd()
+ {
+ int _patkspd = getStat().getPAtkSpd();
+ if (Config.MAX_PATK_SPEED > 0)
+ {
+ if (_patkspd > Config.MAX_PATK_SPEED)
+ return Config.MAX_PATK_SPEED;
+ }
+ return _patkspd;
+ }
+
public double getPAtkUndead(L2Character target) { return getStat().getPAtkUndead(target); }
public double getPDefUndead(L2Character target) { return getStat().getPDefUndead(target); }