From 9bfdfd041ed2b1225c9f9ec8f4602e5f9e4169e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Sun, 23 Mar 2025 22:04:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E4=BC=98=E5=8C=96=201.=20?= =?UTF-8?q?=E4=B8=80=E6=9D=A1=E9=BE=99=E6=9C=AA=E9=80=89=E6=8B=A9=E8=A6=81?= =?UTF-8?q?=E5=88=B7=E7=9A=84=E7=A7=98=E5=A2=83=E6=97=B6=EF=BC=8C=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E6=8F=90=E7=A4=BA=202.=20=E4=BF=AE=E5=A4=8D=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E4=BB=BB=E5=8A=A1=E8=BF=90=E8=A1=8C=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E4=BB=BB=E5=8A=A1=E4=BB=8D=E5=9C=A8=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BetterGenshinImpact/GameTask/TaskRunner.cs | 7 +++++++ .../GameTask/TaskTriggerDispatcher.cs | 6 +++--- BetterGenshinImpact/Model/OneDragonTaskItem.cs | 8 +++++++- .../Service/Notification/NotificationService.cs | 2 +- Fischless.GameCapture/BitBlt/BitBltCapture.cs | 15 +++++++++++---- 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/BetterGenshinImpact/GameTask/TaskRunner.cs b/BetterGenshinImpact/GameTask/TaskRunner.cs index caf29db0..2f27ad70 100644 --- a/BetterGenshinImpact/GameTask/TaskRunner.cs +++ b/BetterGenshinImpact/GameTask/TaskRunner.cs @@ -130,6 +130,10 @@ public class TaskRunner throw new NormalEndException("请先在启动页,启动截图器再使用本功能"); } + // 清空实时任务触发器 + TaskTriggerDispatcher.Instance().ClearTriggers(); + + // 激活原神窗口 var maskWindow = MaskWindow.Instance(); SystemControl.ActivateWindow(); @@ -142,6 +146,9 @@ public class TaskRunner { return; } + + // 还原实时任务触发器 + TaskTriggerDispatcher.Instance().SetTriggers(GameTaskManager.LoadInitialTriggers()); VisionContext.Instance().DrawContent.ClearAll(); } diff --git a/BetterGenshinImpact/GameTask/TaskTriggerDispatcher.cs b/BetterGenshinImpact/GameTask/TaskTriggerDispatcher.cs index 222b51fc..b5d23d24 100644 --- a/BetterGenshinImpact/GameTask/TaskTriggerDispatcher.cs +++ b/BetterGenshinImpact/GameTask/TaskTriggerDispatcher.cs @@ -269,14 +269,14 @@ namespace BetterGenshinImpact.GameTask } } - // 帧序号自增 1分钟后归零(MaxFrameIndexSecond) - _frameIndex = (_frameIndex + 1) % (int)(CaptureContent.MaxFrameIndexSecond * 1000d / _timer.Interval); - if (_triggers == null || !_triggers.Exists(t => t.IsEnabled)) { Debug.WriteLine("没有可用的触发器且不处于仅截屏状态, 不再进行截屏"); return; } + + // 帧序号自增 1分钟后归零(MaxFrameIndexSecond) + _frameIndex = (_frameIndex + 1) % (int)(CaptureContent.MaxFrameIndexSecond * 1000d / _timer.Interval); var speedTimer = new SpeedTimer(); // 捕获游戏画面 diff --git a/BetterGenshinImpact/Model/OneDragonTaskItem.cs b/BetterGenshinImpact/Model/OneDragonTaskItem.cs index 32e88236..8ac40aff 100644 --- a/BetterGenshinImpact/Model/OneDragonTaskItem.cs +++ b/BetterGenshinImpact/Model/OneDragonTaskItem.cs @@ -86,12 +86,18 @@ public partial class OneDragonTaskItem : ObservableObject var taskSettingsPageViewModel = App.GetService(); if (taskSettingsPageViewModel!.GetFightStrategy(out var path)) { - TaskControl.Logger.LogInformation("自动秘境战斗策略未配置,跳过"); + TaskControl.Logger.LogError("自动秘境战斗策略{Msg},跳过", "未配置"); return; } var (partyName, domainName) = config.GetDomainConfig(); + if (string.IsNullOrEmpty(domainName)) + { + TaskControl.Logger.LogError("一条龙配置内{Msg}需要刷的秘境,跳过","未选择"); + return; + } + var autoDomainParam = new AutoDomainParam(0, path) { PartyName = partyName, diff --git a/BetterGenshinImpact/Service/Notification/NotificationService.cs b/BetterGenshinImpact/Service/Notification/NotificationService.cs index c9c21a49..e9391971 100644 --- a/BetterGenshinImpact/Service/Notification/NotificationService.cs +++ b/BetterGenshinImpact/Service/Notification/NotificationService.cs @@ -51,7 +51,7 @@ public class NotificationService : IHostedService, IDisposable /// public void Dispose() { - _webSocketCts?.Cancel(); + // _webSocketCts?.Cancel(); _webSocketCts?.Dispose(); _notifyHttpClient?.Dispose(); GC.SuppressFinalize(this); diff --git a/Fischless.GameCapture/BitBlt/BitBltCapture.cs b/Fischless.GameCapture/BitBlt/BitBltCapture.cs index 6024ad2e..b06bfb50 100644 --- a/Fischless.GameCapture/BitBlt/BitBltCapture.cs +++ b/Fischless.GameCapture/BitBlt/BitBltCapture.cs @@ -75,11 +75,18 @@ public class BitBltCapture : IGameCapture Gdi32.StretchBlt(hdcDest, 0, 0, width, height, hdcSrc, x, y, width, height, Gdi32.RasterOperationMode.SRCCOPY); var mat = new Mat(height, width, MatType.CV_8UC4, bits); - Mat bgrMat = new Mat(); - Cv2.CvtColor(mat, bgrMat, ColorConversionCodes.BGRA2BGR); - Gdi32.SelectObject(hdcDest, oldBitmap); - return bgrMat; + + if (!mat.Empty()) + { + Mat bgrMat = new Mat(); + Cv2.CvtColor(mat, bgrMat, ColorConversionCodes.BGRA2BGR); + return bgrMat; + } + else + { + return null; + } } catch (Exception e) {