aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2015-08-08 12:40:43 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2015-08-08 12:40:43 +0200
commitc9e138d66d6a455a72d3fefbc0e4d5998bc338d6 (patch)
tree644dd21d95804f3d67caf7cb55b4f02f7a0cdd6a /src/server/game/Server
parenta76fdb9d38c78d931375de235171e11ac75c5cbb (diff)
Core/PacketIO: Updated and enabled SMSG_QUEST_GIVER_INVALID_QUEST opcode
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp14
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 27 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index ac1374d8e7a..ca3442d897f 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -509,3 +509,17 @@ void WorldPackets::Quest::QuestPushResult::Read()
_worldPacket >> QuestID;
_worldPacket >> Result;
}
+
+WorldPacket const* WorldPackets::Quest::QuestGiverInvalidQuest::Write()
+{
+ _worldPacket << Reason;
+
+ _worldPacket.WriteBit(SendErrorMessage);
+ _worldPacket.WriteBits(ReasonText.length(), 9);
+
+ _worldPacket.FlushBits();
+
+ _worldPacket.WriteString(ReasonText);
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index 022458a07eb..84cf36d1fbc 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -515,6 +515,18 @@ namespace WorldPackets
uint32 QuestID = 0;
uint8 Result = 0;
};
+
+ class QuestGiverInvalidQuest final : public ServerPacket
+ {
+ public:
+ QuestGiverInvalidQuest() : ServerPacket(SMSG_QUEST_GIVER_INVALID_QUEST, 16 + 1) { }
+
+ WorldPacket const* Write() override;
+
+ uint32 Reason = 0;
+ bool SendErrorMessage = false;
+ std::string ReasonText;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index f1fc365bbdc..c30f81b7f6c 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1514,7 +1514,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_COMPLETION_NPC_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_INVALID_QUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_INVALID_QUEST, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_OFFER_REWARD_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_DETAILS, STATUS_NEVER, CONNECTION_TYPE_REALM);