mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Core/Creature: fix _DespawnAtEvade saving wrong respawn time
Closes #19557
(cherry picked from commit 47d387d6b0)
This commit is contained in:
@@ -537,7 +537,7 @@ bool BossAI::CanAIAttack(Unit const* target) const
|
||||
return CheckBoundary(target);
|
||||
}
|
||||
|
||||
void BossAI::_DespawnAtEvade(uint32 delayToRespawn, Creature* who)
|
||||
void BossAI::_DespawnAtEvade(uint32 delayToRespawn /*= 30*/, Creature* who /*= nullptr*/)
|
||||
{
|
||||
if (delayToRespawn < 2)
|
||||
{
|
||||
|
||||
@@ -2048,27 +2048,34 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds const& forceRespawn
|
||||
{
|
||||
if (timeMSToDespawn)
|
||||
{
|
||||
ForcedDespawnDelayEvent* pEvent = new ForcedDespawnDelayEvent(*this, forceRespawnTimer);
|
||||
|
||||
m_Events.AddEvent(pEvent, m_Events.CalculateTime(timeMSToDespawn));
|
||||
m_Events.AddEvent(new ForcedDespawnDelayEvent(*this, forceRespawnTimer), m_Events.CalculateTime(timeMSToDespawn));
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 corpseDelay = GetCorpseDelay();
|
||||
uint32 respawnDelay = GetRespawnDelay();
|
||||
|
||||
// do it before killing creature
|
||||
DestroyForNearbyPlayers();
|
||||
|
||||
bool overrideRespawnTime = false;
|
||||
if (IsAlive())
|
||||
setDeathState(JUST_DIED);
|
||||
|
||||
bool overrideRespawnTime = true;
|
||||
if (forceRespawnTimer > Seconds::zero())
|
||||
{
|
||||
SetRespawnTime(forceRespawnTimer.count());
|
||||
overrideRespawnTime = false;
|
||||
if (forceRespawnTimer > Seconds::zero())
|
||||
{
|
||||
SetCorpseDelay(0);
|
||||
SetRespawnDelay(forceRespawnTimer.count());
|
||||
overrideRespawnTime = false;
|
||||
}
|
||||
|
||||
setDeathState(JUST_DIED);
|
||||
}
|
||||
|
||||
// Skip corpse decay time
|
||||
RemoveCorpse(overrideRespawnTime, false);
|
||||
|
||||
SetCorpseDelay(corpseDelay);
|
||||
SetRespawnDelay(respawnDelay);
|
||||
}
|
||||
|
||||
void Creature::DespawnOrUnsummon(uint32 msTimeToDespawn /*= 0*/, Seconds const& forceRespawnTimer /*= 0*/)
|
||||
|
||||
Reference in New Issue
Block a user