From 19570f83df8a7e62c1c8f79a89326ce375f065cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Tue, 25 Apr 2023 13:51:25 +0800 Subject: [PATCH] fix: add an option for showing Ping ans set max Ping. --- RotationSolver.Basic/Configuration/PluginConfiguration.cs | 1 + RotationSolver.Basic/DataCenter.cs | 8 ++++---- RotationSolver/Localization/Strings.cs | 1 + RotationSolver/UI/RotationConfigWindow_Param.cs | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/RotationSolver.Basic/Configuration/PluginConfiguration.cs b/RotationSolver.Basic/Configuration/PluginConfiguration.cs index e84fa5b9a..23d0ac678 100644 --- a/RotationSolver.Basic/Configuration/PluginConfiguration.cs +++ b/RotationSolver.Basic/Configuration/PluginConfiguration.cs @@ -87,6 +87,7 @@ public class PluginConfiguration : IPluginConfiguration public float MeleeRangeOffset = 1; public bool TargetFriendly = false; public float AlphaInFill = 0.15f; + public int MaxPing = 200; public SortedSet DangerousStatus { get; set; } = new SortedSet() { diff --git a/RotationSolver.Basic/DataCenter.cs b/RotationSolver.Basic/DataCenter.cs index 24d91e665..c4bdf396f 100644 --- a/RotationSolver.Basic/DataCenter.cs +++ b/RotationSolver.Basic/DataCenter.cs @@ -310,10 +310,10 @@ public static float DPSTaken public static ActionID LastGCD { get; private set; } = 0; public static ActionID LastAbility { get; private set; } = 0; - public static float Ping { get; private set; } = 0.07f; + public static float Ping => Math.Min(RealPing, Service.Config.MaxPing); + public static float RealPing { get; private set; } = 0.07f; public const float MinAnimationLock = 0.6f; - const float MAX_PING = 0.2f; public static unsafe void AddActionRec(Action act) { var id = (ActionID)act.RowId; @@ -326,7 +326,7 @@ public static unsafe void AddActionRec(Action act) LastAction = LastGCD = id; if (ActionManager.GetAdjustedCastTime(ActionType.Spell, (uint)id) == 0) { - Ping = Math.Min(MAX_PING, WeaponElapsed); + RealPing = WeaponElapsed; } break; case ActionCate.Ability: @@ -334,7 +334,7 @@ public static unsafe void AddActionRec(Action act) if (!act.IsRealGCD() && ActionManager.GetMaxCharges((uint)id, Service.Player.Level) < 2) { - Ping = Math.Min(MAX_PING, ActionManager.Instance()->GetRecastGroupDetail(act.CooldownGroup - 1)->Elapsed); + RealPing = ActionManager.Instance()->GetRecastGroupDetail(act.CooldownGroup - 1)->Elapsed; } break; default: diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index 083a45f07..22b4fa151 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -97,6 +97,7 @@ internal partial class Strings public string ConfigWindow_Param_UseOverlayWindow { get; set; } = "Display Top Overlay"; public string ConfigWindow_Param_UseOverlayWindowDesc { get; set; } = "This top window is used to display some extra information on your game window, such as target's positional, target and sub-target, etc."; public string ConfigWindow_Param_Basic { get; set; } = "Basic"; + public string ConfigWindow_Param_MaxPing { get; set; } = "Set your max Ping. If it is too low, may clip."; public string ConfigWindow_Param_ActionAhead { get; set; } = "Set the time advance of using actions"; public string ConfigWindow_Param_CountDownAhead { get; set; } = "Set the time advance of using casting actions on counting down."; diff --git a/RotationSolver/UI/RotationConfigWindow_Param.cs b/RotationSolver/UI/RotationConfigWindow_Param.cs index b29fcac76..9299146f9 100644 --- a/RotationSolver/UI/RotationConfigWindow_Param.cs +++ b/RotationSolver/UI/RotationConfigWindow_Param.cs @@ -27,6 +27,12 @@ private void DrawParamTab() private void DrawParamBasic() { + DrawIntNumber(LocalizationManager.RightLang.ConfigWindow_Param_MaxPing, + ref Service.Config.MaxPing, Service.Default.MaxPing, min: 100, max: 500); + + ImGui.SameLine(); + ImGui.Text(" Your Ping: " + DataCenter.Ping.ToString("F3")); + DrawFloatNumber(LocalizationManager.RightLang.ConfigWindow_Param_ActionAhead, ref Service.Config.ActionAhead, Service.Default.ActionAhead, max: 0.4f);