From cb7f3d50edbf20f95d5aa2191648d90aa10e53db Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 26 Feb 2022 18:36:01 -0300 Subject: [PATCH] fix(Scripts/Kalimdor): fix Azuregos respawn timer not persisting after restarts (#10823) --- src/server/game/Entities/Creature/Creature.cpp | 9 +++++++++ src/server/game/Entities/Creature/Creature.h | 1 + src/server/scripts/Kalimdor/boss_azuregos.cpp | 2 ++ 3 files changed, 12 insertions(+) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 630fb8840..e18318072 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3517,3 +3517,12 @@ void Creature::SetRespawnTime(uint32 respawn) { m_respawnTime = respawn ? GameTime::GetGameTime().count() + respawn : 0; } + +void Creature::SaveRespawnTimeToDB() +{ + if (Map* map = GetMap()) + { + time_t respawnTimer = GetRespawnTime(); + map->SaveCreatureRespawnTime(GetSpawnId(), respawnTimer); + } +} diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index b78778497..315d1696a 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -275,6 +275,7 @@ public: [[nodiscard]] time_t const& GetRespawnTime() const { return m_respawnTime; } [[nodiscard]] time_t GetRespawnTimeEx() const; void SetRespawnTime(uint32 respawn); + void SaveRespawnTimeToDB(); void Respawn(bool force = false); void SaveRespawnTime() override; diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp index 7a3542a40..595047f73 100644 --- a/src/server/scripts/Kalimdor/boss_azuregos.cpp +++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp @@ -15,6 +15,7 @@ * with this program. If not, see . */ +#include "GameTime.h" #include "Player.h" #include "ScriptedGossip.h" #include "ScriptedCreature.h" @@ -142,6 +143,7 @@ public: }); me->SetRespawnTime(urand(2 * DAY, 3 * DAY)); + me->SaveRespawnTimeToDB(); } void UpdateAI(uint32 diff) override