Fixed FAN & SQUARE effectscope not giving damage to unflagged targets.
Contributed by LLiuKe.
This commit is contained in:
		@@ -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<Creature> 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;
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -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<Creature> 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;
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user