diff options
author | Intel <chemicstry@gmail.com> | 2014-12-29 23:01:50 +0200 |
---|---|---|
committer | Intel <chemicstry@gmail.com> | 2014-12-30 02:24:10 +0200 |
commit | 1f7e6a976d345204f7ff123e2eda51a719d25d2e (patch) | |
tree | cdd03e42ab0d042dffb3e776c330226ea5682f11 /src/server/game/Handlers/QuestHandler.cpp | |
parent | c5e35c9d0ce3cc5b6a87e0aa6a0b23d8a2ed6b5d (diff) |
Core/Quests: Added CMSG_QUESTGIVER_QUERY_QUEST
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index bed1cc72f66..1943b8e27f1 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -202,23 +202,19 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) #undef CLOSE_GOSSIP_CLEAR_DIVIDER } -void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket& recvData) +void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPackets::Quest::QuestGiverQueryQuest& packet) { - ObjectGuid guid; - uint32 questId; - uint8 unk1; - recvData >> guid >> questId >> unk1; - TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %s, quest = %u, unk1 = %u", guid.ToString().c_str(), questId, unk1); + TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST QuestGiverGUID = %s, QuestID = %u, RespondToGiver = %u", packet.QuestGiverGUID.ToString().c_str(), packet.QuestID, packet.RespondToGiver); // Verify that the guid is valid and is a questgiver or involved in the requested quest - Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM); - if (!object || (!object->hasQuest(questId) && !object->hasInvolvedQuest(questId))) + Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM); + if (!object || (!object->hasQuest(packet.QuestID) && !object->hasInvolvedQuest(packet.QuestID))) { _player->PlayerTalkClass->SendCloseGossip(); return; } - if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) + if (Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID)) { if (!_player->CanTakeQuest(quest, true)) return; |