Addition of PhysicalSkillCriticalRate effect.
Contributed by nasseka.
This commit is contained in:
@@ -260,6 +260,7 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new);
|
||||
EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new);
|
||||
EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new);
|
||||
EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new);
|
||||
EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new);
|
||||
EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new);
|
||||
EffectHandler.getInstance().registerHandler("PkCount", PkCount::new);
|
||||
|
||||
@@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect
|
||||
public EnergyAttack(StatSet params)
|
||||
{
|
||||
_power = params.getDouble("power", 0);
|
||||
_criticalChance = params.getInt("criticalChance", 0);
|
||||
_criticalChance = params.getInt("criticalChance", 10);
|
||||
_ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false);
|
||||
_overHit = params.getBoolean("overHit", false);
|
||||
_chargeConsume = params.getInt("chargeConsume", 0);
|
||||
|
||||
@@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect
|
||||
_power = params.getDouble("power", 0);
|
||||
_pAtkMod = params.getDouble("pAtkMod", 1.0);
|
||||
_pDefMod = params.getDouble("pDefMod", 1.0);
|
||||
_criticalChance = params.getDouble("criticalChance", 0);
|
||||
_criticalChance = params.getDouble("criticalChance", 10);
|
||||
_ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false);
|
||||
_overHit = params.getBoolean("overHit", false);
|
||||
final String abnormals = params.getString("abnormalType", null);
|
||||
@@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect
|
||||
}
|
||||
|
||||
double damage = 1;
|
||||
final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill);
|
||||
final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill);
|
||||
|
||||
if (defence != -1)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect
|
||||
public PhysicalAttackWeaponBonus(StatSet params)
|
||||
{
|
||||
_power = params.getDouble("power", 0);
|
||||
_criticalChance = params.getDouble("criticalChance", 0);
|
||||
_criticalChance = params.getDouble("criticalChance", 10);
|
||||
_ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false);
|
||||
_overHit = params.getBoolean("overHit", false);
|
||||
_pDefMod = params.getDouble("pDefMod", 1.0);
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||
|
||||
/**
|
||||
* @author NasSeKa
|
||||
*/
|
||||
public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect
|
||||
{
|
||||
public PhysicalSkillCriticalRate(StatSet params)
|
||||
{
|
||||
super(params, Stat.CRITICAL_RATE_SKILL);
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -75,7 +75,7 @@
|
||||
<amount>500</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>50</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -128,10 +128,6 @@
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="AttackTrait">
|
||||
<DRAGON_WEAKNESS>100</DRAGON_WEAKNESS>
|
||||
</effect>
|
||||
|
||||
@@ -681,7 +681,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence" fromLevel="7" toLevel="13" fromSubLevel="3001" toSubLevel="3020">
|
||||
<amount>
|
||||
@@ -783,7 +782,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>60</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalAttackSpeed">
|
||||
<amount>-20</amount>
|
||||
@@ -885,7 +883,6 @@
|
||||
<value level="10">23531</value>
|
||||
<value fromLevel="4" toLevel="10" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence" fromLevel="4" toLevel="10" fromSubLevel="3001" toSubLevel="3020">
|
||||
<amount>
|
||||
@@ -983,7 +980,6 @@
|
||||
<value level="12">25044</value>
|
||||
<value fromLevel="6" toLevel="12" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="BlockActions">
|
||||
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912</allowedSkills>
|
||||
@@ -1089,7 +1085,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">5</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -1188,7 +1184,6 @@
|
||||
<value level="13">39454</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence" fromLevel="7" toLevel="13" fromSubLevel="3001" toSubLevel="3020">
|
||||
<amount>
|
||||
@@ -5979,12 +5974,12 @@
|
||||
<abnormalType>PARALYZE</abnormalType>
|
||||
<abnormalVisualEffect>PARALYZE</abnormalVisualEffect>
|
||||
<activateRate>
|
||||
<value fromLevel="1" toLevel="9">40</value>
|
||||
<value fromLevel="1" toLevel="9">15</value>
|
||||
<value fromLevel="3" toLevel="9" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</activateRate>
|
||||
<affectLimit>10-10</affectLimit>
|
||||
<affectRange>600</affectRange>
|
||||
<basicProperty>MAGIC</basicProperty> <!-- Guessed -->
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<itemConsumeId>1785</itemConsumeId>
|
||||
<itemConsumeCount>6</itemConsumeCount>
|
||||
<lvlBonusRate>1</lvlBonusRate>
|
||||
@@ -6114,7 +6109,7 @@
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="DefenceCriticalDamage">
|
||||
<amount>-35</amount>
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="Speed">
|
||||
@@ -6185,7 +6180,7 @@
|
||||
<value fromLevel="2" toLevel="8" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="8">15</value>
|
||||
<value fromLevel="1" toLevel="8">10</value>
|
||||
<value fromLevel="2" toLevel="8" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
|
||||
@@ -741,7 +741,6 @@
|
||||
<value level="13">25615</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence">
|
||||
@@ -851,7 +850,7 @@
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">3</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -954,7 +953,6 @@
|
||||
</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>3</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
<effect name="KnockBack">
|
||||
@@ -1188,7 +1186,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
<BLUNT>0.9</BLUNT>
|
||||
<SWORD>0.9</SWORD>
|
||||
<POLE>1.5</POLE>
|
||||
@@ -1552,7 +1549,6 @@
|
||||
<value level="12">19327</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>3</criticalChance>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
</effect>
|
||||
<effect name="Speed">
|
||||
@@ -1932,7 +1928,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="6">5</value>
|
||||
<value fromLevel="1" toLevel="6">10</value>
|
||||
<value fromLevel="1" toLevel="6" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -2285,7 +2281,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="7">5</value>
|
||||
<value fromLevel="1" toLevel="7">10</value>
|
||||
<value fromLevel="1" toLevel="7" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -2662,7 +2658,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">5</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
|
||||
@@ -825,7 +825,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="9">15</value>
|
||||
<value fromLevel="1" toLevel="9">10</value>
|
||||
<value fromLevel="3" toLevel="9" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -991,7 +991,6 @@
|
||||
<value fromLevel="3" toLevel="9" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<criticalChance>15</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
<effect name="BlockActions">
|
||||
@@ -1261,11 +1260,9 @@
|
||||
<value level="9">33647</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="EnergyAttack">
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>15</criticalChance>
|
||||
<power>
|
||||
<value level="1">9180</value>
|
||||
<value level="2">9710</value>
|
||||
@@ -1426,7 +1423,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="9">15</value>
|
||||
<value fromLevel="1" toLevel="9">10</value>
|
||||
<value fromLevel="3" toLevel="9" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>0.7</pDefMod>
|
||||
@@ -1475,7 +1472,7 @@
|
||||
<item>DUAL</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="CriticalRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>20</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
|
||||
@@ -396,11 +396,11 @@
|
||||
<stat>STR</stat>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate"> <!-- TODO: Add skill master rate -->
|
||||
<effect name="SkillMasteryRate">
|
||||
<amount>100</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>10</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">10</value>
|
||||
<value level="2">11</value>
|
||||
@@ -908,7 +908,7 @@
|
||||
<amount>100</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>10</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -1255,7 +1255,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -1366,7 +1366,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="KnockBack">
|
||||
<speed>500</speed>
|
||||
@@ -1468,7 +1467,7 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">5</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -1565,7 +1564,7 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">5</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -1800,7 +1799,7 @@
|
||||
<value fromLevel="4" toLevel="11" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="11">60</value>
|
||||
<value fromLevel="1" toLevel="11">10</value>
|
||||
<value fromLevel="4" toLevel="11" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
@@ -1909,7 +1908,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
</effect>
|
||||
@@ -2013,7 +2012,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -2113,7 +2112,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">60</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -2571,7 +2570,7 @@
|
||||
<value fromLevel="5" toLevel="11" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="11">5</value>
|
||||
<value fromLevel="1" toLevel="11">10</value>
|
||||
<value fromLevel="7" toLevel="11" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
</effect>
|
||||
@@ -2628,7 +2627,7 @@
|
||||
<value fromLevel="1" toLevel="6" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="6">60</value>
|
||||
<value fromLevel="1" toLevel="6">10</value>
|
||||
<value fromLevel="1" toLevel="6" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
|
||||
@@ -411,7 +411,7 @@
|
||||
<amount>15</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>15</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
|
||||
@@ -586,7 +586,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
<pDefMod>
|
||||
<value fromLevel="1" toLevel="13">1</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="3001" toSubLevel="3020">{0.99 - 0.006 * (subIndex - 1)}</value>
|
||||
@@ -712,7 +711,6 @@
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
<pDefMod>
|
||||
<value fromLevel="1" toLevel="13">1</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="3001" toSubLevel="3020">{0.99 - 0.006 * (subIndex - 1)}</value>
|
||||
@@ -3378,11 +3376,11 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="6">5</value>
|
||||
<value fromLevel="1" toLevel="6">10</value>
|
||||
<value fromLevel="1" toLevel="6" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalSkillPower">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>-80</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
|
||||
@@ -3004,7 +3004,7 @@
|
||||
<icon>icon.skill3238</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0.55</value>
|
||||
<value level="2">0.65</value>
|
||||
|
||||
@@ -1818,7 +1818,7 @@
|
||||
<icon>icon.ensoul_big_p</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value fromLevel="1" toLevel="15">{5+index}</value>
|
||||
</amount>
|
||||
@@ -2114,7 +2114,7 @@
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">3</value>
|
||||
<value fromLevel="2" toLevel="3">4</value>
|
||||
@@ -2280,7 +2280,7 @@
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">3</value>
|
||||
<value fromLevel="2" toLevel="3">4</value>
|
||||
@@ -2948,7 +2948,7 @@
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">3</value>
|
||||
<value fromLevel="2" toLevel="3">4</value>
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
<icon>icon.skill0193</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">5</value>
|
||||
<value level="2">10</value>
|
||||
|
||||
@@ -1628,7 +1628,7 @@
|
||||
<icon>icon.skill1532</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>10</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -1717,7 +1717,7 @@
|
||||
<icon>icon.skill0193</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">3</value>
|
||||
<value level="2">6</value>
|
||||
|
||||
@@ -1251,7 +1251,6 @@
|
||||
<value level="10">23966</value>
|
||||
<value level="11">25044</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
@@ -1316,7 +1315,6 @@
|
||||
<value level="7">61439</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<chance>90</chance>
|
||||
</effect>
|
||||
<effect name="PullBack">
|
||||
<speed>600</speed>
|
||||
@@ -1389,7 +1387,6 @@
|
||||
<value level="7">52205</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<chance>90</chance>
|
||||
</effect>
|
||||
<effect name="PullBack">
|
||||
<speed>600</speed>
|
||||
@@ -1462,7 +1459,6 @@
|
||||
<value level="7">73087</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<chance>90</chance>
|
||||
</effect>
|
||||
<effect name="PullBack">
|
||||
<speed>600</speed>
|
||||
@@ -1531,7 +1527,6 @@
|
||||
<value level="6">69941</value>
|
||||
<value level="7">73087</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
@@ -1650,7 +1645,6 @@
|
||||
<value level="7">73087</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
<effect name="AddHate">
|
||||
<power>
|
||||
@@ -1748,7 +1742,6 @@
|
||||
<value level="11">25044</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<chance>90</chance>
|
||||
</effect>
|
||||
<effect name="PullBack">
|
||||
<speed>600</speed>
|
||||
@@ -1927,7 +1920,6 @@
|
||||
<value level="10">23966</value>
|
||||
<value level="11">25044</value>
|
||||
</power>
|
||||
<criticalChance>5</criticalChance>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
|
||||
@@ -1104,7 +1104,7 @@
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">15</value>
|
||||
<value level="2">16</value>
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0.9</value>
|
||||
<value level="2">1</value>
|
||||
@@ -1272,7 +1272,7 @@
|
||||
<icon>BranchIcon.icon.g_bm_cloak_mineral_normal</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0.9</value>
|
||||
<value level="2">1</value>
|
||||
|
||||
@@ -1429,7 +1429,7 @@
|
||||
<icon>BranchIcon.icon.g_bm_sag_agathion_charm</icon>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0</value>
|
||||
<value level="2">1</value>
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
<value fromLevel="24" toLevel="30" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="30">15</value>
|
||||
<value fromLevel="1" toLevel="30">10</value>
|
||||
<value fromLevel="24" toLevel="30" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance> <!-- Unconfirmed -->
|
||||
<abnormalType>STUN</abnormalType>
|
||||
@@ -269,7 +269,7 @@
|
||||
<pDefMod>0.7</pDefMod>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="29">15</value>
|
||||
<value fromLevel="1" toLevel="29">10</value>
|
||||
<value fromLevel="23" toLevel="29" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
</effect>
|
||||
@@ -449,7 +449,7 @@
|
||||
</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">15</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="7" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
@@ -541,7 +541,7 @@
|
||||
</power>
|
||||
<pDefMod>0.5</pDefMod>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="18">15</value>
|
||||
<value fromLevel="1" toLevel="18">10</value>
|
||||
<value fromLevel="12" toLevel="11" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
@@ -622,7 +622,6 @@
|
||||
<value level="12">45015</value>
|
||||
<value fromLevel="6" toLevel="12" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>15</criticalChance>
|
||||
</effect>
|
||||
<effect name="PullBack">
|
||||
<type>THROW_UP</type>
|
||||
@@ -727,7 +726,6 @@
|
||||
<value level="16">56253</value>
|
||||
<value fromLevel="10" toLevel="16" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>15</criticalChance> <!-- Unconfirmed -->
|
||||
</effect>
|
||||
<effect name="KnockBack">
|
||||
<speed>400</speed>
|
||||
@@ -1822,7 +1820,7 @@
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">10</value>
|
||||
<value level="2">20</value>
|
||||
@@ -2603,7 +2601,7 @@
|
||||
</power>
|
||||
<pDefMod>0.5</pDefMod>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="6">15</value> <!-- Guessed -->
|
||||
<value fromLevel="1" toLevel="6">10</value>
|
||||
<value fromLevel="1" toLevel="6" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
</effect>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<magicLevel>85</magicLevel>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>1</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -48,7 +48,7 @@
|
||||
<effectPoint>2</effectPoint>
|
||||
<isMagic>3</isMagic>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>1</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -408,7 +408,6 @@
|
||||
<power>3978</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>5</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
</effects>
|
||||
@@ -1369,7 +1368,6 @@
|
||||
<power>4096</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>3</criticalChance>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
<effect name="KnockBack">
|
||||
@@ -2277,7 +2275,6 @@
|
||||
<effect name="EnergyAttack">
|
||||
<power>3469</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>15</criticalChance>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
</effect>
|
||||
</effects>
|
||||
|
||||
@@ -3066,7 +3066,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">15</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="1" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -3140,7 +3140,7 @@
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="13">15</value>
|
||||
<value fromLevel="1" toLevel="13">10</value>
|
||||
<value fromLevel="1" toLevel="13" fromSubLevel="2001" toSubLevel="2020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<pDefMod>
|
||||
@@ -3209,7 +3209,7 @@
|
||||
<value fromLevel="1" toLevel="9" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<criticalChance>
|
||||
<value fromLevel="1" toLevel="9">15</value>
|
||||
<value fromLevel="1" toLevel="9">10</value>
|
||||
<value fromLevel="1" toLevel="9" fromSubLevel="3001" toSubLevel="3020">{base + (base / 100 * subIndex)}</value>
|
||||
</criticalChance>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
@@ -3699,7 +3699,6 @@
|
||||
</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<chargeConsume>3</chargeConsume>
|
||||
<criticalChance>15</criticalChance>
|
||||
<pDefMod>30</pDefMod>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
@@ -3930,7 +3929,6 @@
|
||||
<value fromLevel="1" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>10</criticalChance>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence">
|
||||
<amount>-23</amount>
|
||||
@@ -4044,7 +4042,6 @@
|
||||
<value fromLevel="1" toLevel="13" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>10</criticalChance>
|
||||
</effect>
|
||||
<effect name="Speed" fromLevel="1" toLevel="13" fromSubLevel="3001" toSubLevel="3020">
|
||||
<amount>
|
||||
|
||||
@@ -201,7 +201,6 @@
|
||||
<effect name="EnergyAttack">
|
||||
<power>451</power>
|
||||
<overHit>true</overHit>
|
||||
<criticalChance>15</criticalChance>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
|
||||
@@ -1564,7 +1564,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0</value>
|
||||
<value level="2">1</value>
|
||||
|
||||
@@ -2751,7 +2751,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<magicLevel>80</magicLevel>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalrate">
|
||||
<amount>
|
||||
<value level="1">0</value>
|
||||
<value level="2">1</value>
|
||||
@@ -2765,7 +2765,6 @@
|
||||
<value level="10">8</value>
|
||||
<value level="11">10</value>
|
||||
</amount>
|
||||
<magicType>0</magicType>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
</effects>
|
||||
@@ -2777,7 +2776,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<magicLevel>80</magicLevel>
|
||||
<effects>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="MagicCriticalRate">
|
||||
<amount>
|
||||
<value level="1">0</value>
|
||||
<value level="2">1</value>
|
||||
@@ -2791,7 +2790,6 @@
|
||||
<value level="10">8</value>
|
||||
<value level="11">10</value>
|
||||
</amount>
|
||||
<magicType>1</magicType>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
</effects>
|
||||
|
||||
@@ -594,7 +594,7 @@
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
@@ -676,7 +676,7 @@
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="SkillMasteryRate">
|
||||
<effect name="PhysicalSkillCriticalRate">
|
||||
<amount>30</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
|
||||
@@ -230,6 +230,7 @@ PhysicalDefence: P. Def stat.
|
||||
PhysicalEvasion: P. Evasion stat.
|
||||
PhysicalMute: Prevents the usage of physical skills. Shield Slam.
|
||||
PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle.
|
||||
PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius)
|
||||
PhysicalSkillPower: Physical Skill Power stat (use only MUL).
|
||||
PhysicalSoulAttack: Physical attack depending on souls.
|
||||
PkCount: Increases PK kills.
|
||||
@@ -297,7 +298,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression
|
||||
SkillCriticalDamage: Skill critical damage stat.
|
||||
SkillEvasion: Skill evasion stat.
|
||||
SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat.
|
||||
SkillMasteryRate: Skill critical rate stat.
|
||||
SkillMasteryRate: Bonus chance for skill mastery stat.
|
||||
SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius)
|
||||
SkillTurning: Stops target's casting.
|
||||
SkillTurningOverTime: Stops target's casting at a fixed rate.
|
||||
|
||||
@@ -261,7 +261,7 @@ public class Formulas
|
||||
statBonus = BaseStat.STR.calcBonus(creature);
|
||||
}
|
||||
|
||||
final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1);
|
||||
final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1);
|
||||
|
||||
double balanceMod = 1;
|
||||
if (creature.isPlayable())
|
||||
@@ -269,7 +269,7 @@ public class Formulas
|
||||
balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
|
||||
}
|
||||
|
||||
return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100);
|
||||
return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100);
|
||||
}
|
||||
|
||||
// Autoattack critical rate.
|
||||
|
||||
@@ -128,7 +128,7 @@ public enum Stat
|
||||
MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"),
|
||||
SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()),
|
||||
CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1),
|
||||
CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1),
|
||||
CRITICAL_RATE_SKILL("physicalSkillCriticalRate"),
|
||||
MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"),
|
||||
MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()),
|
||||
BLOW_RATE("blowRate"),
|
||||
|
||||
Reference in New Issue
Block a user