From 2698b615fb64b1287d6d6440f363e6dcc821fc18 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 24 Apr 2022 09:35:01 +0000 Subject: [PATCH] Adjustments for Essence pet death. --- .../gameserver/model/actor/Summon.java | 16 +++++++++-- .../gameserver/model/actor/instance/Pet.java | 28 +++++++++++++++---- .../taskmanager/DecayTaskManager.java | 14 ++++++---- .../gameserver/model/actor/Summon.java | 16 +++++++++-- .../gameserver/model/actor/instance/Pet.java | 28 +++++++++++++++---- .../taskmanager/DecayTaskManager.java | 14 ++++++---- .../gameserver/model/actor/Summon.java | 16 +++++++++-- .../gameserver/model/actor/instance/Pet.java | 28 +++++++++++++++---- .../taskmanager/DecayTaskManager.java | 14 ++++++---- .../gameserver/model/actor/Summon.java | 16 +++++++++-- .../gameserver/model/actor/instance/Pet.java | 28 +++++++++++++++---- .../taskmanager/DecayTaskManager.java | 14 ++++++---- 12 files changed, 176 insertions(+), 56 deletions(-) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java index 9f7d426f27..66c8c07051 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -410,14 +410,24 @@ public abstract class Summon extends Playable } } - // pet will be deleted along with all his items + // Pet will be deleted along with all his items. if (getInventory() != null) { - getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Removed on Essence. + // getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Added the following. + for (Item item : getInventory().getItems()) + { + World.getInstance().removeObject(item); + } } + decayMe(); - CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + if (!isPet()) + { + CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + } } public void unSummon(Player owner) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java index 6801a921df..2974afe2e2 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java @@ -764,10 +764,14 @@ public class Pet extends Summon @Override public void deleteMe(Player owner) { - _inventory.transferItemsToOwner(); + // Pet related - Removed on Essence. + // _inventory.transferItemsToOwner(); + super.deleteMe(owner); - destroyControlItem(owner, false); // this should also delete the pet from the db - CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); + + // Pet related - Removed on Essence. + // destroyControlItem(owner, false); // this should also delete the pet from the db + // CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); } @Override @@ -783,7 +787,16 @@ public class Pet extends Summon return false; } stopFeed(); - sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + + // Pet related - Removed on Essence. + // sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + // Pet related - Added the following. + storeMe(); + for (Skill skill : getAllSkills()) + { + storePetSkills(skill.getId(), skill.getLevel()); + } + DecayTaskManager.getInstance().add(this); if (owner != null) { @@ -1002,8 +1015,11 @@ public class Pet extends Summon pet.getStatus().setCurrentCp(pet.getMaxCp()); if (rset.getDouble("curHp") < 1) { - pet.setDead(true); - pet.stopHpMpRegeneration(); + // Pet related - Removed on Essence. + // pet.setDead(true); + // pet.stopHpMpRegeneration(); + // Pet related - Added the following. + pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp()); } pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setCurrentFed(rset.getInt("fed")); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 21e90a66ea..3094da1658 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable } long delay; - if (creature.isPet()) - { - delay = 86400; - } - else if (creature.getTemplate() instanceof NpcTemplate) + + // Pet related - Removed on Essence. + // if (creature.isPet()) + // { + // delay = 86400; + // } + // else + + if (creature.getTemplate() instanceof NpcTemplate) { delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java index 8ea3fd358a..d44a3c6854 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -410,14 +410,24 @@ public abstract class Summon extends Playable } } - // pet will be deleted along with all his items + // Pet will be deleted along with all his items. if (getInventory() != null) { - getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Removed on Essence. + // getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Added the following. + for (Item item : getInventory().getItems()) + { + World.getInstance().removeObject(item); + } } + decayMe(); - CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + if (!isPet()) + { + CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + } } public void unSummon(Player owner) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java index 8668ed8a0c..feab7bf6e6 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java @@ -764,10 +764,14 @@ public class Pet extends Summon @Override public void deleteMe(Player owner) { - _inventory.transferItemsToOwner(); + // Pet related - Removed on Essence. + // _inventory.transferItemsToOwner(); + super.deleteMe(owner); - destroyControlItem(owner, false); // this should also delete the pet from the db - CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); + + // Pet related - Removed on Essence. + // destroyControlItem(owner, false); // this should also delete the pet from the db + // CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); } @Override @@ -783,7 +787,16 @@ public class Pet extends Summon return false; } stopFeed(); - sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + + // Pet related - Removed on Essence. + // sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + // Pet related - Added the following. + storeMe(); + for (Skill skill : getAllSkills()) + { + storePetSkills(skill.getId(), skill.getLevel()); + } + DecayTaskManager.getInstance().add(this); if (owner != null) { @@ -1002,8 +1015,11 @@ public class Pet extends Summon pet.getStatus().setCurrentCp(pet.getMaxCp()); if (rset.getDouble("curHp") < 1) { - pet.setDead(true); - pet.stopHpMpRegeneration(); + // Pet related - Removed on Essence. + // pet.setDead(true); + // pet.stopHpMpRegeneration(); + // Pet related - Added the following. + pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp()); } pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setCurrentFed(rset.getInt("fed")); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 21e90a66ea..3094da1658 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable } long delay; - if (creature.isPet()) - { - delay = 86400; - } - else if (creature.getTemplate() instanceof NpcTemplate) + + // Pet related - Removed on Essence. + // if (creature.isPet()) + // { + // delay = 86400; + // } + // else + + if (creature.getTemplate() instanceof NpcTemplate) { delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java index fe96afb100..df08fa6034 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -410,14 +410,24 @@ public abstract class Summon extends Playable } } - // pet will be deleted along with all his items + // Pet will be deleted along with all his items. if (getInventory() != null) { - getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Removed on Essence. + // getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Added the following. + for (Item item : getInventory().getItems()) + { + World.getInstance().removeObject(item); + } } + decayMe(); - CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + if (!isPet()) + { + CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + } } public void unSummon(Player owner) diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java index 81cf539dd2..059ecba0a7 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java @@ -764,10 +764,14 @@ public class Pet extends Summon @Override public void deleteMe(Player owner) { - _inventory.transferItemsToOwner(); + // Pet related - Removed on Essence. + // _inventory.transferItemsToOwner(); + super.deleteMe(owner); - destroyControlItem(owner, false); // this should also delete the pet from the db - CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); + + // Pet related - Removed on Essence. + // destroyControlItem(owner, false); // this should also delete the pet from the db + // CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); } @Override @@ -783,7 +787,16 @@ public class Pet extends Summon return false; } stopFeed(); - sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + + // Pet related - Removed on Essence. + // sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + // Pet related - Added the following. + storeMe(); + for (Skill skill : getAllSkills()) + { + storePetSkills(skill.getId(), skill.getLevel()); + } + DecayTaskManager.getInstance().add(this); if (owner != null) { @@ -1002,8 +1015,11 @@ public class Pet extends Summon pet.getStatus().setCurrentCp(pet.getMaxCp()); if (rset.getDouble("curHp") < 1) { - pet.setDead(true); - pet.stopHpMpRegeneration(); + // Pet related - Removed on Essence. + // pet.setDead(true); + // pet.stopHpMpRegeneration(); + // Pet related - Added the following. + pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp()); } pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setCurrentFed(rset.getInt("fed")); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 21e90a66ea..3094da1658 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable } long delay; - if (creature.isPet()) - { - delay = 86400; - } - else if (creature.getTemplate() instanceof NpcTemplate) + + // Pet related - Removed on Essence. + // if (creature.isPet()) + // { + // delay = 86400; + // } + // else + + if (creature.getTemplate() instanceof NpcTemplate) { delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java index fe96afb100..df08fa6034 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Summon.java @@ -410,14 +410,24 @@ public abstract class Summon extends Playable } } - // pet will be deleted along with all his items + // Pet will be deleted along with all his items. if (getInventory() != null) { - getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Removed on Essence. + // getInventory().destroyAllItems("pet deleted", _owner, this); + // Pet related - Added the following. + for (Item item : getInventory().getItems()) + { + World.getInstance().removeObject(item); + } } + decayMe(); - CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + if (!isPet()) + { + CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); + } } public void unSummon(Player owner) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java index 81cf539dd2..059ecba0a7 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Pet.java @@ -764,10 +764,14 @@ public class Pet extends Summon @Override public void deleteMe(Player owner) { - _inventory.transferItemsToOwner(); + // Pet related - Removed on Essence. + // _inventory.transferItemsToOwner(); + super.deleteMe(owner); - destroyControlItem(owner, false); // this should also delete the pet from the db - CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); + + // Pet related - Removed on Essence. + // destroyControlItem(owner, false); // this should also delete the pet from the db + // CharSummonTable.getInstance().getPets().remove(getOwner().getObjectId()); } @Override @@ -783,7 +787,16 @@ public class Pet extends Summon return false; } stopFeed(); - sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + + // Pet related - Removed on Essence. + // sendPacket(SystemMessageId.THE_PET_HAS_BEEN_KILLED_IF_YOU_DON_T_RESURRECT_IT_WITHIN_24_H_THE_PET_S_BODY_WILL_DISAPPEAR_ALONG_WITH_ALL_THE_PET_S_ITEMS); + // Pet related - Added the following. + storeMe(); + for (Skill skill : getAllSkills()) + { + storePetSkills(skill.getId(), skill.getLevel()); + } + DecayTaskManager.getInstance().add(this); if (owner != null) { @@ -1002,8 +1015,11 @@ public class Pet extends Summon pet.getStatus().setCurrentCp(pet.getMaxCp()); if (rset.getDouble("curHp") < 1) { - pet.setDead(true); - pet.stopHpMpRegeneration(); + // Pet related - Removed on Essence. + // pet.setDead(true); + // pet.stopHpMpRegeneration(); + // Pet related - Added the following. + pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp()); } pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setCurrentFed(rset.getInt("fed")); diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java index 21e90a66ea..3094da1658 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/DecayTaskManager.java @@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable } long delay; - if (creature.isPet()) - { - delay = 86400; - } - else if (creature.getTemplate() instanceof NpcTemplate) + + // Pet related - Removed on Essence. + // if (creature.isPet()) + // { + // delay = 86400; + // } + // else + + if (creature.getTemplate() instanceof NpcTemplate) { delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); }