aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorForesterDev <11771800+ForesterDev@users.noreply.github.com>2020-05-21 15:55:30 +0300
committerGitHub <noreply@github.com>2020-05-21 14:55:30 +0200
commit84dad1b29bc058625cf9f67c2e3d8741cfd48a08 (patch)
tree87eba6e779cac08576acb481c9e6635c73170933 /src
parent247564a7ab7dc6f640bb8f4fd32c30ffdc9076d2 (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.cpp15
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp14
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h22
-rw-r--r--src/server/game/Server/WorldSession.h3
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);