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.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable; import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData; 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.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType; import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true); setFollowStatus(true);
updateAndBroadcastStatus(0); 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) if (_owner != null)
{
if (isPet())
{ {
sendPacket(new PetInfo(this, 1)); sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this)); sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null) if (getInventory() != null)
{ {
sendPacket(new PetItemList(getInventory().getItems())); sendPacket(new PetItemList(getInventory().getItems()));
} }
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
} }
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(); final Party party = _owner.getParty();
if (party != null) if (party != null)
{ {

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet; package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter; 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.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket public class ExPetSkillList implements IClientOutgoingPacket
{ {
private final boolean _onEnter; 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; _onEnter = onEnter;
_pet = pet; _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.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable; import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData; 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.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType; import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true); setFollowStatus(true);
updateAndBroadcastStatus(0); 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) if (_owner != null)
{
if (isPet())
{ {
sendPacket(new PetInfo(this, 1)); sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this)); sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null) if (getInventory() != null)
{ {
sendPacket(new PetItemList(getInventory().getItems())); sendPacket(new PetItemList(getInventory().getItems()));
} }
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
} }
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(); final Party party = _owner.getParty();
if (party != null) if (party != null)
{ {

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet; package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter; 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.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket public class ExPetSkillList implements IClientOutgoingPacket
{ {
private final boolean _onEnter; 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; _onEnter = onEnter;
_pet = pet; _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.ItemTable;
import org.l2jmobius.gameserver.data.sql.CharSummonTable; import org.l2jmobius.gameserver.data.sql.CharSummonTable;
import org.l2jmobius.gameserver.data.xml.ExperienceData; 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.InstanceType;
import org.l2jmobius.gameserver.enums.NpcInfoType; import org.l2jmobius.gameserver.enums.NpcInfoType;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
@ -133,24 +131,22 @@ public abstract class Summon extends Playable
setFollowStatus(true); setFollowStatus(true);
updateAndBroadcastStatus(0); 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) if (_owner != null)
{
if (isPet())
{ {
sendPacket(new PetInfo(this, 1)); sendPacket(new PetInfo(this, 1));
sendPacket(new ExPetSkillList(true, this)); sendPacket(new ExPetSkillList(true, (Pet) this));
if (getInventory() != null) if (getInventory() != null)
{ {
sendPacket(new PetItemList(getInventory().getItems())); sendPacket(new PetItemList(getInventory().getItems()));
} }
sendPacket(new RelationChanged(this, _owner.getRelation(_owner), false));
} }
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(); final Party party = _owner.getParty();
if (party != null) if (party != null)
{ {

View File

@ -17,7 +17,7 @@
package org.l2jmobius.gameserver.network.serverpackets.pet; package org.l2jmobius.gameserver.network.serverpackets.pet;
import org.l2jmobius.commons.network.PacketWriter; 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.model.skill.Skill;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -28,9 +28,9 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExPetSkillList implements IClientOutgoingPacket public class ExPetSkillList implements IClientOutgoingPacket
{ {
private final boolean _onEnter; 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; _onEnter = onEnter;
_pet = pet; _pet = pet;