diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/AreaFriendly.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/AreaFriendly.java index 70551b7b8383ac8da1c8be929fab0a0e761c022f..a8256b5c61d340612adb6eae14dce4971da8c543 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/AreaFriendly.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/AreaFriendly.java @@ -117,19 +117,31 @@ public class AreaFriendly implements ITargetTypeHandler return false; } - if ((target.isPlayer() && (target.getClanId() != 0)) && (activeChar.getClanId() != target.getClanId())) + if (target.isPlayer()) { - return false; - } - - if ((target.isPlayer() && (target.getAllyId() != 0)) && (activeChar.getAllyId() != target.getAllyId())) - { - return false; - } - - if ((target != activeChar) && (target.getActingPlayer() != null) && (target.getActingPlayer().getPvpFlag() > 0)) - { - return false; + if ((target.getAllyId() != 0) && (activeChar.getAllyId() == target.getAllyId())) + { + return true; + } + + if ((target.getClanId() != 0) && (activeChar.getClanId() == target.getClanId())) + { + return true; + } + + if ((target != activeChar) && activeChar.isInParty() && target.isInParty()) + { + if (activeChar.getParty().getLeader() == target.getParty().getLeader()) + { + return true; + } + return false; + } + + if ((target != activeChar) && (target.getActingPlayer().getPvpFlag() > 0)) + { + return false; + } } return true; }