Addition of PhysicalSkillCriticalRate effect.

Contributed by nasseka.
This commit is contained in:
MobiusDevelopment
2022-02-13 10:11:44 +00:00
parent 711dca327a
commit a1fd559b39
433 changed files with 1580 additions and 1183 deletions

View File

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

View File

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

View File

@@ -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)
{

View File

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

View File

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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -411,7 +411,7 @@
<amount>15</amount>
<mode>PER</mode>
</effect>
<effect name="SkillMasteryRate">
<effect name="PhysicalSkillCriticalRate">
<amount>15</amount>
<mode>PER</mode>
</effect>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -201,7 +201,6 @@
<effect name="EnergyAttack">
<power>451</power>
<overHit>true</overHit>
<criticalChance>15</criticalChance>
</effect>
</effects>
</skill>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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.

View File

@@ -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.

View File

@@ -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"),