//share with party members int partyDmg = 0; ArrayList members = attackerParty.getPartyMembers(); ArrayList rewardedMembers = new ArrayList(); for(L2PcInstance pl : members) { AggroInfo ai = _aggroList.get(pl); if (ai != null) { partyDmg += ai.damage; _aggroList.remove(pl); } if (pl.getPet() instanceof L2SummonInstance && _aggroList.containsKey(pl.getPet())) { partyDmg += _aggroList.get(pl.getPet()).damage; rewardedMembers.add(pl.getPet()); _aggroList.remove(pl.getPet()); } rewardedMembers.add(pl); } if (partyDmg > getMaxHp()) partyDmg = getMaxHp(); int diff = attackerParty.getLevel() - getLevel(); int[] tmp = calculateExpAndSp(diff, damage); int xp = tmp[0]; xp *= 1-penalty; int sp = tmp[1]; attackerParty.distributeXpAndSp(xp, sp, rewardedMembers); } }