MaaAssistantArknights icon indicating copy to clipboard operation
MaaAssistantArknights copied to clipboard

在公招一次之后,切换其它客户端类型会导致公招识别错误

Open EvATive7 opened this issue 2 years ago • 1 comments

在提问之前...

  • [X] 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
  • [X] 我填写了简短且清晰明确的标题,以便开发者在翻阅 issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
  • [X] 我已查看最新测试版本的更新内容,并未提及该 bug 已被修复的情况
  • [X] 我已检查了置顶议题(pinned issue),确认我的问题未被提及

问题描述

在公招一次之后,切换其它客户端类型会导致公招识别错误。 例子&稳定复现方法:

  1. 将客户端类型设置为官服
  2. 开启官服客户端,开始公招任务
  3. 将客户端类型设置为日服
  4. 开启日服客户端,开始公招任务
  5. 此时“识别错误”bug复现。

Version

Resource Version: 千秋一粟 UI Version: v5.1.0-beta.1 Core Version: v5.1.0-beta.1

日志文件

asst.log gui.log

截图

No response

还有别的吗?

asst日志中比较模糊,我从源码调试了一下,以下是关于该问题的分析报告:

  1. 识别错误回调由asst::AutoRecruitTask::recruit_one发起,原因是calc_result.success的结果为false
  2. calc_result.success的结果为false的原因是在asst::AutoRecruitTask::recruit_calc_task中,image_analyzer.get_tags_result().size() != RecruitConfig::CorrectNumberOfTags,其中image_analyzer.get_tags_result().size()的值为1,而后者为5。
  3. image_analyzer.get_tags_result().size()为1的原因是在asst::RecruitImageAnalyzer::tags_analyze()tags_analyzer的结果是1,原因是在tags_analyzer.analyse()raw_results虽然为5,但被filter_and_replace_by_required_(res)过滤掉。

再往下的代码我看不太明白,有劳各位debug了。

EvATive7 avatar Feb 05 '24 21:02 EvATive7

You have to restart MAA after changing clients. @ABA2396 maybe we could add a notification?

Constrat avatar Feb 05 '24 22:02 Constrat

给切换客户端和切换触控方式都加一个吧,我等下看看

ABA2396 avatar Feb 06 '24 01:02 ABA2396