aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-01 21:25:54 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-01 21:25:54 +0100
commitd05246f171546085f43bed877408c0db8233b8e3 (patch)
tree9a903aef8d0fa9a8dff653e3e5d99794dfd3c0b0 /src
parenta896a7554f7a2c41d0225564896d7d2db61ec800 (diff)
Core/Quests: Always send quest questgivers in HandleQuestNPCQuery
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp22
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)