OnmyojiAutoScript结界寄养经验收取卡顿问题分析与解决

OnmyojiAutoScript结界寄养经验收取卡顿问题分析与解决

OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 OnmyojiAutoScript 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

问题背景

在OnmyojiAutoScript自动化脚本项目中,用户报告了一个关于结界寄养功能的bug:当脚本执行到收取经验步骤时会出现卡顿现象。通过日志分析发现,脚本在执行到点击收取经验按钮后便停止响应,导致整个流程无法继续。

问题现象分析

根据用户提供的日志和截图,我们可以清晰地看到问题发生的具体场景:

  1. 脚本正常进入结界寄养界面
  2. 执行收取经验操作时,点击了坐标为(902,162)的位置
  3. 随后脚本进入等待状态,最终因超时而报错

从代码层面来看,收取经验的逻辑是通过一系列图片识别和点击操作完成的。核心代码如下:

def harvest_card(self):
    self.appear_then_click(self.I_A_HARVEST_EXP)
    self.appear_then_click(self.I_A_HARVEST_FISH4)
    self.appear_then_click(self.I_A_HARVEST_KAIKO_4)
    self.appear_then_click(self.I_A_HARVEST_KAIKO_3)
    self.appear_then_click(self.I_A_HARVEST_KAIKO_6)
    self.appear_then_click(self.I_A_HARVEST_FISH_6)
    self.appear_then_click(self.I_A_HARVEST_MOON_3)
    self.appear_then_click(self.I_A_HARVEST_FISH_3)

根本原因

经过深入分析,发现问题出在图片识别环节。具体表现为:

  1. 脚本在收取经验后,需要识别结界卡界面以确认操作完成
  2. 原始代码中使用的图片匹配阈值设置过高(默认0.85)
  3. 由于游戏界面可能存在细微变化或渲染差异,导致无法准确匹配目标图片
  4. 截图显示,结界卡界面确实已经出现,但脚本未能识别

解决方案

针对这一问题,项目维护者提出了有效的解决方案:

  1. 调整图片匹配的相似度阈值从默认的0.85降低到0.7
  2. 这一调整能够在保证识别准确性的同时,提高对界面变化的容错能力
  3. 经过测试,修改后的阈值能够稳定识别结界卡界面

技术启示

这个问题为我们提供了几个重要的技术启示:

  1. 图像识别阈值的选择:在自动化测试或游戏脚本中,图像识别阈值的设置需要平衡准确性和容错性。过高会导致识别失败,过低则可能产生误识别。

  2. 异常处理机制:对于可能出现的卡顿情况,脚本应该设置合理的超时机制,并在超时后采取恢复措施,而不是直接报错退出。

  3. 界面变化的适应性:游戏界面可能会因版本更新、设备差异等原因产生变化,脚本设计时应考虑这些因素,提高鲁棒性。

总结

OnmyojiAutoScript项目中的这个结界寄养经验收取问题,典型地展示了自动化脚本开发中常见的图像识别挑战。通过调整匹配阈值这一简单而有效的方法,开发者成功解决了问题,同时也为类似场景的处理提供了参考方案。这提醒我们在开发自动化工具时,需要充分考虑实际运行环境的变化因素,设计更具弹性的识别和处理逻辑。

OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 OnmyojiAutoScript 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娄纳萌Vania

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值