提交确认
涉及范围
JS 脚本
BetterGI 版本号
0.64.0
相关脚本名称与版本
AAA 狗粮批发(AAA-Artifacts-Bulk-Supply)2.5.11。
已核对 2.6.1 源码,相关复苏识别与点击逻辑保持相同;2.6.1 尚未实机复现。
运行环境与关键配置
Windows 11,国服,简体中文,1920×1080,执行纳塔额外路线。实机 main.js 和 revival.png 已与对应上游快照核对一致。
问题描述
跑图期间,账号重复登录导致游戏断线,AAA 随后触发了复苏点击。游戏回到登录页后,地图追踪仍继续尝试定位、脱困和打开地图。
这次发生在正常传送完成之后:原神记录断开约 0.67 秒后,AAA 记录“识别到复苏按钮,点击复苏”;断开约 3 秒后,原神进入登录页。近六分钟后,BGI 仍提示“打开大地图失败”,紧接着又报告“已到达上次点位,地图追踪功能恢复”,实际画面仍停留在登录入口。
已定位到 AAA 的复苏伴随任务。结合断线时序与模板外观,怀疑它将断线弹窗的“确认”按钮匹配成了“复苏”。日志与源码可以确认脚本执行了复苏点击;点击瞬间的画面、坐标和匹配得分未保存,具体命中的按钮仍待确认。
期望结果
复苏伴随任务只点击真正的角色复苏弹窗。遇到其他弹窗时跳过复苏操作,保留原界面。
本 issue 仅处理复苏误匹配与误点击。重复登录检测、停止和恢复策略独立讨论,不要求 AAA 增加这些功能,也不期望通过自动重登顶回账号来继续采集。
复现步骤
本次故障的触发过程:
- 运行 AAA 狗粮批发,进入纳塔额外路线的地图追踪阶段。
- 跑图期间,同一账号在另一设备登录,本机连接断开。
- AAA 记录“识别到复苏按钮,点击复苏”,游戏随后回到登录页。
- 地图追踪继续运行,反复报告定位失败、尝试脱困、打开地图失败。
日志、截图或录屏
以下为 2026-09-06 同一次故障的日志摘录,账号凭据等隐私信息已移除。BGI 与 LocalLog 使用电脑本地时间,原神 output_log 使用北京时间;本次相差 15 小时,本地 08:11 对应北京时间 23:11。
传送完成、断开与复苏点击(电脑本地时间):
BGI
[08:11:17.427] 开始传送:"纳塔 / 镜璧山 / 「烟谜主」 - 传送锚点"
[08:11:23.090] 传送完成
原神 LocalLog
NETWORK 2026-09-06 08:11:31 0317[FrameCount:38619] Disconnect token=[已移除] reason=4
BGI
[08:11:31.703] 识别到复苏按钮,点击复苏
[08:11:31.810] 小地图位置定位失败,且当前不是主界面,进入异常处理
[08:11:31.822] 未识别到具体路径,取上次点位
[08:11:32.163] 小地图位置定位失败,且当前不是主界面,进入异常处理
随后进入登录页(北京时间):
[2026-09-06 23:11:31.262] Genshin Beyond Log: BeyondLevelEditModule ClearOnDisconnect ClearCloudData
[2026-09-06 23:11:34.087] Genshin Start Log: LoginMainPageContext SetupView
[2026-09-06 23:11:36.053] Genshin Start Log: MiHoYoSDKManager SDKLogin
后续地图追踪仍在运行(电脑本地时间):
[08:12:09.302] 视角转动到目标角度超时,停止转动
[08:12:09.648] 小地图位置定位失败,且当前不是主界面,进入异常处理
[08:12:09.666] 疑似卡死,尝试脱离...
[08:17:28.248] 打开大地图失败,请检查按键绑定中「打开地图」按键设置是否和原神游戏中一致!
[08:17:28.273] 已到达上次点位,地图追踪功能恢复
断线后的登录页现场:
画面停留在登录入口,左下角仍显示 08:17:28(北京时间 23:17:28)的地图追踪日志。截图记录的是断线后的状态;账号信息已遮挡。

其他信息
相关代码
以下链接固定在 2.6.1 对应提交 6e7cbe851fb87c670ef668ec193d724c982f7fa9:
errorProcessTask:跑图期间循环匹配 revival.png,该处未限定搜索区域或显式设置匹配阈值,也没有额外的复苏场景或按钮文字校验。
findAndClick:匹配成功后等待 50ms,再执行 res.click()。调用方在返回成功后打印“识别到复苏按钮,点击复苏”。
revival.png:包含“复苏”文字、浅色按钮底和左侧圆形图标。这里按整张图片的相似度匹配,未额外通过 OCR 核验文字。
修复方向
提高复苏模板的匹配阈值有可能解决这类误匹配,值得作为最小修复优先评估。AAA 的模板含有“复苏”文字像素,提高门槛可能将外观相似的“确认”按钮排除出去。
可以参考社区 锄地一条龙(AutoHoeingOneDragon)的“限定区域+0.95 阈值”组合:
- 复苏识别区域限定为
(755, 915, 362, 122),对应 1920×1080 基准画面的底部局部区域。
- 复苏模板初始化使用该区域,并显式设置
revivalRo.Threshold = 0.95。
这组参数可作为 AAA 的候选参考。两个脚本的模板素材与实际匹配效果需要分别核验:应对照正常复苏和易混淆弹窗,观察误点击是否减少,以及正常复苏是否出现漏识别。0.95 暂作为参考值,本次尚未验证它在 AAA 中能否解决问题。
若限定区域与调整阈值已能稳定区分两类按钮,可采用这一最小修复;若仍有混淆,再补充复苏场景特征或按钮文字校验。
相关讨论
以上作为弹窗处理的相关背景;是否由同一处代码引起,需分别核验。
提交确认
涉及范围
JS 脚本
BetterGI 版本号
0.64.0
相关脚本名称与版本
AAA 狗粮批发(
AAA-Artifacts-Bulk-Supply)2.5.11。已核对 2.6.1 源码,相关复苏识别与点击逻辑保持相同;2.6.1 尚未实机复现。
运行环境与关键配置
Windows 11,国服,简体中文,1920×1080,执行纳塔额外路线。实机
main.js和revival.png已与对应上游快照核对一致。问题描述
跑图期间,账号重复登录导致游戏断线,AAA 随后触发了复苏点击。游戏回到登录页后,地图追踪仍继续尝试定位、脱困和打开地图。
这次发生在正常传送完成之后:原神记录断开约 0.67 秒后,AAA 记录“识别到复苏按钮,点击复苏”;断开约 3 秒后,原神进入登录页。近六分钟后,BGI 仍提示“打开大地图失败”,紧接着又报告“已到达上次点位,地图追踪功能恢复”,实际画面仍停留在登录入口。
已定位到 AAA 的复苏伴随任务。结合断线时序与模板外观,怀疑它将断线弹窗的“确认”按钮匹配成了“复苏”。日志与源码可以确认脚本执行了复苏点击;点击瞬间的画面、坐标和匹配得分未保存,具体命中的按钮仍待确认。
期望结果
复苏伴随任务只点击真正的角色复苏弹窗。遇到其他弹窗时跳过复苏操作,保留原界面。
本 issue 仅处理复苏误匹配与误点击。重复登录检测、停止和恢复策略独立讨论,不要求 AAA 增加这些功能,也不期望通过自动重登顶回账号来继续采集。
复现步骤
本次故障的触发过程:
日志、截图或录屏
以下为 2026-09-06 同一次故障的日志摘录,账号凭据等隐私信息已移除。BGI 与
LocalLog使用电脑本地时间,原神output_log使用北京时间;本次相差 15 小时,本地 08:11 对应北京时间 23:11。传送完成、断开与复苏点击(电脑本地时间):
随后进入登录页(北京时间):
后续地图追踪仍在运行(电脑本地时间):
断线后的登录页现场:
画面停留在登录入口,左下角仍显示
08:17:28(北京时间23:17:28)的地图追踪日志。截图记录的是断线后的状态;账号信息已遮挡。其他信息
相关代码
以下链接固定在 2.6.1 对应提交
6e7cbe851fb87c670ef668ec193d724c982f7fa9:errorProcessTask:跑图期间循环匹配revival.png,该处未限定搜索区域或显式设置匹配阈值,也没有额外的复苏场景或按钮文字校验。findAndClick:匹配成功后等待 50ms,再执行res.click()。调用方在返回成功后打印“识别到复苏按钮,点击复苏”。revival.png:包含“复苏”文字、浅色按钮底和左侧圆形图标。这里按整张图片的相似度匹配,未额外通过 OCR 核验文字。修复方向
提高复苏模板的匹配阈值有可能解决这类误匹配,值得作为最小修复优先评估。AAA 的模板含有“复苏”文字像素,提高门槛可能将外观相似的“确认”按钮排除出去。
可以参考社区 锄地一条龙(
AutoHoeingOneDragon)的“限定区域+0.95阈值”组合:(755, 915, 362, 122),对应 1920×1080 基准画面的底部局部区域。revivalRo.Threshold = 0.95。这组参数可作为 AAA 的候选参考。两个脚本的模板素材与实际匹配效果需要分别核验:应对照正常复苏和易混淆弹窗,观察误点击是否减少,以及正常复苏是否出现漏识别。
0.95暂作为参考值,本次尚未验证它在 AAA 中能否解决问题。若限定区域与调整阈值已能稳定区分两类按钮,可采用这一最小修复;若仍有混淆,再补充复苏场景特征或按钮文字校验。
相关讨论
以上作为弹窗处理的相关背景;是否由同一处代码引起,需分别核验。