Adjustments for Essence pet death.

This commit is contained in:
MobiusDevelopment
2022-04-24 09:35:01 +00:00
parent 7efbddf9bb
commit 2698b615fb
12 changed files with 176 additions and 56 deletions

View File

@@ -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) 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(); decayMe();
CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); if (!isPet())
{
CharSummonTable.getInstance().removeServitor(_owner, getObjectId());
}
} }
public void unSummon(Player owner) public void unSummon(Player owner)

View File

@@ -764,10 +764,14 @@ public class Pet extends Summon
@Override @Override
public void deleteMe(Player owner) public void deleteMe(Player owner)
{ {
_inventory.transferItemsToOwner(); // Pet related - Removed on Essence.
// _inventory.transferItemsToOwner();
super.deleteMe(owner); 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 @Override
@@ -783,7 +787,16 @@ public class Pet extends Summon
return false; return false;
} }
stopFeed(); 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); DecayTaskManager.getInstance().add(this);
if (owner != null) if (owner != null)
{ {
@@ -1002,8 +1015,11 @@ public class Pet extends Summon
pet.getStatus().setCurrentCp(pet.getMaxCp()); pet.getStatus().setCurrentCp(pet.getMaxCp());
if (rset.getDouble("curHp") < 1) if (rset.getDouble("curHp") < 1)
{ {
pet.setDead(true); // Pet related - Removed on Essence.
pet.stopHpMpRegeneration(); // pet.setDead(true);
// pet.stopHpMpRegeneration();
// Pet related - Added the following.
pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp());
} }
pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setEvolveLevel(pet.getPetData().getEvolveLevel());
pet.setCurrentFed(rset.getInt("fed")); pet.setCurrentFed(rset.getInt("fed"));

View File

@@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable
} }
long delay; long delay;
if (creature.isPet())
{ // Pet related - Removed on Essence.
delay = 86400; // if (creature.isPet())
} // {
else if (creature.getTemplate() instanceof NpcTemplate) // delay = 86400;
// }
// else
if (creature.getTemplate() instanceof NpcTemplate)
{ {
delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime();
} }

View File

@@ -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) 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(); decayMe();
CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); if (!isPet())
{
CharSummonTable.getInstance().removeServitor(_owner, getObjectId());
}
} }
public void unSummon(Player owner) public void unSummon(Player owner)

View File

@@ -764,10 +764,14 @@ public class Pet extends Summon
@Override @Override
public void deleteMe(Player owner) public void deleteMe(Player owner)
{ {
_inventory.transferItemsToOwner(); // Pet related - Removed on Essence.
// _inventory.transferItemsToOwner();
super.deleteMe(owner); 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 @Override
@@ -783,7 +787,16 @@ public class Pet extends Summon
return false; return false;
} }
stopFeed(); 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); DecayTaskManager.getInstance().add(this);
if (owner != null) if (owner != null)
{ {
@@ -1002,8 +1015,11 @@ public class Pet extends Summon
pet.getStatus().setCurrentCp(pet.getMaxCp()); pet.getStatus().setCurrentCp(pet.getMaxCp());
if (rset.getDouble("curHp") < 1) if (rset.getDouble("curHp") < 1)
{ {
pet.setDead(true); // Pet related - Removed on Essence.
pet.stopHpMpRegeneration(); // pet.setDead(true);
// pet.stopHpMpRegeneration();
// Pet related - Added the following.
pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp());
} }
pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setEvolveLevel(pet.getPetData().getEvolveLevel());
pet.setCurrentFed(rset.getInt("fed")); pet.setCurrentFed(rset.getInt("fed"));

View File

@@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable
} }
long delay; long delay;
if (creature.isPet())
{ // Pet related - Removed on Essence.
delay = 86400; // if (creature.isPet())
} // {
else if (creature.getTemplate() instanceof NpcTemplate) // delay = 86400;
// }
// else
if (creature.getTemplate() instanceof NpcTemplate)
{ {
delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime();
} }

View File

@@ -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) 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(); decayMe();
CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); if (!isPet())
{
CharSummonTable.getInstance().removeServitor(_owner, getObjectId());
}
} }
public void unSummon(Player owner) public void unSummon(Player owner)

View File

@@ -764,10 +764,14 @@ public class Pet extends Summon
@Override @Override
public void deleteMe(Player owner) public void deleteMe(Player owner)
{ {
_inventory.transferItemsToOwner(); // Pet related - Removed on Essence.
// _inventory.transferItemsToOwner();
super.deleteMe(owner); 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 @Override
@@ -783,7 +787,16 @@ public class Pet extends Summon
return false; return false;
} }
stopFeed(); 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); DecayTaskManager.getInstance().add(this);
if (owner != null) if (owner != null)
{ {
@@ -1002,8 +1015,11 @@ public class Pet extends Summon
pet.getStatus().setCurrentCp(pet.getMaxCp()); pet.getStatus().setCurrentCp(pet.getMaxCp());
if (rset.getDouble("curHp") < 1) if (rset.getDouble("curHp") < 1)
{ {
pet.setDead(true); // Pet related - Removed on Essence.
pet.stopHpMpRegeneration(); // pet.setDead(true);
// pet.stopHpMpRegeneration();
// Pet related - Added the following.
pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp());
} }
pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setEvolveLevel(pet.getPetData().getEvolveLevel());
pet.setCurrentFed(rset.getInt("fed")); pet.setCurrentFed(rset.getInt("fed"));

View File

@@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable
} }
long delay; long delay;
if (creature.isPet())
{ // Pet related - Removed on Essence.
delay = 86400; // if (creature.isPet())
} // {
else if (creature.getTemplate() instanceof NpcTemplate) // delay = 86400;
// }
// else
if (creature.getTemplate() instanceof NpcTemplate)
{ {
delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime();
} }

View File

@@ -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) 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(); decayMe();
CharSummonTable.getInstance().removeServitor(_owner, getObjectId()); if (!isPet())
{
CharSummonTable.getInstance().removeServitor(_owner, getObjectId());
}
} }
public void unSummon(Player owner) public void unSummon(Player owner)

View File

@@ -764,10 +764,14 @@ public class Pet extends Summon
@Override @Override
public void deleteMe(Player owner) public void deleteMe(Player owner)
{ {
_inventory.transferItemsToOwner(); // Pet related - Removed on Essence.
// _inventory.transferItemsToOwner();
super.deleteMe(owner); 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 @Override
@@ -783,7 +787,16 @@ public class Pet extends Summon
return false; return false;
} }
stopFeed(); 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); DecayTaskManager.getInstance().add(this);
if (owner != null) if (owner != null)
{ {
@@ -1002,8 +1015,11 @@ public class Pet extends Summon
pet.getStatus().setCurrentCp(pet.getMaxCp()); pet.getStatus().setCurrentCp(pet.getMaxCp());
if (rset.getDouble("curHp") < 1) if (rset.getDouble("curHp") < 1)
{ {
pet.setDead(true); // Pet related - Removed on Essence.
pet.stopHpMpRegeneration(); // pet.setDead(true);
// pet.stopHpMpRegeneration();
// Pet related - Added the following.
pet.setCurrentHpMp(pet.getMaxHp(), pet.getMaxMp());
} }
pet.setEvolveLevel(pet.getPetData().getEvolveLevel()); pet.setEvolveLevel(pet.getPetData().getEvolveLevel());
pet.setCurrentFed(rset.getInt("fed")); pet.setCurrentFed(rset.getInt("fed"));

View File

@@ -75,11 +75,15 @@ public class DecayTaskManager implements Runnable
} }
long delay; long delay;
if (creature.isPet())
{ // Pet related - Removed on Essence.
delay = 86400; // if (creature.isPet())
} // {
else if (creature.getTemplate() instanceof NpcTemplate) // delay = 86400;
// }
// else
if (creature.getTemplate() instanceof NpcTemplate)
{ {
delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime(); delay = ((NpcTemplate) creature.getTemplate()).getCorpseTime();
} }