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)
{
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)

View File

@@ -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"));

View File

@@ -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();
}

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)
{
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)

View File

@@ -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"));

View File

@@ -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();
}

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)
{
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)

View File

@@ -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"));

View File

@@ -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();
}

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)
{
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)

View File

@@ -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"));

View File

@@ -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();
}