AreaFriendly target handler NPE fix.

Contributed by antho19.
This commit is contained in:
MobiusDev 2015-11-28 00:45:35 +00:00
parent 6f6d296ecb
commit 664e78f5b3

View File

@ -46,7 +46,7 @@ public class AreaFriendly implements ITargetTypeHandler
List<L2Character> targetList = new ArrayList<>(); List<L2Character> targetList = new ArrayList<>();
L2PcInstance player = activeChar.getActingPlayer(); L2PcInstance player = activeChar.getActingPlayer();
if (!checkTarget(player, target) && (skill.getCastRange() >= 0)) if ((target == null) || (!checkTarget(player, target) && (skill.getCastRange() >= 0)))
{ {
player.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); player.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
return EMPTY_TARGET_LIST; return EMPTY_TARGET_LIST;
@ -69,28 +69,25 @@ public class AreaFriendly implements ITargetTypeHandler
} }
targetList.add(target); // Add target to target list targetList.add(target); // Add target to target list
if (target != null) int maxTargets = skill.getAffectLimit();
final Collection<L2Character> objs = target.getKnownList().getKnownCharactersInRadius(skill.getAffectRange());
// TODO: Chain Heal - The recovery amount decreases starting from the most injured person.
Collections.sort(targetList, new CharComparator());
for (L2Character obj : objs)
{ {
int maxTargets = skill.getAffectLimit(); if (!checkTarget(player, obj) || (obj == activeChar))
final Collection<L2Character> objs = target.getKnownList().getKnownCharactersInRadius(skill.getAffectRange());
// TODO: Chain Heal - The recovery amount decreases starting from the most injured person.
Collections.sort(targetList, new CharComparator());
for (L2Character obj : objs)
{ {
if (!checkTarget(player, obj) || (obj == activeChar)) continue;
{
continue;
}
if ((maxTargets > 0) && (targetList.size() >= maxTargets))
{
break;
}
targetList.add(obj);
} }
if ((maxTargets > 0) && (targetList.size() >= maxTargets))
{
break;
}
targetList.add(obj);
} }
if (targetList.isEmpty()) if (targetList.isEmpty())