浏览代码

BETA: "Good" aura skills shouldn't be casted on monsters when caster is a player (summon).

Reported by: Illusionz
Zoey76 11 年之前
父节点
当前提交
17314dcbb1
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Aura.java

+ 8 - 4
L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/Aura.java

@@ -19,7 +19,6 @@
 package handlers.targethandlers;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import com.l2jserver.gameserver.handler.ITargetTypeHandler;
@@ -31,6 +30,7 @@ import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 
 /**
+ * Aura target handler.
  * @author UnAfraid
  */
 public class Aura implements ITargetTypeHandler
@@ -38,10 +38,9 @@ public class Aura implements ITargetTypeHandler
 	@Override
 	public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
 	{
-		List<L2Character> targetList = new ArrayList<>();
+		final List<L2Character> targetList = new ArrayList<>();
 		final boolean srcInArena = (activeChar.isInsideZone(ZoneId.PVP) && !activeChar.isInsideZone(ZoneId.SIEGE));
-		final Collection<L2Character> objs = activeChar.getKnownList().getKnownCharactersInRadius(skill.getAffectRange());
-		for (L2Character obj : objs)
+		for (L2Character obj : activeChar.getKnownList().getKnownCharactersInRadius(skill.getAffectRange()))
 		{
 			if (obj.isDoor() || obj.isAttackable() || obj.isPlayable())
 			{
@@ -60,6 +59,11 @@ public class Aura implements ITargetTypeHandler
 					continue;
 				}
 				
+				if (activeChar.isPlayable() && obj.isAttackable() && !skill.isBad())
+				{
+					continue;
+				}
+				
 				if (onlyFirst)
 				{
 					return new L2Character[]