diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/4600-4699.xml b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/4600-4699.xml index 957a4f2ce8..df0a85ae7b 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/4600-4699.xml +++ b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/4600-4699.xml @@ -296,12 +296,13 @@ - + + diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/ai/AttackableAI.java index 24482d8f62..b92c551d05 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -880,6 +880,11 @@ public class AttackableAI extends CreatureAI if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5)) { + if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance()))) + { + continue; + } + if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL)) { if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5))) @@ -962,12 +967,18 @@ public class AttackableAI extends CreatureAI _actor.setTarget(_actor); } } + // GeoData Los Check here if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget())) { return; } + if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance()))) + { + continue; + } + final WorldObject oldTarget = _actor.getTarget(); clientStopMoving(null); _accessor.doCast(sk); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java index c704bbc991..1b4d4ff623 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java @@ -137,8 +137,8 @@ public class Mdam implements ISkillHandler if (skill.isSuicideAttack()) { - creature.doDie(null); creature.setCurrentHp(0); + creature.doDie(null); } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java index 5b85050e53..40d84a6305 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java @@ -342,10 +342,10 @@ public class Pdam implements ISkillHandler creature.removeSs(); } - if (skill.isSuicideAttack() && !creature.isInvul()) + if (skill.isSuicideAttack()) { - creature.doDie(null); creature.setCurrentHp(0); + creature.doDie(null); } } diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/4600-4699.xml b/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/4600-4699.xml index 957a4f2ce8..df0a85ae7b 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/4600-4699.xml +++ b/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/4600-4699.xml @@ -296,12 +296,13 @@ - + + diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/5000-5099.xml b/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/5000-5099.xml index 0f4d8dcfb1..533c86216c 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/5000-5099.xml +++ b/L2J_Mobius_C6_Interlude/dist/game/data/stats/skills/5000-5099.xml @@ -222,6 +222,7 @@ + @@ -1539,6 +1540,7 @@ + @@ -1574,6 +1576,7 @@ + diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java index 24482d8f62..b92c551d05 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -880,6 +880,11 @@ public class AttackableAI extends CreatureAI if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5)) { + if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance()))) + { + continue; + } + if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL)) { if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5))) @@ -962,12 +967,18 @@ public class AttackableAI extends CreatureAI _actor.setTarget(_actor); } } + // GeoData Los Check here if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget())) { return; } + if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance()))) + { + continue; + } + final WorldObject oldTarget = _actor.getTarget(); clientStopMoving(null); _accessor.doCast(sk); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java index c704bbc991..1b4d4ff623 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java @@ -137,8 +137,8 @@ public class Mdam implements ISkillHandler if (skill.isSuicideAttack()) { - creature.doDie(null); creature.setCurrentHp(0); + creature.doDie(null); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java index 0988ae1316..76e661dc3c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java @@ -351,10 +351,10 @@ public class Pdam implements ISkillHandler creature.removeSs(); } - if (skill.isSuicideAttack() && !creature.isInvul()) + if (skill.isSuicideAttack()) { - creature.doDie(null); creature.setCurrentHp(0); + creature.doDie(null); } }