From a39fdef7c3295f5c666e761b14cbb0c0285b0b2c Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 16 Dec 2021 12:42:19 -0500 Subject: [PATCH] Core/Players: out of range group updates will now get sent every 5 seconds instead of as soon as they are available to reflect retail behaivior. Port From (https://github.com/TrinityCore/TrinityCore/commit/0d433b1bc89bf26585688d8041da500ff8dae364) --- Source/Game/Entities/Player/Player.Fields.cs | 2 ++ Source/Game/Entities/Player/Player.cs | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Game/Entities/Player/Player.Fields.cs b/Source/Game/Entities/Player/Player.Fields.cs index 4bfc61d01..7c10c01e0 100644 --- a/Source/Game/Entities/Player/Player.Fields.cs +++ b/Source/Game/Entities/Player/Player.Fields.cs @@ -245,6 +245,8 @@ namespace Game.Entities float[] m_powerFraction = new float[(int)PowerType.MaxPerClass]; int[] m_MirrorTimer = new int[3]; + TimeTrackerSmall m_groupUpdateTimer; + ulong m_GuildIdInvited; DeclinedName _declinedname; Runes m_runes = new(); diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 32ae47fd3..248d07a63 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -121,6 +121,8 @@ namespace Game.Entities m_bgData = new BGData(); _restMgr = new RestMgr(this); + + m_groupUpdateTimer = new(5000); } public override void Dispose() @@ -610,7 +612,12 @@ namespace Game.Entities } // group update - SendUpdateToOutOfRangeGroupMembers(); + m_groupUpdateTimer.Update((int)diff); + if (m_groupUpdateTimer.Passed()) + { + SendUpdateToOutOfRangeGroupMembers(); + m_groupUpdateTimer.Reset(5000); + } Pet pet = GetPet(); if (pet != null && !pet.IsWithinDistInMap(this, GetMap().GetVisibilityRange()) && !pet.IsPossessed())