Core/Quests: convert CMSG_QUEST_GIVER_ACCEPT_QUEST and CMSG_QUEST_GIVER_CHOOSE_REWARD to packet class
This commit is contained in:
1 parent
21e8b34e35
commit
1ae4749762
8 files changed
+101
-65
No files matched your search
@@ -31,6 +31,7 @@
|
||||
#include "ObjectMgr.h"
|
||||
#include "Player.h"
|
||||
#include "QuestDef.h"
|
||||
#include "QuestPackets.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "World.h"
|
||||
#include "WorldPacket.h"
|
||||
@@ -103,20 +104,15 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket& recvData)
|
||||
_player->SendPreparedGossip(creature);
|
||||
}
|
||||
|
||||
void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestGiverAcceptQuest& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint32 questId;
|
||||
uint32 startCheat;
|
||||
recvData >> guid >> questId >> startCheat;
|
||||
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST %s, quest = %u, startCheat = %u", guid.ToString().c_str(), questId, startCheat);
|
||||
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;
|
||||
if (!guid.IsPlayer())
|
||||
object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM);
|
||||
if (!packet.QuestGiverGUID.IsPlayer())
|
||||
object = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM);
|
||||
else
|
||||
object = ObjectAccessor::FindPlayer(guid);
|
||||
object = ObjectAccessor::FindPlayer(packet.QuestGiverGUID);
|
||||
|
||||
#define CLOSE_GOSSIP_CLEAR_SHARING_INFO() \
|
||||
do { \
|
||||
@@ -133,7 +129,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
|
||||
|
||||
if (Player* playerQuestObject = object->ToPlayer())
|
||||
{
|
||||
if ((_player->GetPlayerSharingQuest() && _player->GetPlayerSharingQuest() != guid) || !playerQuestObject->CanShareQuest(questId))
|
||||
if ((_player->GetPlayerSharingQuest() && _player->GetPlayerSharingQuest() != packet.QuestGiverGUID) || !playerQuestObject->CanShareQuest(packet.QuestID))
|
||||
{
|
||||
CLOSE_GOSSIP_CLEAR_SHARING_INFO();
|
||||
return;
|
||||
@@ -146,7 +142,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!object->hasQuest(questId))
|
||||
if (!object->hasQuest(packet.QuestID))
|
||||
{
|
||||
CLOSE_GOSSIP_CLEAR_SHARING_INFO();
|
||||
return;
|
||||
@@ -160,7 +156,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
|
||||
if (Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID))
|
||||
{
|
||||
// prevent cheating
|
||||
if (!GetPlayer()->CanTakeQuest(quest, true))
|
||||
@@ -196,7 +192,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
|
||||
|
||||
if (player->CanTakeQuest(quest, true))
|
||||
{
|
||||
player->SetQuestSharingInfo(_player->GetGUID(), questId);
|
||||
player->SetQuestSharingInfo(_player->GetGUID(), packet.QuestID);
|
||||
|
||||
// need confirmation that any gossip window will close
|
||||
player->PlayerTalkClass->SendCloseGossip();
|
||||
@@ -265,21 +261,17 @@ void WorldSession::HandleQuestQueryOpcode(WorldPacket& recvData)
|
||||
_player->PlayerTalkClass->SendQuestQueryResponse(quest);
|
||||
}
|
||||
|
||||
void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::QuestGiverChooseReward& packet)
|
||||
{
|
||||
uint32 questId, reward;
|
||||
ObjectGuid guid;
|
||||
recvData >> guid >> questId >> reward;
|
||||
|
||||
if (reward >= QUEST_REWARD_CHOICES_COUNT)
|
||||
if (packet.ItemChoiceID >= QUEST_REWARD_CHOICES_COUNT)
|
||||
{
|
||||
TC_LOG_ERROR("entities.player.cheat", "Error in CMSG_QUESTGIVER_CHOOSE_REWARD: player %s (guid %d) tried to get invalid reward (%u) (possible packet-hacking detected)", _player->GetName().c_str(), _player->GetGUID().GetCounter(), reward);
|
||||
TC_LOG_ERROR("entities.player.cheat", "Error in CMSG_QUESTGIVER_CHOOSE_REWARD: player %s (guid %d) tried to get invalid reward (%u) (possible packet-hacking detected)", _player->GetName().c_str(), _player->GetGUID().GetCounter(), packet.ItemChoiceID);
|
||||
return;
|
||||
}
|
||||
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_CHOOSE_REWARD npc = %s, quest = %u, reward = %u", guid.ToString().c_str(), questId, reward);
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_CHOOSE_REWARD npc = %s, quest = %u, reward = %u", packet.QuestGiverGUID.ToString().c_str(), packet.QuestID, packet.ItemChoiceID);
|
||||
|
||||
Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
|
||||
Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID);
|
||||
if (!quest)
|
||||
return;
|
||||
|
||||
@@ -287,8 +279,8 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
|
||||
if (!quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))
|
||||
{
|
||||
object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
|
||||
if (!object || !object->hasInvolvedQuest(questId))
|
||||
object = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
|
||||
if (!object || !object->hasInvolvedQuest(packet.QuestID))
|
||||
return;
|
||||
|
||||
// some kind of WPE protection
|
||||
@@ -296,17 +288,17 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
if ((!_player->CanSeeStartQuest(quest) && _player->GetQuestStatus(questId) == QUEST_STATUS_NONE) ||
|
||||
(_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE && !quest->IsAutoComplete()))
|
||||
if ((!_player->CanSeeStartQuest(quest) && _player->GetQuestStatus(packet.QuestID) == QUEST_STATUS_NONE) ||
|
||||
(_player->GetQuestStatus(packet.QuestID) != QUEST_STATUS_COMPLETE && !quest->IsAutoComplete()))
|
||||
{
|
||||
TC_LOG_ERROR("entities.player.cheat", "Error in QUEST_STATUS_COMPLETE: player %s (guid %u) tried to complete quest %u, but is not allowed to do so (possible packet-hacking or high latency)",
|
||||
_player->GetName().c_str(), _player->GetGUID().GetCounter(), questId);
|
||||
_player->GetName().c_str(), _player->GetGUID().GetCounter(), packet.QuestID);
|
||||
return;
|
||||
}
|
||||
|
||||
if (_player->CanRewardQuest(quest, reward, true))
|
||||
if (_player->CanRewardQuest(quest, packet.ItemChoiceID, true))
|
||||
{
|
||||
_player->RewardQuest(quest, reward, object);
|
||||
_player->RewardQuest(quest, packet.ItemChoiceID, object);
|
||||
|
||||
switch (object->GetTypeId())
|
||||
{
|
||||
@@ -314,7 +306,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
case TYPEID_PLAYER:
|
||||
{
|
||||
// Send next quest
|
||||
if (Quest const* nextQuest = _player->GetNextQuest(guid, quest))
|
||||
if (Quest const* nextQuest = _player->GetNextQuest(packet.QuestGiverGUID, quest))
|
||||
{
|
||||
// Only send the quest to the player if the conditions are met
|
||||
if (_player->CanTakeQuest(nextQuest, false))
|
||||
@@ -322,19 +314,19 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true))
|
||||
_player->AddQuestAndCheckCompletion(nextQuest, object);
|
||||
|
||||
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true, false);
|
||||
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
_player->PlayerTalkClass->ClearMenus();
|
||||
if (Creature* creatureQGiver = object->ToCreature())
|
||||
creatureQGiver->AI()->QuestReward(_player, quest, reward);
|
||||
creatureQGiver->AI()->QuestReward(_player, quest, packet.ItemChoiceID);
|
||||
break;
|
||||
}
|
||||
case TYPEID_GAMEOBJECT:
|
||||
{
|
||||
// Send next quest
|
||||
if (Quest const* nextQuest = _player->GetNextQuest(guid, quest))
|
||||
if (Quest const* nextQuest = _player->GetNextQuest(packet.QuestGiverGUID, quest))
|
||||
{
|
||||
// Only send the quest to the player if the conditions are met
|
||||
if (_player->CanTakeQuest(nextQuest, false))
|
||||
@@ -342,13 +334,13 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
if (nextQuest->IsAutoAccept() && _player->CanAddQuest(nextQuest, true))
|
||||
_player->AddQuestAndCheckCompletion(nextQuest, object);
|
||||
|
||||
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, guid, true, false);
|
||||
_player->PlayerTalkClass->SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
_player->PlayerTalkClass->ClearMenus();
|
||||
if (GameObject* questGiver = object->ToGameObject())
|
||||
questGiver->AI()->QuestReward(_player, quest, reward);
|
||||
questGiver->AI()->QuestReward(_player, quest, packet.ItemChoiceID);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -356,7 +348,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
|
||||
}
|
||||
}
|
||||
else
|
||||
_player->PlayerTalkClass->SendQuestGiverOfferReward(quest, guid, true);
|
||||
_player->PlayerTalkClass->SendQuestGiverOfferReward(quest, packet.QuestGiverGUID, true);
|
||||
}
|
||||
|
||||
void WorldSession::HandleQuestgiverRequestRewardOpcode(WorldPacket& recvData)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "AuthenticationPackets.h"
|
||||
#include "GuildPackets.h"
|
||||
#include "LFGPackets.h"
|
||||
#include "QuestPackets.h"
|
||||
#include "SystemPackets.h"
|
||||
|
||||
#endif // AllPackets_h__
|
||||
@@ -37,7 +37,6 @@ WorldPacket const* WorldPackets::Quest::QuestGiverRequestItems::Write()
|
||||
_worldPacket << uint32(obj.ObjectID);
|
||||
_worldPacket << uint32(obj.Amount);
|
||||
_worldPacket << uint32(obj.DisplayID);
|
||||
|
||||
}
|
||||
|
||||
_worldPacket << uint32(Currency.size());
|
||||
@@ -52,3 +51,17 @@ WorldPacket const* WorldPackets::Quest::QuestGiverRequestItems::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Quest::QuestGiverAcceptQuest::Read()
|
||||
{
|
||||
_worldPacket >> QuestGiverGUID;
|
||||
_worldPacket >> QuestID;
|
||||
_worldPacket >> StartCheat;
|
||||
}
|
||||
|
||||
void WorldPackets::Quest::QuestGiverChooseReward::Read()
|
||||
{
|
||||
_worldPacket >> QuestGiverGUID;
|
||||
_worldPacket >> QuestID;
|
||||
_worldPacket >> ItemChoiceID;
|
||||
}
|
||||
@@ -62,6 +62,30 @@ namespace WorldPackets
|
||||
std::string QuestTitle;
|
||||
std::string CompletionText;
|
||||
};
|
||||
|
||||
class QuestGiverAcceptQuest final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
QuestGiverAcceptQuest(WorldPacket&& packet) : ClientPacket(CMSG_QUEST_GIVER_ACCEPT_QUEST, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid QuestGiverGUID;
|
||||
uint32 QuestID = 0;
|
||||
uint32 StartCheat = 0;
|
||||
};
|
||||
|
||||
class QuestGiverChooseReward final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
QuestGiverChooseReward(WorldPacket&& packet) : ClientPacket(CMSG_QUEST_GIVER_CHOOSE_REWARD, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid QuestGiverGUID;
|
||||
int32 QuestID = 0;
|
||||
int32 ItemChoiceID = 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -511,14 +511,14 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryInspectAchievements );
|
||||
DEFINE_HANDLER(CMSG_QUERY_QUESTS_COMPLETED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryQuestsCompleted );
|
||||
DEFINE_HANDLER(CMSG_QUERY_TIME, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryTimeOpcode );
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_ACCEPT_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverAcceptQuestOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_CHOOSE_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverChooseRewardOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_COMPLETE_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverCompleteQuest );
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_HELLO, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverHelloOpcode );
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_QUERY_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverQueryQuestOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_REQUEST_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverRequestRewardOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery);
|
||||
DEFINE_HANDLER(CMSG_QUESTGIVER_STATUS_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusQueryOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_ACCEPT_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverAcceptQuestOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_CHOOSE_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverChooseRewardOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_COMPLETE_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverCompleteQuest );
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_HELLO, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverHelloOpcode );
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_QUERY_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverQueryQuestOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_REQUEST_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverRequestRewardOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery);
|
||||
DEFINE_HANDLER(CMSG_QUEST_GIVER_STATUS_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusQueryOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUESTLOG_REMOVE_QUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestLogRemoveQuest );
|
||||
DEFINE_HANDLER(CMSG_QUEST_CONFIRM_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestConfirmAccept );
|
||||
DEFINE_HANDLER(CMSG_QUEST_NPC_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestNPCQuery );
|
||||
|
||||
@@ -426,16 +426,16 @@ enum OpcodeClient : uint16
|
||||
CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x4D27,
|
||||
CMSG_QUERY_QUESTS_COMPLETED = 0x2317,
|
||||
CMSG_QUERY_TIME = 0x0A36,
|
||||
CMSG_QUESTGIVER_ACCEPT_QUEST = 0x6B37,
|
||||
CMSG_QUESTGIVER_CANCEL = 0x0000,
|
||||
CMSG_QUESTGIVER_CHOOSE_REWARD = 0x2125,
|
||||
CMSG_QUESTGIVER_COMPLETE_QUEST = 0x0114,
|
||||
CMSG_QUESTGIVER_HELLO = 0x0D17,
|
||||
CMSG_QUESTGIVER_QUERY_QUEST = 0x2F14,
|
||||
CMSG_QUESTGIVER_QUEST_AUTOLAUNCH = 0x0000,
|
||||
CMSG_QUESTGIVER_REQUEST_REWARD = 0x2534,
|
||||
CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY = 0x6305,
|
||||
CMSG_QUESTGIVER_STATUS_QUERY = 0x4407,
|
||||
CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x6B37,
|
||||
CMSG_QUEST_GIVER_CANCEL = 0x0000,
|
||||
CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x2125,
|
||||
CMSG_QUEST_GIVER_COMPLETE_QUEST = 0x0114,
|
||||
CMSG_QUEST_GIVER_HELLO = 0x0D17,
|
||||
CMSG_QUEST_GIVER_QUERY_QUEST = 0x2F14,
|
||||
CMSG_QUEST_GIVER_QUEST_AUTOLAUNCH = 0x0000,
|
||||
CMSG_QUEST_GIVER_REQUEST_REWARD = 0x2534,
|
||||
CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY = 0x6305,
|
||||
CMSG_QUEST_GIVER_STATUS_QUERY = 0x4407,
|
||||
CMSG_QUESTLOG_REMOVE_QUEST = 0x0D16,
|
||||
CMSG_QUESTLOG_SWAP_QUEST = 0x0000,
|
||||
CMSG_QUEST_CONFIRM_ACCEPT = 0x0D15,
|
||||
|
||||
@@ -1357,7 +1357,7 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
case CMSG_PLAYER_LOGOUT: // 0 1
|
||||
case CMSG_LOGOUT_REQUEST: // 0 1
|
||||
case CMSG_PET_RENAME: // 0 1
|
||||
case CMSG_QUESTGIVER_REQUEST_REWARD: // 0 1
|
||||
case CMSG_QUEST_GIVER_REQUEST_REWARD: // 0 1
|
||||
case CMSG_COMPLETE_CINEMATIC: // 0 1
|
||||
case CMSG_BANKER_ACTIVATE: // 0 1
|
||||
case CMSG_BUY_BANK_SLOT: // 0 1
|
||||
@@ -1368,18 +1368,18 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
case CMSG_QUEST_QUERY: // 0 1.5
|
||||
case CMSG_GAMEOBJECT_QUERY: // 0 1.5
|
||||
case CMSG_CREATURE_QUERY: // 0 1.5
|
||||
case CMSG_QUESTGIVER_STATUS_QUERY: // 0 1.5
|
||||
case CMSG_QUEST_GIVER_STATUS_QUERY: // 0 1.5
|
||||
case CMSG_GUILD_QUERY: // 0 1.5
|
||||
case CMSG_ARENA_TEAM_QUERY: // 0 1.5
|
||||
case CMSG_TAXINODE_STATUS_QUERY: // 0 1.5
|
||||
case CMSG_TAXIQUERYAVAILABLENODES: // 0 1.5
|
||||
case CMSG_QUESTGIVER_QUERY_QUEST: // 0 1.5
|
||||
case CMSG_QUEST_GIVER_QUERY_QUEST: // 0 1.5
|
||||
case CMSG_PAGE_TEXT_QUERY: // 0 1.5
|
||||
case CMSG_GUILD_BANK_TEXT_QUERY: // 0 1.5
|
||||
case MSG_CORPSE_QUERY: // 0 1.5
|
||||
case MSG_MOVE_SET_FACING: // 0 1.5
|
||||
case CMSG_REQUEST_PARTY_MEMBER_STATS: // 0 1.5
|
||||
case CMSG_QUESTGIVER_COMPLETE_QUEST: // 0 1.5
|
||||
case CMSG_QUEST_GIVER_COMPLETE_QUEST: // 0 1.5
|
||||
case CMSG_SET_ACTION_BUTTON: // 0 1.5
|
||||
case CMSG_RESET_INSTANCES: // 0 1.5
|
||||
case CMSG_HEARTH_AND_RESURRECT: // 0 1.5
|
||||
@@ -1406,7 +1406,7 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
case CMSG_QUEST_CONFIRM_ACCEPT: // 0 2
|
||||
case CMSG_GUILD_EVENT_LOG_QUERY: // 0 2.5
|
||||
case CMSG_READY_FOR_ACCOUNT_DATA_TIMES: // 0 2.5
|
||||
case CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY: // 0 2.5
|
||||
case CMSG_QUEST_GIVER_STATUS_MULTIPLE_QUERY: // 0 2.5
|
||||
case CMSG_BEGIN_TRADE: // 0 2.5
|
||||
case CMSG_INITIATE_TRADE: // 0 3
|
||||
case CMSG_MESSAGECHAT_ADDON_BATTLEGROUND: // 0 3.5
|
||||
@@ -1441,9 +1441,9 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
break;
|
||||
}
|
||||
|
||||
case CMSG_QUESTGIVER_ACCEPT_QUEST: // 0 4
|
||||
case CMSG_QUEST_GIVER_ACCEPT_QUEST: // 0 4
|
||||
case CMSG_QUESTLOG_REMOVE_QUEST: // 0 4
|
||||
case CMSG_QUESTGIVER_CHOOSE_REWARD: // 0 4
|
||||
case CMSG_QUEST_GIVER_CHOOSE_REWARD: // 0 4
|
||||
case CMSG_CONTACT_LIST: // 0 5
|
||||
case CMSG_LEARN_PREVIEW_TALENTS: // 0 6
|
||||
case CMSG_AUTOBANK_ITEM: // 0 6
|
||||
|
||||
@@ -124,6 +124,12 @@ namespace WorldPackets
|
||||
class GuildChallengeUpdateRequest;
|
||||
class RequestGuildRewardsList;
|
||||
}
|
||||
|
||||
namespace Quest
|
||||
{
|
||||
class QuestGiverAcceptQuest;
|
||||
class QuestGiverChooseReward;
|
||||
}
|
||||
}
|
||||
|
||||
enum AccountDataType
|
||||
@@ -856,9 +862,9 @@ class TC_GAME_API WorldSession
|
||||
void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverStatusMultipleQuery(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestGiverAcceptQuest& packet);
|
||||
void HandleQuestgiverQueryQuestOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::QuestGiverChooseReward& packet);
|
||||
void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestQueryOpcode(WorldPacket& recvPacket);
|
||||
void HandleQuestgiverCancel(WorldPacket& recvData);
|
||||
|
||||
Reference in new issue
Block a user