diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini b/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini index f80bbd669c..8524596834 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini +++ b/L2J_Mobius_01.0_Ertheia/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java index df5feedcb7..f630d4c98b 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java @@ -191,6 +191,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1710,6 +1711,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini b/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini index 1aadb89a1c..a4dd8a6ff3 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini +++ b/L2J_Mobius_02.5_Underground/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java index 87b6286960..541814c851 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java @@ -198,6 +198,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1731,6 +1732,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini b/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini index 1aadb89a1c..a4dd8a6ff3 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini +++ b/L2J_Mobius_03.0_Helios/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java index b93731fd89..86a2c7d47d 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java @@ -198,6 +198,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1744,6 +1745,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini index d032248e0a..095c1d3d40 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java index ceed168d13..0169cb9b52 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java @@ -198,6 +198,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1731,6 +1732,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini b/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini index 0b6f1c2bf0..6bafd3568b 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini +++ b/L2J_Mobius_05.0_Salvation/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java index 49c82ad3af..adfe13ecc5 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java @@ -205,6 +205,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1740,6 +1741,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini index 0b6f1c2bf0..6bafd3568b 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Character.ini @@ -161,6 +161,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java index 045cd2c8ef..fa777d14cd 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java @@ -205,6 +205,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1747,6 +1748,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini b/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini index 3630fe32b9..53c9ac2aef 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini +++ b/L2J_Mobius_06.0_Fafurion/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java index c9309a6989..ef446eca77 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java @@ -206,6 +206,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1782,6 +1783,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 7553b3cd9f..d508ae724b 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini index a97065441f..505e0701ce 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java index daa29ff093..da1225b3d9 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java @@ -206,6 +206,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1790,6 +1791,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java index dbd7b4fc68..16403fe4df 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini b/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini index 8e188e0831..d00954a719 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini +++ b/L2J_Mobius_08.2_Homunculus/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java index 7f51ca6a90..529d55386b 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1764,6 +1765,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java index dbd7b4fc68..16403fe4df 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini index cb9ec304d8..7754cf1437 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java index 077efa084e..4a6074d48e 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1766,6 +1767,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java index dbd7b4fc68..16403fe4df 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini b/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini index bb0ad52b48..7aab00fef6 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini +++ b/L2J_Mobius_10.1_MasterClass/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java index afd327d7e9..529f4db557 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1766,6 +1767,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 571c7d630d..143c943ec8 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/config/Character.ini b/L2J_Mobius_10.2_MasterClass/dist/game/config/Character.ini index bb0ad52b48..7aab00fef6 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/config/Character.ini +++ b/L2J_Mobius_10.2_MasterClass/dist/game/config/Character.ini @@ -165,6 +165,10 @@ MpVampiricAttackWorkWithMelee = True # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 80 +BlowRateChanceLimit = 80 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java index afd327d7e9..529f4db557 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1766,6 +1767,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java index bbe0e78eb7..0af095b2a2 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1119,8 +1119,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_1.0/dist/game/config/Character.ini b/L2J_Mobius_Classic_1.0/dist/game/config/Character.ini index 675fcdcdf6..3e696d28fa 100644 --- a/L2J_Mobius_Classic_1.0/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_1.0/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java index de15d32711..357d8b6a46 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java @@ -190,6 +190,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1671,6 +1672,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/stats/Formulas.java index c71764d2df..c6df96b17e 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Character.ini b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Character.ini index f831a5bd81..d9d4fea3e9 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java index 3282398d2d..30ba12ffe8 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1699,6 +1700,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 2aa32d702d..43cf80a2da 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini index f85e86d368..3ff7db386e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java index 7ac502dbd8..075794d6a6 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1698,6 +1699,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 2aa32d702d..43cf80a2da 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Character.ini index 3c976510a4..fc71352661 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java index fbcf65de25..424aa65cb1 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1702,6 +1703,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 2aa32d702d..43cf80a2da 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Character.ini index 6add4cca0a..da2c71b813 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java index fbcf65de25..424aa65cb1 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1702,6 +1703,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 2aa32d702d..43cf80a2da 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Character.ini index 6add4cca0a..da2c71b813 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java index fbcf65de25..424aa65cb1 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1702,6 +1703,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 6d8e8b23de..d58d6cbf6e 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Character.ini b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Character.ini index f04caef301..41a8a68d42 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java index 16b8357235..aaf7b49f27 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1707,6 +1708,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 6d8e8b23de..d58d6cbf6e 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini index bce6c49e62..d929afe689 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java index 3f79343f84..203feea167 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java @@ -199,6 +199,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1713,6 +1714,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 6d8e8b23de..d58d6cbf6e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini b/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini index 51bb6849f0..3d3254e607 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini +++ b/L2J_Mobius_Classic_Interlude/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = True +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java index 79caf6c3a9..c11986e49d 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java @@ -198,6 +198,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1705,6 +1706,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java index dbd7b4fc68..16403fe4df 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1113,8 +1113,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini index 430469c8de..bdc565b688 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Character.ini @@ -154,6 +154,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java index fd9c7e7997..6c0d74d0f5 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java @@ -201,6 +201,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1735,6 +1736,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 6d8e8b23de..d58d6cbf6e 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini index 7f5edc3110..657e942f2f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Character.ini @@ -222,6 +222,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java index 17abbde58b..e150bf898f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java @@ -203,6 +203,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1834,6 +1835,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 6d8e8b23de..d58d6cbf6e 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini index a6416f998a..afcad421df 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Character.ini @@ -222,6 +222,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java index eb46e57479..3b1527b67d 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java @@ -204,6 +204,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1841,6 +1842,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 17b483479b..eb8a3b2895 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1114,8 +1114,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Character.ini b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Character.ini index a6416f998a..afcad421df 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Character.ini +++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Character.ini @@ -222,6 +222,10 @@ MpVampiricAttackWorkWithMelee = False # Otherwise target level and (alternatively) attacker level is used. CalculateMagicSuccessBySkillMagicLevel = False +# Blow rate chance limit (%). +# Default: 100 +BlowRateChanceLimit = 100 + # --------------------------------------------------------------------------- # Class, Sub-class and skill learning options diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java index 92e1ba6b34..872813c02d 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java @@ -204,6 +204,7 @@ public class Config public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS; public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE; public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL; + public static int BLOW_RATE_CHANCE_LIMIT; public static boolean LIFE_CRYSTAL_NEEDED; public static boolean DIVINE_SP_BOOK_NEEDED; public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS; @@ -1841,6 +1842,7 @@ public class Config VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true); MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false); CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false); + BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100); LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true); DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true); ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false); diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 90d8b2c467..fd11777c6b 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1120,8 +1120,8 @@ public class Formulas final double rate = criticalPosition * critHeightBonus * weaponCritical * chanceBoostMod * blowRateMod * blowRateDefenseMod; - // Blow rate is capped at 80% - return Rnd.get(100) < Math.min(rate, 80); + // Blow rate change is limited (%). + return Rnd.get(100) < Math.min(rate, Config.BLOW_RATE_CHANCE_LIMIT); } public static List calcCancelStealEffects(Creature creature, Creature target, Skill skill, DispelSlotType slot, int rate, int max)