fix: 修复回放播放超时后未正常退出关卡 (#2443)

This commit is contained in:
Bread Grocery
2025-12-06 12:37:21 +08:00
committed by GitHub
parent 0e5777d577
commit 20051e35c9
5 changed files with 39 additions and 29 deletions

View File

@@ -29,22 +29,22 @@
### 🛠️ 脚本配置
| 配置项 | 描述 | 备注 | 默认值 |
| ---------------------- | ---------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------- |
| room | 奇域关卡关键词或关卡GUID | | 20134075027 |
| playbacks | 通关回放文件池 | 逗号分隔随机抽取自行录制拷贝到assets/playbacks | 通关回放1.json,通关回放2.json |
| expPerAttempt | 每次通关获取的经验值 | 如果勾选删除关卡存档,请自行增加 | 20 |
| deleteStageSave | 删除关卡存档 | 可重复达成成就,获取更多经验值 | false |
| deleteStageSaveKeyword | 删除关卡存档关键字 | 关卡存档视图中的[关卡]列 | 深渊100层 |
| expWeeklyLimit | 每周可获取的经验值上限 | | 4000 |
| force | 忽略本周经验值已达上限 | | false |
| thisAttempts | 指定通关次数 | 0表示自动判断 | 0 |
| dailyEnabled | 执行每日通关任务 | 完后会领取纪游经验、日活奖励 | false |
| dailyRooms | 每日奇域关卡关键词或关卡GUID | 逗号分隔 | 20134075027,24429042323,28644538672 |
| dailyPlaybacks | 每日通关回放文件随机池 | 同一关卡逗号分隔不同关卡分号分隔自行录制拷贝到assets/playbacks | 通关回放1.json,通关回放2.json;通关回放2.json;20秒按1通关.json |
| dailyLimit | 每日单个关卡通关上限 | | 1 |
| dailyForce | 忽略每日单个关卡通关上限 | | false |
| goToTeyvat | 完成后返回提瓦特大陆 | | true |
| 配置项 | 描述 | 备注 | 默认值 |
| ---------------------- | ---------------------------- | ------------------------------------------------------------------ | ---------------------------------------------- |
| room | 奇域关卡关键词或关卡GUID | | 20134075027 |
| playbacks | 通关回放文件池 | 逗号分隔随机抽取自行录制拷贝到assets/playbacks | 通关回放1.json,通关回放2.json |
| expPerAttempt | 每次通关获取的经验值 | 如果勾选删除关卡存档,请自行增加 | 20 |
| deleteStageSave | 删除关卡存档 | 可重复达成成就,获取更多经验值 | false |
| deleteStageSaveKeyword | 删除关卡存档关键字 | 关卡存档视图中的[关卡]列 | 深渊100层 |
| expWeeklyLimit | 每周可获取的经验值上限 | | 4000 |
| force | 忽略本周经验值已达上限 | | false |
| thisAttempts | 指定通关次数 | 0表示自动判断 | 0 |
| dailyEnabled | 执行每日通关任务 | 完后会领取纪游经验、日活奖励 | false |
| dailyRooms | 每日奇域关卡关键词或关卡GUID | 逗号分隔 | 24429042323,28644538672 |
| dailyPlaybacks | 每日通关回放文件随机池 | 同一关卡逗号分隔不同关卡分号分隔自行录制拷贝到assets/playbacks | 通关回放1.json,通关回放2.json;60秒按1通关.json |
| dailyLimit | 每日单个关卡通关上限 | | 1 |
| dailyForce | 忽略每日单个关卡通关上限 | | false |
| goToTeyvat | 完成后返回提瓦特大陆 | | true |
### ❗ 注意事项

View File

@@ -173,12 +173,12 @@
{ "type": 1, "keyCode": 87, "mouseX": 0, "mouseY": 0, "time": 18328 },
{ "type": 0, "keyCode": 40, "mouseX": 0, "mouseY": 0, "time": 19985 },
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20000 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20156 },
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20343 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20515 },
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20718 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 20890 }
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63000 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63156 },
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63343 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63515 },
{ "type": 0, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63718 },
{ "type": 1, "keyCode": 49, "mouseX": 0, "mouseY": 0, "time": 63890 }
],
"info": {
"name": "",

View File

@@ -321,8 +321,8 @@ var userConfig = {
thisAttempts: Math.max(0, Number(settings.thisAttempts || "0")),
//! 每日任务相关设置
dailyEnabled: settings.dailyEnabled ?? false,
dailyRooms: (settings.dailyRooms || "20134075027,24429042323,28644538672").replace(//g, ",").split(",").map((str) => str.trim()).filter(Boolean),
dailyPlaybacks: (settings.dailyPlaybacks || "通关回放1.json,通关回放2.json;通关回放2.json;20秒按1通关.json").replace(//g, ",").replace(//g, ";").split(";").map((str) => str.trim()).filter(Boolean).reduce((arr, room) => {
dailyRooms: (settings.dailyRooms || "24429042323,28644538672").replace(//g, ",").split(",").map((str) => str.trim()).filter(Boolean),
dailyPlaybacks: (settings.dailyPlaybacks || "通关回放1.json,通关回放2.json;60秒按1通关.json").replace(//g, ",").replace(//g, ";").split(";").map((str) => str.trim()).filter(Boolean).reduce((arr, room) => {
const files = room.split(",").map((str) => str.trim()).filter(Boolean);
if (files.length > 0) arr.push(files);
return arr;
@@ -853,9 +853,19 @@ var exitStage = async () => {
() => {
keyPress("VK_ESCAPE");
},
{ maxAttempts: 5, retryInterval: 2e3 }
{ maxAttempts: 10, retryInterval: 1e3 }
);
await assertRegionAppearing(
findBeyondHallBtn,
"返回大厅超时",
async () => {
//! 点击 “中断挑战” 按钮
findExitStageBtn()?.click();
//! 点击底部 “返回大厅” 按钮
findBottomBtnText("返回大厅")?.click();
},
{ maxAttempts: 60 }
);
findExitStageBtn()?.click();
await genshin.returnMainUi();
};
//! 退出关卡返回大厅

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "千星奇域·每周经验刷取(回放通关版)",
"version": "0.1.2",
"version": "0.1.3",
"bgi_version": "0.53.0",
"description": "千星奇域·每周经验刷取(回放通关版)",
"authors": [

View File

@@ -57,13 +57,13 @@
"type": "input-text",
"name": "dailyRooms",
"label": "每日奇域关卡关键词或关卡GUID逗号分隔",
"default": "20134075027,24429042323,28644538672"
"default": "24429042323,28644538672"
},
{
"type": "input-text",
"name": "dailyPlaybacks",
"label": "每日通关回放文件随机池(同一关卡逗号分隔,不同关卡分号分隔)",
"default": "通关回放1.json,通关回放2.json;通关回放2.json;20秒按1通关.json"
"default": "通关回放1.json,通关回放2.json;60秒按1通关.json"
},
{
"type": "input-text",