Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

AtkSpd & CastSpd Limit

Iniciado por Swarlog, Ago 19, 2022, 12:30 AM

Tema anterior - Siguiente tema

Swarlog

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); }