Skip to content

活动入口实际可用时被误判为不可用(Event unavailable) #374

Description

@swordcry424

在提问之前

  • 我已经搜索了现有的 issues
  • 我在提问题之前至少花费了 5 分钟来思考和准备
  • 我已经阅读了 Wiki 中的常见问题(FAQ)
  • 已确认当前上游 master 中相关活动入口识别代码与复现版本一致

描述你的问题

活动入口实际仍然可用、且活动截止时间尚未到达时,AzurPilot 在从大世界切换到活动任务的过程中,将活动入口误判为不可用(Event unavailable)。

本次发生于 2026-06-22 23:36:08(CST)。当时配置的活动时间限制为 2026-06-25 00:00:00,并未触发时间限制。次日手动重新开启 Event 后,脚本可以正常进入活动页面并运行,说明活动入口实际可用。

误判发生后,程序按照现有逻辑自动关闭了 Event 等活动任务。这是误判造成的后果,并非本报告所指的根本问题。

复现版本:

commit 5fe41dc1cdd39266ae96a7b0af4259d2872a6ee4
2026-06-22 16:29:11 +0800
fix: honor disabled startup auto-update

已比较当前 origin/mastermodule/campaign/campaign_event.pymodule/ui/assets.pyCAMPAIGN_MENU_NO_EVENT 图片资源均无差异。

如何复现

该问题是一次偶发的页面识别误判,目前没有稳定的手动复现步骤。实际触发过程如下:

  1. OpsiHazard1Leveling 正在运行,调度器切换到已到期的 Event 任务。
  2. 脚本从 page_os 返回主界面,再进入 page_campaign_menu
  3. 到达活动菜单后立即检测 CAMPAIGN_MENU_NO_EVENT
  4. 日志记录 Event unavailable, disable task
  5. 所有活动类任务被自动设置为 Scheduler.Enable=False
  6. 次日手动重新开启 Event 后,脚本正常识别 Event available,可以进入活动页面并刷图。

预期行为

在活动入口实际可用时,应正确识别为 Event available 并进入活动页面,不应因页面切换或页面尚未稳定而误判为 Event unavailable

相关 Logs

2026-06-22 23:36:06.127 | INFO | 调度器: 开始任务 `Event`
2026-06-22 23:36:06.531 | INFO | [Event_time_limit] 2026-06-22 23:36:06 -> 2026-06-25 00:00:00
2026-06-22 23:36:06.555 | INFO | [UI] page_os
2026-06-22 23:36:06.558 | INFO | <<< UI GOTO PAGE_CAMPAIGN_MENU >>>
2026-06-22 23:36:06.569 | INFO | Page switch: page_os -> page_main
2026-06-22 23:36:07.468 | INFO | Page switch: page_main_white -> page_campaign_menu
2026-06-22 23:36:08.212 | INFO | Page arrive: page_campaign_menu
2026-06-22 23:36:08.215 | INFO | Event unavailable, disable task
2026-06-22 23:36:08.215 | INFO | Disable task `Event`
2026-06-22 23:36:08.216 | INFO | Disable task `Event2`
2026-06-22 23:36:08.217 | INFO | Disable task `Event3`
2026-06-22 23:36:08.218 | INFO | Disable task `EventA`
2026-06-22 23:36:08.218 | INFO | Disable task `EventB`
2026-06-22 23:36:08.219 | INFO | Disable task `EventC`
2026-06-22 23:36:08.220 | INFO | Disable task `EventD`
2026-06-22 23:36:08.220 | INFO | Disable task `EventSp`
2026-06-22 23:36:08.221 | INFO | Disable task `Raid`
2026-06-22 23:36:08.222 | INFO | Disable task `RaidDaily`
2026-06-22 23:36:08.223 | INFO | Disable task `RaidScuttle`
2026-06-22 23:36:08.224 | INFO | Disable task `Coalition`
2026-06-22 23:36:08.224 | INFO | Disable task `CoalitionSp`
2026-06-22 23:36:08.225 | INFO | Disable task `Hospital`
2026-06-22 23:36:08.226 | INFO | Disable task `HospitalEvent`
2026-06-22 23:36:08.236 | INFO | Save config ..., Event.Scheduler.Enable=False,
Event2.Scheduler.Enable=False, Event3.Scheduler.Enable=False,
EventA.Scheduler.Enable=False, EventB.Scheduler.Enable=False,
EventC.Scheduler.Enable=False, EventD.Scheduler.Enable=False,
EventSp.Scheduler.Enable=False, Raid.Scheduler.Enable=False,
RaidDaily.Scheduler.Enable=False, RaidScuttle.Scheduler.Enable=False,
Coalition.Scheduler.Enable=False, CoalitionSp.Scheduler.Enable=False,
Hospital.Scheduler.Enable=False, HospitalEvent.Scheduler.Enable=False

重新开启后的日志:

2026-06-23 04:48:20.991 | INFO | Save config ..., Event.Scheduler.Enable=True
2026-06-23 04:48:32.822 | INFO | 调度器: 开始任务 `Event`
2026-06-23 04:48:34.231 | INFO | Event available
2026-06-23 04:48:34.238 | INFO | Click (...) @ CAMPAIGN_MENU_GOTO_EVENT
2026-06-23 04:48:34.654 | INFO | Page arrive: page_event

截图

无。问题发生时没有人工操作或截图;上述日志完整记录了误判、批量关闭及重新开启后正常进入活动页面的过程。

还有别的吗?

现有逻辑在 CampaignEvent.is_event_entrance_available() 中匹配到了 CAMPAIGN_MENU_NO_EVENT,但本次随后重新开启任务即可正常进入活动,说明该次匹配属于误识别。自动关闭整组任务只是该误识别触发的后续行为。

本 Issue 仅报告问题和复现证据,未提交修复。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions