From 5e1494e4b4fe9c4bfd13f4301e99abb99c348e8a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 14 Oct 2021 19:47:15 -0400 Subject: [PATCH] Core/GameObject: Fix an edge case where GOs might never respawn after being manually despawned. Port From (https://github.com/TrinityCore/TrinityCore/commit/eb7a8584e227b7cbd68c051c044f08c47019586b) --- Source/Game/Entities/GameObject/GameObject.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 0966031be..a446f198a 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -435,7 +435,10 @@ namespace Game.Entities if (m_despawnDelay > diff) m_despawnDelay -= diff; else + { + m_despawnDelay = 0; DespawnOrUnsummon(TimeSpan.FromMilliseconds(0), m_despawnRespawnTime); + } } switch (m_lootState) @@ -896,9 +899,11 @@ namespace Game.Entities } else { - uint respawnDelay = (uint)((forceRespawnTime > TimeSpan.Zero) ? forceRespawnTime.TotalSeconds : m_respawnDelayTime); - if (m_goData != null && respawnDelay != 0) + if (m_goData != null) + { + uint respawnDelay = (uint)((forceRespawnTime > TimeSpan.Zero) ? forceRespawnTime.TotalSeconds : m_respawnDelayTime); SaveRespawnTime(respawnDelay); + } Delete(); } }