Fixed FAN & SQUARE effectscope not giving damage to unflagged targets.

Contributed by LLiuKe.
This commit is contained in:
MobiusDevelopment
2021-10-05 14:17:34 +00:00
parent a5d5c38622
commit 616f55bc7f
38 changed files with 152 additions and 76 deletions

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -53,6 +54,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -60,7 +62,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -72,7 +74,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -53,6 +54,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -60,7 +62,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -72,7 +74,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; 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 double fanHalfAngle = fanAngle / 2; // Half left and half right.
final int affectLimit = skill.getAffectLimit(); final int affectLimit = skill.getAffectLimit();
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -55,7 +57,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -63,7 +65,7 @@ public class Fan implements IAffectScopeHandler
{ {
return false; return false;
} }
if ((affectObject != null) && !affectObject.checkAffectedObject(creature, c)) if ((c != target) && (affectObject != null) && !affectObject.checkAffectedObject(creature, c))
{ {
return false; return false;
} }

View File

@@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.AffectScope;
import org.l2jmobius.gameserver.model.skills.targets.TargetType;
import org.l2jmobius.gameserver.util.Util; import org.l2jmobius.gameserver.util.Util;
/** /**
@@ -54,6 +55,7 @@ public class Square implements IAffectScopeHandler
final double sin = Math.sin(-heading); final double sin = Math.sin(-heading);
// Target checks. // Target checks.
final TargetType targetType = skill.getTargetType();
final AtomicInteger affected = new AtomicInteger(0); final AtomicInteger affected = new AtomicInteger(0);
final Predicate<Creature> filter = c -> final Predicate<Creature> filter = c ->
{ {
@@ -61,7 +63,7 @@ public class Square implements IAffectScopeHandler
{ {
return false; return false;
} }
if (c.isDead()) if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
{ {
return false; return false;
} }
@@ -73,7 +75,7 @@ public class Square implements IAffectScopeHandler
final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos)); final int yr = (int) (creature.getY() + (xp * sin) + (yp * cos));
if ((xr > rectX) && (xr < (rectX + squareLength)) && (yr > rectY) && (yr < (rectY + squareWidth))) 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; return false;
} }