Fixed pet skill display.

Thanks to petryxa.
This commit is contained in:
MobiusDevelopment 2022-10-15 21:34:28 +00:00
parent ba0c034869
commit 257ffff881
6 changed files with 36 additions and 48 deletions

View File

@ -29,8 +29,6 @@ import org.l2jmobius.gameserver.ai.SummonAI;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.PetAcquireList;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true);
updateAndBroadcastStatus(0);
if (isPet())
{
final Pet pet = (Pet) this;
final int specialSkillId = PetAcquireList.getInstance().getSpecialSkillByType(pet.getPetData().getType());
addSkill(SkillData.getInstance().getSkill(specialSkillId, pet.getEvolveLevel() + 1));
}
if (_owner != null)
{
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this));
if (getInventory() != null)
if (isPet())
{
sendPacket(new PetItemList(getInventory().getItems()));
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null)
{
sendPacket(new PetItemList(getInventory().getItems()));
}
}
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
}
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
final Party party = _owner.getParty();
if (party != null)
{

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket
{
private final boolean _onEnter;
private final Summon _pet;
private final Pet _pet;
public ExPetSkillList(boolean onEnter, Summon pet)
public ExPetSkillList(boolean onEnter, Pet pet)
{
_onEnter = onEnter;
_pet = pet;

View File

@ -29,8 +29,6 @@ import org.l2jmobius.gameserver.ai.SummonAI;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.PetAcquireList;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true);
updateAndBroadcastStatus(0);
if (isPet())
{
final Pet pet = (Pet) this;
final int specialSkillId = PetAcquireList.getInstance().getSpecialSkillByType(pet.getPetData().getType());
addSkill(SkillData.getInstance().getSkill(specialSkillId, pet.getEvolveLevel() + 1));
}
if (_owner != null)
{
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this));
if (getInventory() != null)
if (isPet())
{
sendPacket(new PetItemList(getInventory().getItems()));
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null)
{
sendPacket(new PetItemList(getInventory().getItems()));
}
}
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
}
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
final Party party = _owner.getParty();
if (party != null)
{

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket
{
private final boolean _onEnter;
private final Summon _pet;
private final Pet _pet;
public ExPetSkillList(boolean onEnter, Summon pet)
public ExPetSkillList(boolean onEnter, Pet pet)
{
_onEnter = onEnter;
_pet = pet;

View File

@ -29,8 +29,6 @@ import org.l2jmobius.gameserver.ai.SummonAI;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.PetAcquireList;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true);
updateAndBroadcastStatus(0);
if (isPet())
{
final Pet pet = (Pet) this;
final int specialSkillId = PetAcquireList.getInstance().getSpecialSkillByType(pet.getPetData().getType());
addSkill(SkillData.getInstance().getSkill(specialSkillId, pet.getEvolveLevel() + 1));
}
if (_owner != null)
{
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this));
if (getInventory() != null)
if (isPet())
{
sendPacket(new PetItemList(getInventory().getItems()));
sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null)
{
sendPacket(new PetItemList(getInventory().getItems()));
}
}
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
}
World.getInstance().forEachVisibleObject(getOwner(), Player.class, player -> player.sendPacket(new RelationChanged(this, _owner.getRelation(player), isAutoAttackable(player))));
final Party party = _owner.getParty();
if (party != null)
{

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket
{
private final boolean _onEnter;
private final Summon _pet;
private final Pet _pet;
public ExPetSkillList(boolean onEnter, Summon pet)
public ExPetSkillList(boolean onEnter, Pet pet)
{
_onEnter = onEnter;
_pet = pet;