diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java
index 137d9d8..09e8761 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Fan.java
@@ -29,6 +29,7 @@
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 @@
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<Creature> filter = c ->
{
@@ -55,7 +57,7 @@
{
return false;
}
- if (c.isDead())
+ if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{
return false;
}
@@ -63,7 +65,7 @@
{
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.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java
index 5119ede..d3080e5 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/targethandlers/affectscope/Square.java
@@ -29,6 +29,7 @@
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 @@
final double sin = Math.sin(-heading);
// Target checks.
+ final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c ->
{
@@ -61,7 +63,7 @@
{
return false;
}
- if (c.isDead())
+ if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{
return false;
}
@@ -73,7 +75,7 @@
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;
}