提交确认
涉及范围
JS 脚本
相关脚本名称与版本
AIPC珍贵宝箱无限刷/AutoInfinitePreciousChest
需求或建议
任务界面更新导致原脚本任务界面判断失效而无法实现功能,main.js现作以下改动:
- 新增一个通用函数(放在封装函数区域任意位置)
// 新UI:OCR 识别并点击指定文本按钮,返回是否成功
async function ClickButtonByText(text, x, y, w, h) {
const ro = captureGameRegion();
const resList = ro.findMulti(RecognitionObject.ocr(x, y, w, h));
ro.dispose();
for (let i = 0; i < resList.count; i++) {
const res = resList[i];
if (res.text.includes(text)) {
log.info(`识别到"${text}"按钮`);
res.click();
await sleep(1500);
return true;
}
}
log.warn(`未识别到"${text}"按钮`);
return false;
}
- 替换整个 CheckKeyBindlings 函数
async function CheckKeyBindlings() {
let keyStatus = false;
await TryOpenQuestMenu(0); // 按J
// 新UI:按J后进入"进行中"视图,检测"任务总览"按钮即可确认菜单已开
// (若上次停在任务总览界面,则检测右侧"传说任务"按钮)
const ro1 = captureGameRegion();
const list1 = ro1.findMulti(RecognitionObject.ocr(50, 920, 500, 160)); // 左下"任务总览"
const list2 = ro1.findMulti(RecognitionObject.ocr(1000, 380, 700, 300)); // 右侧"传说任务"
ro1.dispose();
let menuOpened = false;
for (let i = 0; i < list1.count; i++) if (list1[i].text.includes("任务总览")) menuOpened = true;
for (let i = 0; i < list2.count; i++) if (list2[i].text.includes("传说任务")) menuOpened = true;
if (menuOpened) {
log.info("检测到任务菜单已开启,按键正常");
await sleep(1000);
keyStatus = true;
} else {
log.info("检测到任务菜单没有开启,推测快捷键不是默认值,尝试恢复");
await KeyBindlings();
await TryOpenQuestMenu(0);
const ro2 = captureGameRegion();
const list3 = ro2.findMulti(RecognitionObject.ocr(50, 920, 500, 160));
const list4 = ro2.findMulti(RecognitionObject.ocr(1000, 380, 700, 300));
ro2.dispose();
for (let i = 0; i < list3.count; i++) if (list3[i].text.includes("任务总览")) keyStatus = true;
for (let i = 0; i < list4.count; i++) if (list4[i].text.includes("传说任务")) keyStatus = true;
if (keyStatus) {
log.info("恢复后检测到任务菜单,按键正常");
await sleep(1000);
} else {
log.warn("尝试恢复任务菜单快捷键默认值失败");
}
}
await genshin.returnMainUi();
await sleep(1000);
return keyStatus;
}
- 修改 AbandonHangoutEvent 中放弃后的导航部分
找到原来这段(点 Confirm 之后、点 StoryQuestsButton 之前):
const ro16 = captureGameRegion();
let StoryQuestsButton = ro16.find(StoryQuestsButtonRo);
ro16.dispose();
if (StoryQuestsButton.isExist()) {
log.info("识别到传说任务按钮");
StoryQuestsButton.click();
await sleep(1500);
}
整段替换为:
// 新UI导航:任务总览 → 传说任务
await ClickButtonByText("任务总览", 50, 920, 500, 160);
await ClickButtonByText("传说任务", 1000, 380, 700, 300);
修改完成后为
main.js
使用场景
更新游戏后还需要此脚本的人
预期收益
脚本又可以继续使用了
影响与约束
无
补充信息
No response
提交确认
涉及范围
JS 脚本
相关脚本名称与版本
AIPC珍贵宝箱无限刷/AutoInfinitePreciousChest
需求或建议
任务界面更新导致原脚本任务界面判断失效而无法实现功能,main.js现作以下改动:
找到原来这段(点 Confirm 之后、点 StoryQuestsButton 之前):
整段替换为:
修改完成后为
main.js
使用场景
更新游戏后还需要此脚本的人
预期收益
脚本又可以继续使用了
影响与约束
无
补充信息
No response