增加点击过期物品的按钮 (#1819)

This commit is contained in:
LXYan2333
2025-09-05 01:28:14 +08:00
committed by GitHub
parent 6e9c1d0c28
commit 8b2eb5aea2
3 changed files with 34 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1,3 +1,5 @@
const outDatedRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/RecognitionObject/ConfirmButton.png"), 760, 700, 100, 100);
(async function () {
// 读取用户设置
let operationType = settings.operationType || "分解"; // 默认为分解
@@ -11,10 +13,36 @@
log.debug(`操作次数: ${times}`);
log.debug(`包含一星: ${includeOneStar}, 包含二星: ${includeTwoStar}, 包含三星: ${includeThreeStar}, 包含四星: ${includeFourStar}`);
// 点击过期按钮
async function findAndClick(target, maxAttempts = 20) {
for (let attempts = 0; attempts < maxAttempts; attempts++) {
const gameRegion = captureGameRegion();
try {
const result = gameRegion.find(target);
if (result.isExist) {
result.click();
return true; // 成功立刻返回
}
log.warn(`识别失败,第 ${attempts + 1} 次重试`);
} catch (err) {
} finally {
gameRegion.dispose();
}
if (attempts < maxAttempts - 1) { // 最后一次不再 sleep
await sleep(250);
}
}
return false;
}
// 分解圣遗物
async function salvage() {
await genshin.returnMainUi();
keyPress("B"); await sleep(2000); // 打开背包
if (await findAndClick(outDatedRo)) {
log.info("检测到过期物品弹窗,处理");
await sleep(1000);
}
click(670, 40); await sleep(1000); // 点击圣遗物
click(660, 1010); await sleep(1000); // 点击分解
click(300, 1020); await sleep(1000); // 点击快速选择
@@ -38,6 +66,10 @@
async function destroy() {
await genshin.returnMainUi();
keyPress("B"); await sleep(2000); // 打开背包
if (await findAndClick(outDatedRo)) {
log.info("检测到过期物品弹窗,处理");
await sleep(1000);
}
click(670, 40); await sleep(1000); // 点击圣遗物
for (let i = 0; i < times; i++) {

View File

@@ -4,8 +4,8 @@
"type": "select",
"label": "操作类型(默认:分解)",
"options": [
"分解",
"摧毁"
"分解(经验瓶)",
"摧毁(摩拉)"
]
},
{