diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 5b4c432464f..8b7881def6e 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2143,7 +2143,7 @@ void World::Update(uint32 diff) if (m_gameTime > m_NextDailyQuestReset) { ResetDailyQuests(); - m_NextDailyQuestReset += DAY; + InitDailyQuestResetTime(false); } /// Handle weekly quests reset time @@ -2981,18 +2981,19 @@ void World::InitWeeklyQuestResetTime() m_NextWeeklyQuestReset = wstime < curtime ? curtime : time_t(wstime); } -void World::InitDailyQuestResetTime() +void World::InitDailyQuestResetTime(bool loading) { - time_t mostRecentQuestTime; + time_t mostRecentQuestTime = 0; - QueryResult result = CharacterDatabase.Query("SELECT MAX(time) FROM character_queststatus_daily"); - if (result) + if (loading) { - Field* fields = result->Fetch(); - mostRecentQuestTime = time_t(fields[0].GetUInt32()); + QueryResult result = CharacterDatabase.Query("SELECT MAX(time) FROM character_queststatus_daily"); + if (result) + { + Field* fields = result->Fetch(); + mostRecentQuestTime = time_t(fields[0].GetUInt32()); + } } - else - mostRecentQuestTime = 0; // client built-in time for reset is 6:00 AM // FIX ME: client not show day start time diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 9a907257a83..9768052cf60 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -811,7 +811,7 @@ class TC_GAME_API World // callback for UpdateRealmCharacters void _UpdateRealmCharCount(PreparedQueryResult resultCharCount); - void InitDailyQuestResetTime(); + void InitDailyQuestResetTime(bool loading = true); void InitWeeklyQuestResetTime(); void InitMonthlyQuestResetTime(); void InitRandomBGResetTime();