From 616f55bc7f9875be3a353f026d6723e3662c2462 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 5 Oct 2021 14:17:34 +0000 Subject: [PATCH] Fixed FAN & SQUARE effectscope not giving damage to unflagged targets. Contributed by LLiuKe. --- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Fan.java | 6 ++++-- .../scripts/handlers/targethandlers/affectscope/Square.java | 6 ++++-- 38 files changed, 152 insertions(+), 76 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 51f2923273..5f6f10f5cc 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -53,6 +54,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -60,7 +62,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -72,7 +74,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 51f2923273..5f6f10f5cc 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -53,6 +54,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -60,7 +62,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -72,7 +74,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_8.2_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java index 137d9d8bd6..09e8761e6f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -48,6 +49,7 @@ public class Fan implements IAffectScopeHandler final double fanHalfAngle = fanAngle / 2; // Half left and half right. final int affectLimit = skill.getAffectLimit(); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler { return false; } - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java index 5119edeb3c..d3080e5618 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.targets.AffectScope; +import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.util.Util; /** @@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler final double sin = Math.sin(-heading); // Target checks. + final TargetType targetType = skill.getTargetType(); final AtomicInteger affected = new AtomicInteger(0); final Predicate filter = c -> { @@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler { return false; } - if (c.isDead()) + if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY)) { return false; } @@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) { - if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) + if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c)) { return false; }