Apply magical skill critical chance multipliers at all levels.

This commit is contained in:
MobiusDevelopment 2021-04-30 09:10:35 +00:00
parent 8e60759bb6
commit 90e74d3367
19 changed files with 133 additions and 133 deletions

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -230,19 +230,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -230,19 +230,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -230,19 +230,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -229,19 +229,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -230,19 +230,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}

View File

@ -230,19 +230,19 @@ public class Formulas
return Math.min(rate, 320) > Rnd.get(1000);
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320) > Rnd.get(1000);
}
double balanceMod = 1;
if (creature.isPlayable())
{
balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()];
}
double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0);
if ((creature.getLevel() >= 78) && (target.getLevel() >= 78))
{
finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25);
return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000);
}
return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000);
}