diff options
| author | ModoX <moardox@gmail.com> | 2021-10-12 00:16:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-12 00:16:20 +0200 |
| commit | 6d9ce8e8baa100ecc7650d0ae56037c131bab2e0 (patch) | |
| tree | 911d162cb936f3e7bc7c79dfe79b7f6002aee8a7 /src/server/game/Server | |
| parent | 9b036b8fe0c443acd882de9faf615abe89dad691 (diff) | |
Core/PacketIO: Implemented CMSG_CONVERSATION_LINE_STARTED (#27036)
* Added OnConversationLineStarted hook to ConversationScripts
* Added example for Defender of Azeroth conversation
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 2 |
4 files changed, 20 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index dec97e556ab..cb998d0b62d 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -722,3 +722,9 @@ WorldPacket const* WorldPackets::Misc::StartTimer::Write() return &_worldPacket; } + +void WorldPackets::Misc::ConversationLineStarted::Read() +{ + _worldPacket >> ConversationGUID; + _worldPacket >> LineID; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 7b0e25514ae..ebad7696cc2 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -922,6 +922,17 @@ namespace WorldPackets Duration<Seconds> TimeLeft; Duration<Seconds> TotalTime; }; + + class ConversationLineStarted final : public ClientPacket + { + public: + ConversationLineStarted(WorldPacket&& packet) : ClientPacket(CMSG_CONVERSATION_LINE_STARTED, std::move(packet)) { } + + void Read() override; + + ObjectGuid ConversationGUID; + uint32 LineID = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index cad41a689a6..1fd3c2b0acf 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -354,7 +354,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CONTRIBUTION_CONTRIBUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_CONVERSATION_LINE_STARTED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_CONVERSATION_LINE_STARTED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConversationLineStarted); DEFINE_HANDLER(CMSG_CONVERT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConvertRaidOpcode); DEFINE_HANDLER(CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CREATE_CHARACTER, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCreateOpcode); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 93c6ee84f66..c9e36d54e88 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -517,6 +517,7 @@ namespace WorldPackets class SetTaxiBenchmarkMode; class MountSetFavorite; class CloseInteraction; + class ConversationLineStarted; } namespace Movement @@ -1716,6 +1717,7 @@ class TC_GAME_API WorldSession void HandleObjectUpdateRescuedOpcode(WorldPackets::Misc::ObjectUpdateRescued& objectUpdateRescued); void HandleRequestCategoryCooldowns(WorldPackets::Spells::RequestCategoryCooldowns& requestCategoryCooldowns); void HandleCloseInteraction(WorldPackets::Misc::CloseInteraction& closeInteraction); + void HandleConversationLineStarted(WorldPackets::Misc::ConversationLineStarted& conversationLineStarted); // Adventure Journal void HandleAdventureJournalOpenQuest(WorldPackets::AdventureJournal::AdventureJournalOpenQuest& openQuest); |
