diff --git a/L2J_Mobius_Underground/dist/game/data/ActionData.xml b/L2J_Mobius_Underground/dist/game/data/ActionData.xml index ea5cd511e2..a03d5f141e 100644 --- a/L2J_Mobius_Underground/dist/game/data/ActionData.xml +++ b/L2J_Mobius_Underground/dist/game/data/ActionData.xml @@ -109,25 +109,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -136,16 +136,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java index 2fdc002601..c315af3a35 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSoulShot.java @@ -61,8 +61,9 @@ public class BeastSoulShot implements IItemHandler } final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); - if (aliveServitor.isEmpty()) + if ((pet == null) && aliveServitor.isEmpty()) { + activeOwner.sendMessage("asdas"); activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); return false; } diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java index bf0eeed4e2..765194563e 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/BeastSpiritShot.java @@ -61,7 +61,7 @@ public class BeastSpiritShot implements IItemHandler } final List aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList()); - if (aliveServitor.isEmpty()) + if ((pet == null) && aliveServitor.isEmpty()) { activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT); return false; diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/playeractions/PetAttack.java b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/playeractions/PetAttack.java index c57e901049..ebc8404430 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/playeractions/PetAttack.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/playeractions/PetAttack.java @@ -50,6 +50,5 @@ public final class PetAttack implements IPlayerActionHandler { pet.doAttack(activeChar.getTarget()); } - } } diff --git a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/data/xml/impl/PetDataTable.java b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/data/xml/impl/PetDataTable.java index 46085706e7..47e6bc5a49 100644 --- a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/data/xml/impl/PetDataTable.java +++ b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/data/xml/impl/PetDataTable.java @@ -180,6 +180,10 @@ public final class PetDataTable implements IGameXmlReader final L2PetData pd = getPetData(petId); if (pd != null) { + if (petLevel > pd.getMaxLevel()) + { + return pd.getPetLevelData(pd.getMaxLevel()); + } return pd.getPetLevelData(petLevel); } return null; diff --git a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/L2PetData.java b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/L2PetData.java index e7cc17956e..95945bfb4e 100644 --- a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/L2PetData.java +++ b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/L2PetData.java @@ -191,12 +191,14 @@ public class L2PetData public int getAvailableLevel(int skillId, int petLvl) { int lvl = 0; + boolean found = false; for (L2PetSkillLearn temp : _skills) { if (temp.getSkillId() != skillId) { continue; } + found = true; if (temp.getSkillLevel() == 0) { if (petLvl < 70) @@ -228,6 +230,10 @@ public class L2PetData } } } + if (found && (lvl == 0)) + { + return 1; + } return lvl; }