Skip to content

[邮件] Mail_GoinMail 缺"未领取红点"入口闸:邮箱已空仍反复进入邮箱(活动页"进入前先领取邮件"触发空循环) #325

Description

@BebopSpikeSpiegel

现象

活动页处理时勾选「进入前先领取邮件」,邮箱已空("尚未收到邮件"、计数 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_NewRedMail.png / Mail_TabBusRedDotDetector)都在进入邮箱之后才做,没有挡在入口。

期望行为

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,空邮箱反复进入的结构问题依然存在。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working已尝试修复已尝试修复。至少存在一个专门解决问题的提交。

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions