现象
活动页处理时勾选「进入前先领取邮件」,邮箱已空("尚未收到邮件"、计数 0/100、无红点、RedDotDetector 也未检测到)的情况下,bot 仍反复点进邮箱 → 退出 → 再点进邮箱,空循环,无法继续活动页流程。
根因(base/pipeline/Mail.json)
入口节点 Mail_GoinMail:
"Mail_GoinMail": {
"recognition": "And",
"all_of": ["Rec_HomePage_GA_Ocr", "Sub_HomePage_GA_Bright_Clr"],
"target": [1030, 45],
"next": ["Mail_NewRed"],
"on_error": ["Mail_NormalEnd", ...]
}
它的进入条件 And[Rec_HomePage_GA_Ocr, Sub_HomePage_GA_Bright_Clr] 只判"当前是否在主页"(看左下抽抽乐),不判"是否有未领取邮件(右上红点)"。于是只要人在主页,就会点 target[1030,45](右上邮件图标)进邮箱——空邮箱也照进。
进去后邮箱为空 → Mail_GetAll/Mail_GetBusAll 无可领 → 走 Mail_NormalEnd → Global_ToHomePage 回到主页 → 又满足 Mail_GoinMail 条件 → 再次进入 → 空循环。
红点判定(Mail_NewRed 的 Mail.png / Mail_TabBus 的 RedDotDetector)都在进入邮箱之后才做,没有挡在入口。
期望行为
Mail_GoinMail 入口处增加"未领取邮件红点"闸(复用 Mail.png 红点模板或 RedDotDetector 检测右上邮件图标的红点):有红点才进邮箱领取,无红点直接走 Mail_NormalEnd,不进空邮箱、不空循环。
影响范围
base/pipeline/Mail.json,Android/PC 共通。
备注
我在 NT-PC 移植里为修主页判定死循环,把 Rec_HomePage_GA_Ocr 的 roi 放宽了(PR #322/#323 范畴)。这会让 Mail_GoinMail 的"在主页"判定更容易满足,从而更容易触发此空循环——但根因是 Mail_GoinMail 入口缺红点闸,并非 roi 放宽本身;即便收紧 roi,空邮箱反复进入的结构问题依然存在。
现象
活动页处理时勾选「进入前先领取邮件」,邮箱已空("尚未收到邮件"、计数 0/100、无红点、
RedDotDetector也未检测到)的情况下,bot 仍反复点进邮箱 → 退出 → 再点进邮箱,空循环,无法继续活动页流程。根因(base/pipeline/Mail.json)
入口节点
Mail_GoinMail:它的进入条件
And[Rec_HomePage_GA_Ocr, Sub_HomePage_GA_Bright_Clr]只判"当前是否在主页"(看左下抽抽乐),不判"是否有未领取邮件(右上红点)"。于是只要人在主页,就会点target[1030,45](右上邮件图标)进邮箱——空邮箱也照进。进去后邮箱为空 →
Mail_GetAll/Mail_GetBusAll无可领 → 走Mail_NormalEnd → Global_ToHomePage回到主页 → 又满足Mail_GoinMail条件 → 再次进入 → 空循环。红点判定(
Mail_NewRed的Mail.png/Mail_TabBus的RedDotDetector)都在进入邮箱之后才做,没有挡在入口。期望行为
Mail_GoinMail入口处增加"未领取邮件红点"闸(复用Mail.png红点模板或RedDotDetector检测右上邮件图标的红点):有红点才进邮箱领取,无红点直接走Mail_NormalEnd,不进空邮箱、不空循环。影响范围
base/pipeline/Mail.json,Android/PC 共通。备注
我在 NT-PC 移植里为修主页判定死循环,把
Rec_HomePage_GA_Ocr的 roi 放宽了(PR #322/#323 范畴)。这会让Mail_GoinMail的"在主页"判定更容易满足,从而更容易触发此空循环——但根因是Mail_GoinMail入口缺红点闸,并非 roi 放宽本身;即便收紧 roi,空邮箱反复进入的结构问题依然存在。