feat(auto-plan): 添加运行类型支持并优化名称和资源管理

- 在自动计划配置中添加runType字段用于指定运行类型
- 将插件名称从"自动秘境计划"更改为"自动体力计划"
- 为图像识别添加调试日志输出功能
- 使用try-finally块确保图像捕获区域资源正确释放
- 优化退出界面逻辑,增加主界面检测和确认按钮点击处理
- 添加循环跳出条件避免无限重试
This commit is contained in:
yan
2026-02-18 20:51:51 +08:00
parent 74380b01e9
commit 2d3a591288
3 changed files with 28 additions and 15 deletions

View File

@@ -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))

View File

@@ -1,5 +1,5 @@
{
"name": "自动秘境计划",
"name": "自动体力计划",
"version": "0.0.1",
"description": "",
"settings_ui": "settings.json",

View File

@@ -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(`多次尝试点击确认失败 假定已经退出处理`);
}
}
}