diff options
| author | Chaouki Dhib <chaodhib@gmail.com> | 2019-04-15 23:31:25 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-11-30 22:11:36 +0100 |
| commit | c19a4db1c12b8864d6c486ee8e2f0e058fb4155a (patch) | |
| tree | 1976d6734054eb05eb03322be9d76da9a0c1840c /src/server/game/Entities | |
| parent | 2f6f1c708960bfb23a0d69ce967b67b38e72b3fa (diff) | |
Core/Movement: Add time synchronisation (#18189)
(cherry picked from commit 975f1e364a6a68be2beca261a64ea8aecc16f6f6)
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 40 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 8 |
2 files changed, 2 insertions, 46 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e633754a955..f24f12540e4 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -322,10 +322,6 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this) m_ChampioningFaction = 0; - m_timeSyncTimer = 0; - m_timeSyncClient = 0; - m_timeSyncServer = GameTime::GetGameTimeMS(); - for (uint8 i = 0; i < MAX_POWERS_PER_CLASS; ++i) m_powerFraction[i] = 0; @@ -1132,14 +1128,6 @@ void Player::Update(uint32 p_time) m_zoneUpdateTimer -= p_time; } - if (m_timeSyncTimer > 0 && !IsBeingTeleportedFar()) - { - if (p_time >= m_timeSyncTimer) - SendTimeSync(); - else - m_timeSyncTimer -= p_time; - } - if (IsAlive()) { m_regenTimer += p_time; @@ -24295,10 +24283,10 @@ void Player::SendInitialPacketsBeforeAddToMap() if (!(m_teleport_options & TELE_TO_SEAMLESS)) { m_movementCounter = 0; - ResetTimeSync(); + GetSession()->ResetTimeSync(); } - SendTimeSync(); + GetSession()->SendTimeSync(); /// Pass 'this' as argument because we're not stored in ObjectAccessor yet GetSocial()->SendSocialList(this, SOCIAL_FLAG_ALL); @@ -27802,30 +27790,6 @@ void Player::LoadActions(PreparedQueryResult result) SendActionButtons(1); } -void Player::ResetTimeSync() -{ - m_timeSyncTimer = 0; - m_timeSyncClient = 0; - m_timeSyncServer = GameTime::GetGameTimeMS(); -} - -void Player::SendTimeSync() -{ - m_timeSyncQueue.push(m_movementCounter++); - - WorldPackets::Misc::TimeSyncRequest packet; - packet.SequenceIndex = m_timeSyncQueue.back(); - SendDirectMessage(packet.Write()); - - // Schedule next sync in 10 sec - m_timeSyncTimer = 10000; - m_timeSyncServer = GameTime::GetGameTimeMS(); - - if (m_timeSyncQueue.size() > 3) - TC_LOG_ERROR("network", "Player::SendTimeSync: Did not receive CMSG_TIME_SYNC_RESP for over 30 seconds from '%s' (%s), possible cheater", - GetName().c_str(), GetGUID().ToString().c_str()); -} - void Player::SetReputation(uint32 factionentry, int32 value) { GetReputationMgr().SetReputation(sFactionStore.LookupEntry(factionentry), value); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 9774f6a9b69..53507fd4182 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2933,9 +2933,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> ItemDurationList m_itemDuration; GuidUnorderedSet m_itemSoulboundTradeable; - void ResetTimeSync(); - void SendTimeSync(); - std::unique_ptr<ResurrectionData> _resurrectionData; WorldSession* m_session; @@ -3063,11 +3060,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> uint32 m_ChampioningFaction; - std::queue<uint32> m_timeSyncQueue; - uint32 m_timeSyncTimer; - uint32 m_timeSyncClient; - uint32 m_timeSyncServer; - InstanceTimeMap _instanceResetTimes; uint32 _pendingBindId; uint32 _pendingBindTimer; |
