diff options
author | SnapperRy <snapperryen@gmail.com> | 2016-09-30 13:16:37 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-03-04 19:01:42 +0100 |
commit | 034ff93ba869ad5dd69b043a70f7405a1c542c3b (patch) | |
tree | f2954e44b5eec13a14415c21ce0f2133595cb037 | |
parent | 064380015e51cb3e7e59a237ebbba5541b50a276 (diff) |
Core/World: properly re-initialize daily quest reset time when resetting daily quests. (#17986)
Prevents daily quests from resetting at weird times when restarting the server after a player has completed a daily quest.
(cherry picked from commit f9ea646c82f8cf34f295a5db0be3d7a14c9ca608)
-rw-r--r-- | src/server/game/World/World.cpp | 19 | ||||
-rw-r--r-- | src/server/game/World/World.h | 2 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 1a5e6de5dfe..ca78d179498 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2263,7 +2263,7 @@ void World::Update(uint32 diff) if (m_gameTime > m_NextDailyQuestReset) { DailyReset(); - m_NextDailyQuestReset += DAY; + InitDailyQuestResetTime(false); } /// Handle weekly quests reset time @@ -3088,18 +3088,19 @@ void World::InitWeeklyQuestResetTime() m_NextWeeklyQuestReset = wstime < curtime ? curtime : 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 2a460ef23df..e96092bd170 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -816,7 +816,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(); |