From d05246f171546085f43bed877408c0db8233b8e3 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Mon, 1 Sep 2014 21:25:54 +0100 Subject: Core/Quests: Always send quest questgivers in HandleQuestNPCQuery --- src/server/game/Handlers/QueryHandler.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src') 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) -- cgit v1.2.3