Sync with L2JServer Jan 24th 2015.

This commit is contained in:
mobius
2015-01-24 20:02:32 +00:00
parent d349bd3924
commit 1c6301c46d
1012 changed files with 23069 additions and 6307 deletions

View File

@@ -299,9 +299,14 @@ public class L2Party extends AbstractPlayerGroup
// sends pets/summons of party members
for (L2PcInstance pMember : getMembers())
{
if ((pMember != null) && pMember.hasSummon())
if (pMember != null)
{
player.sendPacket(new ExPartyPetWindowAdd(pMember.getSummon()));
final L2Summon pet = pMember.getPet();
if (pet != null)
{
player.sendPacket(new ExPartyPetWindowAdd(pet));
}
pMember.getServitors().values().forEach(s -> player.sendPacket(new ExPartyPetWindowAdd(s)));
}
}
@@ -319,11 +324,14 @@ public class L2Party extends AbstractPlayerGroup
// broadcastToPartyMembers(player, new PartyMemberPosition(this));
// if member has pet/summon add it to other as well
if (player.hasSummon())
final L2Summon pet = player.getPet();
if (pet != null)
{
broadcastPacket(new ExPartyPetWindowAdd(player.getSummon()));
broadcastPacket(new ExPartyPetWindowAdd(pet));
}
player.getServitors().values().forEach(s -> broadcastPacket(new ExPartyPetWindowAdd(s)));
// add player to party, adjust party level
getMembers().add(player);
if (player.getLevel() > _partyLvl)
@@ -338,12 +346,13 @@ public class L2Party extends AbstractPlayerGroup
if (member != null)
{
member.updateEffectIcons(true); // update party icons only
summon = member.getSummon();
summon = member.getPet();
member.broadcastUserInfo();
if (summon != null)
{
summon.updateEffectIcons();
}
member.getServitors().values().forEach(L2Summon::updateEffectIcons);
}
}
@@ -519,10 +528,12 @@ public class L2Party extends AbstractPlayerGroup
player.sendPacket(PartySmallWindowDeleteAll.STATIC_PACKET);
player.setParty(null);
broadcastPacket(new PartySmallWindowDelete(player));
if (player.hasSummon())
final L2Summon pet = player.getPet();
if (pet != null)
{
broadcastPacket(new ExPartyPetWindowDelete(player.getSummon()));
broadcastPacket(new ExPartyPetWindowDelete(pet));
}
player.getServitors().values().forEach(s -> player.sendPacket(new ExPartyPetWindowDelete(s)));
// Close the CCInfoWindow
if (isInCommandChannel())
@@ -827,7 +838,13 @@ public class L2Party extends AbstractPlayerGroup
if (validMembers.contains(member))
{
// The servitor penalty
final float penalty = member.hasServitor() ? ((L2ServitorInstance) member.getSummon()).getExpMultiplier() : 1;
float penalty = 1;
final L2Summon summon = member.getServitors().values().stream().filter(s -> ((L2ServitorInstance) s).getExpMultiplier() > 1).findFirst().orElse(null);
if (summon != null)
{
penalty = ((L2ServitorInstance) summon).getExpMultiplier();
}
final double sqLevel = member.getLevel() * member.getLevel();
final double preCalculation = (sqLevel / sqLevelSum) * penalty;