OnmyojiAutoScript 项目中的破碎符咒识别问题分析与解决
问题背景
在OnmyojiAutoScript项目中,用户报告了一个关于"每周琐事-破碎的符咒"功能的异常情况。该功能本应自动检测并消耗游戏中的"破碎的符咒"(俗称"厕纸")进行召唤,但在实际运行中却错误地识别为符咒数量为零,导致任务提前终止。
问题现象
当用户启用每周琐事功能并运行时,系统会进入抽卡界面,但随即提示"No broken amulet"并退出任务。值得注意的是,用户的游戏账户中实际仍有3000多张破碎符咒可用。这一现象在多种截屏方案(nemu-ipc、windows-background及adb-nc)下均能复现。
技术分析
从日志中可以观察到关键信息:
- 系统成功进入了召唤页面(page_summon)
- OCR识别BA_AMOUNT_1(破碎符咒数量)时返回空值,被修正为0
- 系统因此判断没有可用符咒而终止任务
通过用户提供的截图分析,发现问题的根本原因是游戏界面中破碎符咒的显示位置发生了变化。在旧版本中,符咒数量显示在特定位置,而新版本中该信息的位置有所调整,导致原有的OCR识别区域无法正确捕获数量信息。
解决方案
开发团队迅速定位到问题根源,并提交了修复方案。主要修改内容包括:
- 更新了破碎符咒数量的识别区域坐标
- 优化了OCR识别参数,提高对数字的识别准确率
- 增加了对异常情况的处理逻辑
技术启示
这个案例展示了自动化脚本开发中常见的界面适配问题。当游戏更新导致UI元素位置或样式变化时,基于图像识别的自动化脚本容易出现功能异常。开发者需要:
- 建立完善的UI元素位置管理机制
- 设计灵活的识别算法以适应界面变化
- 提供详细的日志记录,便于快速定位问题
用户建议
对于使用自动化脚本的用户,当遇到类似功能异常时,可以:
- 检查游戏是否进行了版本更新
- 确认脚本是否为最新版本
- 提供完整的错误日志和界面截图
- 尝试不同的截屏方案以排除环境问题
通过这次问题的解决,OnmyojiAutoScript项目在界面变化适应性方面又积累了宝贵经验,未来将能够更好地应对类似的游戏界面调整情况。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



