diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer()) diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java index 75b0e237e5..8c6d435b24 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/InstantKillResist.java @@ -37,6 +37,6 @@ public class InstantKillResist extends AbstractEffect @Override public void pump(L2Character effected, Skill skill) { - effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, 1 - (_amount / 100)); + effected.getStat().mergeAdd(Stats.INSTANT_KILL_RESIST, _amount); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Lethal.java index 55b8b21938..8296abc782 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Lethal.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Lethal.java @@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Formulas; import com.l2jmobius.gameserver.model.stats.Stats; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Lethal effect implementation. @@ -78,9 +79,21 @@ public final class Lethal extends AbstractEffect return; } - final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false) * effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 1); + final double chanceMultiplier = Formulas.calcAttributeBonus(effector, effected, skill) * Formulas.calcGeneralTraitBonus(effector, effected, skill.getTraitType(), false); + + // Calculate instant kill resistance first. + if (Rnd.get(100) < effected.getStat().getValue(Stats.INSTANT_KILL_RESIST, 0)) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_EVADED_C2_S_ATTACK); + sm.addString(effected.getName()); + sm.addString(effector.getName()); + effected.sendPacket(sm); + final SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessageId.C1_S_ATTACK_WENT_ASTRAY); + sm2.addString(effector.getName()); + effector.sendPacket(sm2); + } // Lethal Strike - if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) + else if (Rnd.get(100) < (_fullLethal * chanceMultiplier)) { // for Players CP and HP is set to 1. if (effected.isPlayer())