diff options
author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2020-05-21 15:55:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-21 14:55:30 +0200 |
commit | 84dad1b29bc058625cf9f67c2e3d8741cfd48a08 (patch) | |
tree | 87eba6e779cac08576acb481c9e6635c73170933 /src | |
parent | 247564a7ab7dc6f640bb8f4fd32c30ffdc9076d2 (diff) |
Core/Packets: updated CMSG_PLAYED_TIME, SMSG_PLAYED_TIME (#24674)
(cherry picked from commit 50b4a3a707a92f3d9bce85a3af335061b7a6290d)
# Conflicts:
# src/server/game/Server/Packets/CharacterPackets.cpp
# src/server/game/Server/Protocol/Opcodes.cpp
# src/server/game/Server/WorldSession.h
# src/server/scripts/Northrend/Nexus/Nexus/nexus.h
Co-authored-by: MitchesD <majklprofik@seznam.cz>
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 15 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 14 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 22 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 3 |
4 files changed, 44 insertions, 10 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 3b507697b1a..1cd701e39ff 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -947,16 +947,13 @@ void WorldSession::HandleSetActionBarToggles(WorldPacket& recvData) GetPlayer()->SetByteValue(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTES_OFFSET_ACTION_BAR_TOGGLES, actionBar); } -void WorldSession::HandlePlayedTime(WorldPacket& recvData) +void WorldSession::HandlePlayedTime(WorldPackets::Character::PlayedTimeClient& packet) { - uint8 unk1; - recvData >> unk1; // 0 or 1 expected - - WorldPacket data(SMSG_PLAYED_TIME, 4 + 4 + 1); - data << uint32(_player->GetTotalPlayedTime()); - data << uint32(_player->GetLevelPlayedTime()); - data << uint8(unk1); // 0 - will not show in chat frame - SendPacket(&data); + WorldPackets::Character::PlayedTime playedTime; + playedTime.TotalTime = _player->GetTotalPlayedTime(); + playedTime.LevelTime = _player->GetLevelPlayedTime(); + playedTime.TriggerScriptEvent = packet.TriggerScriptEvent; // 0-1 - will not show in chat frame + SendPacket(playedTime.Write()); } void WorldSession::HandleInspectOpcode(WorldPacket& recvData) diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 14963c52ccd..06e729df184 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -40,3 +40,17 @@ WorldPacket const* WorldPackets::Character::LogoutResponse::Write() _worldPacket << uint8(Instant); return &_worldPacket; } + +void WorldPackets::Character::PlayedTimeClient::Read() +{ + _worldPacket >> TriggerScriptEvent; +} + +WorldPacket const* WorldPackets::Character::PlayedTime::Write() +{ + _worldPacket << uint32(TotalTime); + _worldPacket << uint32(LevelTime); + _worldPacket << uint8(TriggerScriptEvent); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 15f76305232..eb12646aa8a 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -106,6 +106,28 @@ namespace WorldPackets void Read() override { } }; + + class PlayedTimeClient final : public ClientPacket + { + public: + PlayedTimeClient(WorldPacket&& packet) : ClientPacket(CMSG_PLAYED_TIME, std::move(packet)) { } + + void Read() override; + + bool TriggerScriptEvent = false; + }; + + class PlayedTime final : public ServerPacket + { + public: + PlayedTime() : ServerPacket(SMSG_PLAYED_TIME, 9) { } + + WorldPacket const* Write() override; + + uint32 TotalTime = 0; + uint32 LevelTime = 0; + bool TriggerScriptEvent = false; + }; } } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 5b2348db8f3..e26b6b0f811 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -85,6 +85,7 @@ namespace WorldPackets class ShowingCloak; class ShowingHelm; class PlayerLogout; + class PlayedTimeClient; } namespace Chat @@ -586,7 +587,7 @@ class TC_GAME_API WorldSession void SendBarberShopResult(BarberShopResult result); // played time - void HandlePlayedTime(WorldPacket& recvPacket); + void HandlePlayedTime(WorldPackets::Character::PlayedTimeClient& packet); // new void HandleMoveUnRootAck(WorldPacket& recvPacket); |