diff options
| author | ShinDarth <borzifrancesco@gmail.com> | 2014-10-18 13:05:47 +0200 |
|---|---|---|
| committer | ShinDarth <borzifrancesco@gmail.com> | 2014-10-18 18:37:39 +0200 |
| commit | e806fc8a02dbde324dd9654b0165a7cac5ae7086 (patch) | |
| tree | 1eda6d5ec3adc207cbbdac6860ec20d63d7b5cb1 /src/server/game | |
| parent | 2523b476190438e446f76c522efbdce329dd08bf (diff) | |
Core/Quest: implement Quest Tracker
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 25 | ||||
| -rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 1 |
4 files changed, 39 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 74863b7e6f2..5fa10578328 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -61,6 +61,7 @@ #include "Pet.h" #include "QuestDef.h" #include "ReputationMgr.h" +#include "revision.h" #include "SkillDiscovery.h" #include "SocialMgr.h" #include "Spell.h" @@ -15235,6 +15236,19 @@ void Player::AddQuest(Quest const* quest, Object* questGiver) StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_QUEST, quest_id); SendQuestUpdate(quest_id); + + if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled + { + // prepare Quest Tracker datas + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_QUEST_TRACK); + stmt->setUInt32(0, quest_id); + stmt->setUInt32(1, GetGUIDLow()); + stmt->setString(2, _HASH); + stmt->setString(3, _DATE); + + // add to Quest Tracker + CharacterDatabase.Execute(stmt); + } } void Player::CompleteQuest(uint32 quest_id) @@ -15255,6 +15269,17 @@ void Player::CompleteQuest(uint32 quest_id) SendQuestComplete(quest_id); } } + + if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled + { + // prepare Quest Tracker datas + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_COMPLETE_TIME); + stmt->setUInt32(0, quest_id); + stmt->setUInt32(1, GetGUIDLow()); + + // add to Quest Tracker + CharacterDatabase.Execute(stmt); + } } void Player::IncompleteQuest(uint32 quest_id) diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index e4e1c9988f1..7872ac6aed6 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -420,6 +420,17 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPacket& recvData) _player->RemoveTimedAchievement(ACHIEVEMENT_TIMED_TYPE_QUEST, questId); TC_LOG_INFO("network", "Player %u abandoned quest %u", _player->GetGUIDLow(), questId); + + if (sWorld->getBoolConfig(CONFIG_QUEST_ENABLE_QUEST_TRACKER)) // check if Quest Tracker is enabled + { + // prepare Quest Tracker datas + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_QUEST_TRACK_ABANDON_TIME); + stmt->setUInt32(0, questId); + stmt->setUInt32(1, _player->GetGUIDLow()); + + // add to Quest Tracker + CharacterDatabase.Execute(stmt); + } } _player->SetQuestSlot(slot, 0); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 33c5042fc8d..ae474ef29b6 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -963,6 +963,8 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_WORLD_BOSS_LEVEL_DIFF] = sConfigMgr->GetIntDefault("WorldBossLevelDiff", 3); + m_bool_configs[CONFIG_QUEST_ENABLE_QUEST_TRACKER] = sConfigMgr->GetBoolDefault("Quests.EnableQuestTracker", false); + // note: disable value (-1) will assigned as 0xFFFFFFF, to prevent overflow at calculations limit it to max possible player level MAX_LEVEL(100) m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] = sConfigMgr->GetIntDefault("Quests.LowLevelHideDiff", 4); if (m_int_configs[CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF] > MAX_LEVEL) diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index b9c30302f4d..5c97b8f5653 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -149,6 +149,7 @@ enum WorldBoolConfigs CONFIG_PDUMP_NO_OVERWRITE, CONFIG_QUEST_IGNORE_AUTO_ACCEPT, CONFIG_QUEST_IGNORE_AUTO_COMPLETE, + CONFIG_QUEST_ENABLE_QUEST_TRACKER, CONFIG_WARDEN_ENABLED, CONFIG_ENABLE_MMAPS, CONFIG_WINTERGRASP_ENABLE, |
