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

@@ -24,6 +24,7 @@ import java.util.logging.Logger;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
@@ -75,7 +76,7 @@ public final class Broadcast
*/
public static void toKnownPlayers(L2Character character, L2GameServerPacket mov)
{
Collection<L2PcInstance> plrs = character.getKnownList().getKnownPlayers().values();
final Collection<L2PcInstance> plrs = character.getKnownList().getKnownPlayers().values();
for (L2PcInstance player : plrs)
{
if (player == null)
@@ -85,17 +86,28 @@ public final class Broadcast
try
{
player.sendPacket(mov);
if ((mov instanceof CharInfo) && (character instanceof L2PcInstance))
if ((mov instanceof CharInfo) && (character.isPlayer()))
{
int relation = ((L2PcInstance) character).getRelation(player);
Integer oldrelation = character.getKnownList().getKnownRelations().get(player.getObjectId());
if ((oldrelation != null) && (oldrelation != relation))
{
player.sendPacket(new RelationChanged((L2PcInstance) character, relation, character.isAutoAttackable(player)));
final RelationChanged rc = new RelationChanged();
rc.addRelation((L2PcInstance) character, relation, character.isAutoAttackable(player));
if (character.hasSummon())
{
player.sendPacket(new RelationChanged(character.getSummon(), relation, character.isAutoAttackable(player)));
final L2Summon pet = character.getPet();
if (pet != null)
{
rc.addRelation(pet, relation, character.isAutoAttackable(player));
}
if (character.hasServitors())
{
character.getServitors().values().forEach(s -> rc.addRelation(s, relation, character.isAutoAttackable(player)));
}
}
player.sendPacket(rc);
character.getKnownList().getKnownRelations().put(player.getObjectId(), relation);
}
}
}

View File

@@ -26,16 +26,18 @@ import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.data.xml.impl.PetDataTable;
import com.l2jserver.gameserver.model.L2PetData;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExAdenaInvenCount;
import com.l2jserver.gameserver.network.serverpackets.ExUserInfoInvenWeight;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillLaunched;
@@ -56,12 +58,13 @@ public final class Evolve
return false;
}
if (!player.hasPet())
final L2Summon pet = player.getPet();
if (pet == null)
{
return false;
}
final L2PetInstance currentPet = (L2PetInstance) player.getSummon();
final L2PetInstance currentPet = (L2PetInstance) pet;
if (currentPet.isAlikeDead())
{
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to use death pet exploit!", Config.DEFAULT_PUNISH);
@@ -239,6 +242,7 @@ public final class Evolve
player.sendPacket(iu);
player.sendPacket(new ExUserInfoInvenWeight(player));
player.sendPacket(new ExAdenaInvenCount(player));
player.broadcastUserInfo();

View File

@@ -28,7 +28,7 @@ import javolution.util.FastSet;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character;