From 2d3a591288d5fc185e99a8ef97a7c75c41c4de6d Mon Sep 17 00:00:00 2001 From: yan Date: Wed, 18 Feb 2026 20:51:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(auto-plan):=20=E6=B7=BB=E5=8A=A0=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=B1=BB=E5=9E=8B=E6=94=AF=E6=8C=81=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=90=8D=E7=A7=B0=E5=92=8C=E8=B5=84=E6=BA=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在自动计划配置中添加runType字段用于指定运行类型 - 将插件名称从"自动秘境计划"更改为"自动体力计划" - 为图像识别添加调试日志输出功能 - 使用try-finally块确保图像捕获区域资源正确释放 - 优化退出界面逻辑,增加主界面检测和确认按钮点击处理 - 添加循环跳出条件避免无限重试 --- repo/js/AutoPlan/main.js | 2 ++ repo/js/AutoPlan/manifest.json | 2 +- repo/js/AutoPlan/utils/tool.js | 39 ++++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/repo/js/AutoPlan/main.js b/repo/js/AutoPlan/main.js index 875fc7b75..df809bb6f 100644 --- a/repo/js/AutoPlan/main.js +++ b/repo/js/AutoPlan/main.js @@ -223,6 +223,7 @@ async function loadMode(Load, autoOrderSet, runConfig) { let autoOrder = { order: order, // 顺序值 // day: day,// 执行日期 + runType: runType, // 运行类型 days: days, // 执行日期(数组) autoFight: undefined, // 秘境信息对象 autoLeyLineOutcrop: undefined // 地脉信息对象 @@ -417,6 +418,7 @@ async function initRunOrderList(domainConfig) { // if (item.day) { // return item.day === dayOfWeek.day // } + log.debug(`[{1}]item.days.length:{0}`, dayOfWeek.day, item?.days?.length||0) if (item.days && item.days.length > 0) { const includes = item.days.includes(dayOfWeek.day); log.debug(`[{1}]item.days:{0}`, dayOfWeek.day, JSON.stringify(item.days)) diff --git a/repo/js/AutoPlan/manifest.json b/repo/js/AutoPlan/manifest.json index 67d22b7c8..adb92c962 100644 --- a/repo/js/AutoPlan/manifest.json +++ b/repo/js/AutoPlan/manifest.json @@ -1,5 +1,5 @@ { - "name": "自动秘境计划", + "name": "自动体力计划", "version": "0.0.1", "description": "", "settings_ui": "settings.json", diff --git a/repo/js/AutoPlan/utils/tool.js b/repo/js/AutoPlan/utils/tool.js index 2d0d4b622..4744184a5 100644 --- a/repo/js/AutoPlan/utils/tool.js +++ b/repo/js/AutoPlan/utils/tool.js @@ -110,9 +110,13 @@ const isInMainUI = () => { genshinJson.width / 5.0 ); let captureRegion = captureGameRegion(); - let res = captureRegion.find(paimonMenuRo); - captureRegion.Dispose() - return !res.isEmpty(); + try { + let res = captureRegion.find(paimonMenuRo); + return !res.isEmpty(); + }finally { + captureRegion.Dispose() + } + }; async function toMainUi() { @@ -143,9 +147,12 @@ const isInOutDomainUI = () => { genshinJson.width / 5.0 ); let captureRegion = captureGameRegion(); - let res = captureRegion.find(paimonMenuRo); - captureRegion.Dispose() - return !res.isEmpty(); + try { + let res = captureRegion.find(paimonMenuRo); + return !res.isEmpty(); + }finally { + captureRegion.Dispose() + } }; async function outDomainUI() { @@ -156,21 +163,25 @@ async function outDomainUI() { await sleep(ms); await keyPress("ESCAPE"); await sleep(ms); + if (isInMainUI()){ + break + } else if (isInOutDomainUI()) { + try { + //点击确认按钮 + await findTextAndClick('确认') + }catch (e) { + // log.error(`多次尝试点击确认失败 假定已经退出处理`); + } + + } if (index > 3) { log.error(`多次尝试匹配退出秘境界面失败 假定已经退出处理`); + break } index += 1 } - if (isInOutDomainUI()) { - try { - //点击确认按钮 - await findTextAndClick('确认') - }catch (e) { - log.error(`多次尝试点击确认失败 假定已经退出处理`); - } - } }