From b242d98208cab92db3ad991a67cae0aaafcfae4c Mon Sep 17 00:00:00 2001 From: DarkFlameMaster <1004452714@qq.com> Date: Tue, 17 Feb 2026 19:23:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=8C=E5=8C=85=E8=AE=A1=E6=95=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9B=B4=E5=BF=AB=E5=AE=9A=E4=BD=8D=E5=88=B0=E6=AD=A6?= =?UTF-8?q?=E5=99=A8=E7=BB=8F=E9=AA=8C=E6=9D=90=E6=96=99=20(#2793)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 背包计数任务更快定位到武器经验材料 * 防止任务取消时鼠标按钮可能卡在按下状态 --- .../GameTask/Common/Job/CountInventoryItem.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/BetterGenshinImpact/GameTask/Common/Job/CountInventoryItem.cs b/BetterGenshinImpact/GameTask/Common/Job/CountInventoryItem.cs index d0e83699..d66db5e4 100644 --- a/BetterGenshinImpact/GameTask/Common/Job/CountInventoryItem.cs +++ b/BetterGenshinImpact/GameTask/Common/Job/CountInventoryItem.cs @@ -16,6 +16,7 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using BetterGenshinImpact.Core.Script.Dependence; namespace BetterGenshinImpact.GameTask.Common.Job { @@ -81,6 +82,26 @@ namespace BetterGenshinImpact.GameTask.Common.Job return result; } + private async Task PreScrollToBottomForWeaponOre() + { + // 长按滑动栏底部,快速翻页到底部后,再继续滚动确保在最后一页 + GameCaptureRegion.GameRegion1080PPosMove(1289, 936); + try + { + GlobalMethod.LeftButtonDown(); + await TaskControl.Delay(2000, ct); + } + finally + { + GlobalMethod.LeftButtonUp(); + } + var gridScroller = new GridScroller(GridParams.Templates[gridScreenName], logger, input, ct); + while (await gridScroller.TryVerticalScollDown((src, columns) => GridScreen.GridEnumerator.GetGridItems(src, columns))) + { + await TaskControl.Delay(300, ct); + } + } + private async Task FindOne(InferenceSession session, Dictionary prototypes) { GridScreen gridScreen = new GridScreen(GridParams.Templates[this.gridScreenName], logger, ct); @@ -89,6 +110,13 @@ namespace BetterGenshinImpact.GameTask.Common.Job int? count = null; try { + //如果是武器页的武器经验道具,直接翻页到最底部 + if (gridScreenName == GridScreenName.Weapons && itemName!.StartsWith("精锻用")) + { + await PreScrollToBottomForWeaponOre(); + } + + //开始识别 await foreach ((ImageRegion pageRegion, Rect itemRect) in gridScreen) { using ImageRegion itemRegion = pageRegion.DeriveCrop(itemRect); @@ -138,6 +166,12 @@ namespace BetterGenshinImpact.GameTask.Common.Job gridScreen.OnBeforeScroll += () => VisionContext.Instance().DrawContent.ClearAll(); try { + //如果包含武器页的武器经验道具,直接翻页到最底部 + bool hasOre = itemNames!.Any(name => name.StartsWith("精锻用")); + if (gridScreenName == GridScreenName.Weapons && hasOre) + { + await PreScrollToBottomForWeaponOre(); + } await foreach ((ImageRegion pageRegion, Rect itemRect) in gridScreen) { using ImageRegion itemRegion = pageRegion.DeriveCrop(itemRect);