diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 13a87e32b7..bba207e58f 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index f6f4d53e1f..ce81685f5b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 13a87e32b7..bba207e58f 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index f6f4d53e1f..ce81685f5b 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 13a87e32b7..bba207e58f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index f6f4d53e1f..ce81685f5b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 31fc7eb8e0..c5d1ddf436 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index be97ce5061..8342b0c36d 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_STOPPED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_THIS_AREA); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 05f187eb2b..aaea6d5ee1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index c608d24ced..633641080a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.A_MALICIOUS_SKILL_CANNOT_BE_USED_IN_A_PEACE_ZONE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/Enemy.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/Enemy.java index 150fb2c8a8..e805e33d8f 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/Enemy.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/Enemy.java @@ -58,18 +58,16 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class Enemy implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java index e820494214..3208f54310 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/EnemyOnly.java @@ -58,18 +58,16 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } // You cannot attack dead targets. - if (target.isDead()) + if (target.isDead() && !skill.isStayAfterDeath()) { if (sendMessage) { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -80,7 +78,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.INVALID_TARGET); } - return null; } @@ -94,7 +91,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.THE_DISTANCE_IS_TOO_FAR_AND_SO_THE_CASTING_HAS_BEEN_CANCELLED); } - return null; } @@ -105,7 +101,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.CANNOT_SEE_TARGET); } - return null; } @@ -116,7 +111,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILLS_THAT_MAY_HARM_OTHER_PLAYERS_IN_HERE); } - return null; } @@ -127,7 +121,6 @@ public class EnemyOnly implements ITargetTypeHandler { creature.sendPacket(SystemMessageId.FORCE_ATTACK_IS_IMPOSSIBLE_AGAINST_A_TEMPORARY_ALLIED_MEMBER_DURING_A_SIEGE); } - return null; } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/EffectList.java index f13c45d547..1a6a1b93e7 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/EffectList.java @@ -874,7 +874,7 @@ public class EffectList } // Prevent adding and initializing buffs/effects on dead creatures. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } @@ -904,7 +904,7 @@ public class EffectList final Skill skill = info.getSkill(); // Cannot add active buff to dead creature. Even in retail if you are dead with Lv. 3 Shillien's Breath, it will disappear instead of going 1 level down. - if (info.getEffected().isDead()) + if (info.getEffected().isDead() && !info.getSkill().isStayAfterDeath()) { return; } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java index 35863f64ef..c62912f93e 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skills/BuffInfo.java @@ -322,7 +322,7 @@ public class BuffInfo for (AbstractEffect effect : _effects) { - if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive())) + if (effect.isInstant() || (_effected.isDead() && !_skill.isPassive() && !_skill.isStayAfterDeath())) { continue; }