diff options
author | Duarte Duarte <dnpd.dd@gmail.com> | 2015-03-14 21:43:44 +0000 |
---|---|---|
committer | Duarte Duarte <dnpd.dd@gmail.com> | 2015-03-14 21:43:44 +0000 |
commit | 70364a6b0cd1ac09c202275f2fa39c4bce16bef7 (patch) | |
tree | 72e6c0519548a90e1ff680b8b3982f98e036fb91 /src/server/game/Handlers/QuestHandler.cpp | |
parent | 1ab186070fc9f03ca6b789b85fd688784e4818c9 (diff) | |
parent | 0d050bb112dbd3a18edd41933f68f750c175f6f3 (diff) |
Merge pull request #14368 from DJScias/opcodes
Core/Packets: updated and enabled CMSG_QUESTGIVER_ACCEPT_QUEST
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index c5e0fc2e3b5..a13145394e5 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -95,16 +95,11 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPackets::Quest::QuestGiverHe creature->AI()->sGossipHello(_player); } -void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) +void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestGiverAcceptQuest& packet) { - ObjectGuid guid; - uint32 questId; - uint32 unk1; - recvData >> guid >> questId >> unk1; - - TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST %s, quest = %u, unk1 = %u", guid.ToString().c_str(), questId, unk1); + TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST %s, quest = %u, startcheat = %u", packet.QuestGiverGUID.ToString().c_str(), packet.QuestID, packet.StartCheat); - Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER); + Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM | TYPEMASK_PLAYER); #define CLOSE_GOSSIP_CLEAR_DIVIDER() \ do { \ @@ -121,8 +116,8 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) if (Player* playerQuestObject = object->ToPlayer()) { - if ((!_player->GetDivider().IsEmpty() && _player->GetDivider() != guid) || - ((object != _player && !playerQuestObject->CanShareQuest(questId)))) + if ((!_player->GetDivider().IsEmpty() && _player->GetDivider() != packet.QuestGiverGUID) || + ((object != _player && !playerQuestObject->CanShareQuest(packet.QuestID)))) { CLOSE_GOSSIP_CLEAR_DIVIDER(); return; @@ -130,7 +125,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) } else { - if (!object->hasQuest(questId)) + if (!object->hasQuest(packet.QuestID)) { CLOSE_GOSSIP_CLEAR_DIVIDER(); return; @@ -141,7 +136,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData) if (!_player->CanInteractWithQuestGiver(object)) return; - if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) + if (Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID)) { // prevent cheating if (!GetPlayer()->CanTakeQuest(quest, true)) |