From 3913063cbf618ae8ec3ce1e1e0d7afa40af26158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Fri, 1 Sep 2023 11:08:16 +0800 Subject: [PATCH] fix: add min updating time. --- RotationSolver.Basic/Configuration/Configs.cs | 2 ++ .../Localization/ConfigTranslation.cs | 1 + RotationSolver/Localization/Strings.cs | 1 + .../UI/RotationConfigWindow_Config.cs | 1 + RotationSolver/Updaters/MajorUpdater.cs | 32 ++++--------------- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/RotationSolver.Basic/Configuration/Configs.cs b/RotationSolver.Basic/Configuration/Configs.cs index f66fca2fb..295c8de36 100644 --- a/RotationSolver.Basic/Configuration/Configs.cs +++ b/RotationSolver.Basic/Configuration/Configs.cs @@ -417,6 +417,8 @@ public enum PluginConfigFloat : byte [Default(1f, 0f, 3f)] StateIconHeight, [Default(1f, 0.2f, 10f)] StateIconSize, + + [Default(0.02f, 0f, 1f)] MinUpdatingTime, } public enum PluginConfigVector4 : byte diff --git a/RotationSolver/Localization/ConfigTranslation.cs b/RotationSolver/Localization/ConfigTranslation.cs index 0480980bd..1a4a6a522 100644 --- a/RotationSolver/Localization/ConfigTranslation.cs +++ b/RotationSolver/Localization/ConfigTranslation.cs @@ -166,6 +166,7 @@ internal static class ConfigTranslation PluginConfigFloat.ClickingDelayMin => LocalizationManager.RightLang.ConfigWindow_Param_ClickingDelay, PluginConfigFloat.StopCastingDelayMin => LocalizationManager.RightLang.ConfigWindow_Param_StopCastingDelay, PluginConfigFloat.MistakeRatio => LocalizationManager.RightLang.ConfigWindow_Param_ClickMistake, + PluginConfigFloat.MinUpdatingTime => LocalizationManager.RightLang.ConfigWindow_Basic_MinUpdatingTime, // UI PluginConfigFloat.TargetIconSize => LocalizationManager.RightLang.ConfigWindow_Param_TargetIconSize, diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index 1dd88fe2f..aee463789 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -732,4 +732,5 @@ internal partial class Strings public string ConfigWindow_Auto_ProvokeDelay { get; set; } = "The delay of provoke in seconds."; public string ConfigWindow_UI_TTKTextColor { get; set; } = "The text color of TTK."; + public string ConfigWindow_Basic_MinUpdatingTime { get; set; } = "The min time between updating information in second."; } \ No newline at end of file diff --git a/RotationSolver/UI/RotationConfigWindow_Config.cs b/RotationSolver/UI/RotationConfigWindow_Config.cs index edc33b82c..6ad19585c 100644 --- a/RotationSolver/UI/RotationConfigWindow_Config.cs +++ b/RotationSolver/UI/RotationConfigWindow_Config.cs @@ -272,6 +272,7 @@ private static void DrawBasicAutoSwitch() new DragFloatSearchPlugin(PluginConfigFloat.MaxPing, 0.002f), new DragFloatRangeSearchPlugin(PluginConfigFloat.WeaponDelayMin, PluginConfigFloat.WeaponDelayMax, 0.002f), new DragFloatRangeSearchPlugin(PluginConfigFloat.ClickingDelayMin, PluginConfigFloat.ClickingDelayMax, 0.002f), + new DragFloatSearchPlugin(PluginConfigFloat.MinUpdatingTime, 0.002f), }; private static readonly ISearchable[] _basicTimerOthers = new ISearchable[] diff --git a/RotationSolver/Updaters/MajorUpdater.cs b/RotationSolver/Updaters/MajorUpdater.cs index 35a9d6d62..f4629819b 100644 --- a/RotationSolver/Updaters/MajorUpdater.cs +++ b/RotationSolver/Updaters/MajorUpdater.cs @@ -22,14 +22,17 @@ internal static class MajorUpdater && !Svc.Condition[ConditionFlag.BetweenAreas51] && Player.Available && !SocialUpdater.InPvp; -#if DEBUG - private static readonly Dictionary _values = new(); -#endif - static bool _showed; static Exception _threadException; + + static DateTime _lastUpdated = DateTime.Now; + private unsafe static void FrameworkUpdate(Framework framework) { + if (DateTime.Now - _lastUpdated < TimeSpan.FromSeconds(Service.Config.GetValue(PluginConfigFloat.MinUpdatingTime))) + return; + _lastUpdated = DateTime.Now; + PainterManager.ActionIds.Clear(); RotationSolverPlugin.UpdateDisplayWindow(); if (!IsValid) @@ -48,27 +51,6 @@ private unsafe static void FrameworkUpdate(Framework framework) Svc.Chat.PrintError(warning); } -#if DEBUG - //Get changed condition. - string[] enumNames = Enum.GetNames(typeof(ConditionFlag)); - int[] indexs = (int[])Enum.GetValues(typeof(ConditionFlag)); - if (enumNames.Length == indexs.Length) - { - for (int i = 0; i < enumNames.Length; i++) - { - string key = enumNames[i]; - bool newValue = Svc.Condition[(ConditionFlag)indexs[i]]; - if (_values.TryGetValue(i, out bool value) && value != newValue && indexs[i] != 48 && indexs[i] != 27) - { - //var str = indexs[i].ToString() + " " + key + ": " + newValue.ToString(); - //Svc.Chat.Print(str); - //Svc.Toasts.ShowQuest(str); - } - _values[i] = newValue; - } - } -#endif - try { SocialUpdater.UpdateSocial();