Core/Scripts: Added wrapper method for despawning creatures DespawnOrUnsummon
This commit is contained in:
@@ -1656,6 +1656,14 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn)
|
||||
RemoveCorpse(false);
|
||||
}
|
||||
|
||||
void Creature::DespawnOrUnsummon(uint32 msTimeToDespawn /*= 0*/)
|
||||
{
|
||||
if (TempSummon* summon = this->ToTempSummon())
|
||||
summon->UnSummon();
|
||||
else
|
||||
ForcedDespawn(msTimeToDespawn);
|
||||
}
|
||||
|
||||
bool Creature::IsImmunedToSpell(SpellEntry const* spellInfo)
|
||||
{
|
||||
if (!spellInfo)
|
||||
|
||||
@@ -596,6 +596,7 @@ class Creature : public Unit, public GridObject<Creature>
|
||||
bool isDeadByDefault() const { return m_isDeadByDefault; };
|
||||
|
||||
void ForcedDespawn(uint32 timeMSToDespawn = 0);
|
||||
void DespawnOrUnsummon(uint32 msTimeToDespawn = 0);
|
||||
|
||||
time_t const& GetRespawnTime() const { return m_respawnTime; }
|
||||
time_t GetRespawnTimeEx() const;
|
||||
|
||||
@@ -199,7 +199,7 @@ void Vehicle::RemoveAllPassengers()
|
||||
|
||||
// creature passengers mounted on player mounts should be despawned at dismount
|
||||
if (GetBase()->GetTypeId() == TYPEID_PLAYER && passenger->ToCreature())
|
||||
passenger->ToCreature()->ForcedDespawn();
|
||||
passenger->ToCreature()->DespawnOrUnsummon();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user