diff options
author | Machiavelli <machiavelli.trinity@gmail.com> | 2012-03-01 14:22:17 +0100 |
---|---|---|
committer | Machiavelli <machiavelli.trinity@gmail.com> | 2012-03-01 14:43:32 +0100 |
commit | a36a0a77ef75e66933ac5b8802a9ec7906acfd0b (patch) | |
tree | 09c14c188d68dbfe13cbedbaddb581ae8d15e8f8 | |
parent | b939ea59514489d6fc5e92eb47aa0b5d864b9695 (diff) |
Core/Player: Quests with status QUEST_STATUS_NONE(0) shouldn't be loaded into player's queststatus storage. These should be removed since they are remnants from the old queststatus storage system.
-rw-r--r-- | sql/updates/characters/2012_03_01_00_characters_character_queststatus.sql | 1 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 11 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sql/updates/characters/2012_03_01_00_characters_character_queststatus.sql b/sql/updates/characters/2012_03_01_00_characters_character_queststatus.sql new file mode 100644 index 00000000000..da3a0f786b8 --- /dev/null +++ b/sql/updates/characters/2012_03_01_00_characters_character_queststatus.sql @@ -0,0 +1 @@ +DELETE FROM `character_queststatus` WHERE `status`=0; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 095f9d49361..963cfc308d8 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -17781,12 +17781,19 @@ void Player::_LoadQuestStatus(PreparedQueryResult result) QuestStatusData& questStatusData = m_QuestStatus[quest_id]; uint8 qstatus = fields[1].GetUInt8(); - if (qstatus < MAX_QUEST_STATUS) + if (qstatus < MAX_QUEST_STATUS && qstatus > QUEST_STATUS_NONE) questStatusData.Status = QuestStatus(qstatus); + else if (qstatus == QUEST_STATUS_NONE) + { + sLog->outError("Player %s (GUID: %u) has QUEST_STATUS_NONE for quest %u and should be removed from character_queststatus.", + GetName(), GetGUIDLow(), quest_id); + continue; + } else { questStatusData.Status = QUEST_STATUS_INCOMPLETE; - sLog->outError("Player %s have invalid quest %d status (%u), replaced by QUEST_STATUS_INCOMPLETE(3).", GetName(), quest_id, qstatus); + sLog->outError("Player %s (GUID: %u) has invalid quest %d status (%u), replaced by QUEST_STATUS_INCOMPLETE(3).", + GetName(), GetGUIDLow(), quest_id, qstatus); } questStatusData.Explored = (fields[2].GetUInt8() > 0); |