diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-09-01 21:25:54 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-01 21:25:54 +0100 |
commit | d05246f171546085f43bed877408c0db8233b8e3 (patch) | |
tree | 9a903aef8d0fa9a8dff653e3e5d99794dfd3c0b0 /src/server/game/Handlers/QueryHandler.cpp | |
parent | a896a7554f7a2c41d0225564896d7d2db61ec800 (diff) |
Core/Quests: Always send quest questgivers in HandleQuestNPCQuery
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index cf75fa1e3c9..78b2c4a3a2a 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -429,20 +429,22 @@ void WorldSession::HandleQuestNPCQuery(WorldPacket& recvData) uint32 questId; recvData >> questId; - /// @todo verify if we should only send completed quests questgivers - if (_player->GetQuestStatus(questId) == QUEST_STATUS_COMPLETE) + if (!sObjectMgr->GetQuestTemplate(questId)) { - auto creatures = sObjectMgr->GetCreatureQuestInvolvedRelationReverseBounds(questId); - for (auto it = creatures.first; it != creatures.second; ++it) - quests[questId].push_back(it->second); - - auto gos = sObjectMgr->GetGOQuestInvolvedRelationReverseBounds(questId); - for (auto it = gos.first; it != gos.second; ++it) - quests[questId].push_back(it->second | 0x80000000); // GO mask + TC_LOG_DEBUG("network", "WORLD: Unknown quest %u in CMSG_QUEST_NPC_QUERY by player %u", questId, m_GUIDLow); + continue; } + + auto creatures = sObjectMgr->GetCreatureQuestInvolvedRelationReverseBounds(questId); + for (auto it = creatures.first; it != creatures.second; ++it) + quests[questId].push_back(it->second); + + auto gos = sObjectMgr->GetGOQuestInvolvedRelationReverseBounds(questId); + for (auto it = gos.first; it != gos.second; ++it) + quests[questId].push_back(it->second | 0x80000000); // GO mask } - WorldPacket data(SMSG_QUEST_NPC_QUERY_RESPONSE, 3 + count * 14); + WorldPacket data(SMSG_QUEST_NPC_QUERY_RESPONSE, 3 + quests.size() * 14); data.WriteBits(quests.size(), 23); for (auto it = quests.begin(); it != quests.end(); ++it) |