|
@@ -114,7 +114,8 @@ public abstract class L2Skill implements IChanceSkillTrigger
|
|
|
TARGET_PARTY_CLAN,
|
|
|
TARGET_ENEMY_SUMMON,
|
|
|
TARGET_OWNER_PET,
|
|
|
- TARGET_GROUND
|
|
|
+ TARGET_GROUND,
|
|
|
+ TARGET_PARTY_NOTME
|
|
|
}
|
|
|
|
|
|
//conditional values
|
|
@@ -2118,6 +2119,49 @@ public abstract class L2Skill implements IChanceSkillTrigger
|
|
|
}
|
|
|
return _emptyTargetList;
|
|
|
}
|
|
|
+ case TARGET_PARTY_NOTME:
|
|
|
+ {
|
|
|
+ //target all party members except yourself
|
|
|
+ if (onlyFirst)
|
|
|
+ return new L2Character[] { activeChar };
|
|
|
+
|
|
|
+ L2PcInstance player = null;
|
|
|
+
|
|
|
+ if (activeChar instanceof L2Summon)
|
|
|
+ {
|
|
|
+ player = ((L2Summon) activeChar).getOwner();
|
|
|
+ targetList.add(player);
|
|
|
+ }
|
|
|
+ else if (activeChar instanceof L2PcInstance)
|
|
|
+ {
|
|
|
+ player = (L2PcInstance) activeChar;
|
|
|
+ if (activeChar.getPet() != null)
|
|
|
+ targetList.add(activeChar.getPet());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (activeChar.getParty() != null)
|
|
|
+ {
|
|
|
+ List<L2PcInstance> partyList = activeChar.getParty().getPartyMembers();
|
|
|
+
|
|
|
+ for (L2PcInstance partyMember : partyList)
|
|
|
+ {
|
|
|
+ if (partyMember == null)
|
|
|
+ continue;
|
|
|
+ if (partyMember == player)
|
|
|
+ continue;
|
|
|
+ if (!partyMember.isDead() && Util.checkIfInRange(getSkillRadius(), activeChar, partyMember, true))
|
|
|
+ {
|
|
|
+ targetList.add(partyMember);
|
|
|
+
|
|
|
+ if (partyMember.getPet() != null && !partyMember.getPet().isDead())
|
|
|
+ {
|
|
|
+ targetList.add(partyMember.getPet());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return targetList.toArray(new L2Character[targetList.size()]);
|
|
|
+ }
|
|
|
default:
|
|
|
{
|
|
|
activeChar.sendMessage("Target type of skill is not currently handled");
|