Skip to content

feat(ok-nte): ok-nte专项支持启动前强制切换登录账号,并允许通过启动器唤醒异环 - #522

Merged
AthenaHibou merged 12 commits into
AUTO-MAS-Project:devfrom
AthenaHibou:feat/ok-nte-account-switch
Sep 2, 2026
Merged

feat(ok-nte): ok-nte专项支持启动前强制切换登录账号,并允许通过启动器唤醒异环#522
AthenaHibou merged 12 commits into
AUTO-MAS-Project:devfrom
AthenaHibou:feat/ok-nte-account-switch

Conversation

@AthenaHibou

@AthenaHibou AthenaHibou commented Sep 1, 2026

Copy link
Copy Markdown
Member

功能说明

本 PR 为 OK-NTE 专项新增两项由 MAS 接管的能力,覆盖异环更新频繁、启动链路长带来的全部自动化场景:

  • 经启动器拉起游戏:异环直启 HTGame.exe 会卡界面,MAS 自动拉起 NTELauncher 并点击「开始游戏」。路径解析优先级:Game.Path 为启动器 → 旧值 HTGame.exe 按安装根反推 → ok-nte 自身 LauncherTask.json 兜底;前端同步支持启动器选择与旧配置自动升级回显。
  • 启动前强制切换登录账号:游戏启动后、运行 ok-nte 前,按用户手机号后 4 位在 HOTTA STUDIO 登录面板自动切换账号;开关位于游戏配置区,需开启「任务前启动游戏」,用户未填写手机号时自动跳过。
  • 启动全程自适应等待:识别启动链路上的各类界面并作出正确动作——启动器升级弹窗(立即体验/确定重启)、启动器与游戏更新下载(基于下载状态持续等待直至完成)、游戏内加载过渡帧(进展续延,就绪信号:进入游戏/使用其他方式登录/适龄提示徽标)、客户端更新重启(自动重定位新窗口);长时间无进展才判定失败并留存诊断截图。
  • 配置与可观测性:切号过程与启动步骤实时写入调度台日志;OCR 诊断记录落盘节流,失败时保留原始截图(debug/oknte-account-switch/),便于用户反馈识别漂移。

测试示例

image

Sourcery 摘要

支持 OK-NTE 通过其启动器启动,并可在运行任务前选择性切换账号,同时增强启动过程的容错能力和诊断功能。

新功能:

  • 新增基于 OK-NTE 启动器的游戏启动功能,支持启动器更新、游戏更新、客户端重启以及自适应就绪等待。
  • 根据配置用户的手机号码后缀,支持在任务开始前选择性切换账号。
  • 新增实时的启动和账号切换进度报告,并提供诊断 OCR 日志和失败截图。

问题修复:

  • 防止 OK-NTE 直接启动 HTGame.exe,避免客户端在启动时卡住。
  • 改进清理流程,使其能够独立终止 HTGame.exe 客户端进程,而不依赖启动器进程树。

增强功能:

  • 支持从新配置、旧版 HTGame.exe 路径或 ok-nte 启动器元数据中解析启动器路径,并在编辑器中升级旧版路径。
  • 更新 OK-NTE 游戏配置和 UI,以提供启动器选择和账号切换设置,并显示相应的前置条件。
  • 支持多个地区的启动器可执行文件名称,并增强窗口、OCR、DPI 和前台交互处理的容错能力。

维护:

  • 更新应用程序版本元数据。
Original summary in English

Sourcery 总结

支持基于 OK-NTE 启动器的启动,以及可选的任务前账号切换,并提供更可靠的自动化、诊断和问题报告功能。

新功能:

  • 支持通过其启动器启动 OK-NTE,并自动处理启动器升级、游戏更新、重启以及自适应就绪检测。
  • 可根据配置用户的手机号码后缀,在执行任务前切换 OK-NTE 登录账号。
  • 提供实时的启动和账号切换进度报告,并支持 OCR 诊断和失败截图。
  • 新增专用的 OK-NTE 问题包导出功能,用于收集相关日志和调试文件。

错误修复:

  • 避免直接启动 HTGame.exe,防止客户端在启动过程中卡住。
  • 确保清理操作能够独立于启动器进程树终止 HTGame.exe 客户端。

改进:

  • 支持从新配置、旧版 HTGame.exe 路径或 OK-NTE 启动器元数据中解析启动器路径,并支持多个地区的启动器可执行文件。
  • 更新 OK-NTE 配置编辑和本地化功能,以显示启动器选择和任务前账号切换的前置条件。

杂项:

  • 更新应用程序版本元数据。
Original summary in English

Summary by Sourcery

通过 OK-NTE 启动器接管游戏启动流程,并在任务执行前提供可选的登录账号切换能力。

New Features:

  • 支持通过 OK-NTE 启动器启动游戏,并自动处理启动器升级、游戏更新、客户端重启和启动就绪等待。
  • 新增任务执行前按用户手机号后四位切换 OK-NTE 登录账号的可选功能。
  • 新增 OK-NTE 专用问题包导出,收集相关日志、调试信息和诊断文件。

Bug Fixes:

  • 避免直接启动 HTGame.exe 导致游戏卡在启动界面。
  • 确保游戏清理流程能够独立终止 HTGame.exe,而不依赖启动器进程树。

Enhancements:

  • 增强 OK-NTE 启动器路径解析,兼容新配置、旧版 HTGame.exe 配置及多地区启动器。
  • 改进启动与账号切换过程的窗口识别、OCR、DPI 适配、前台交互和失败诊断能力。
  • 更新 OK-NTE 配置编辑界面、账号切换选项及相关本地化文案。

Chores:

  • 更新应用版本元数据。
Original summary in English

Summary by Sourcery

通过 OK-NTE 启动器接管游戏启动流程,并在任务执行前提供可选的登录账号切换能力。

New Features:

  • 支持通过 OK-NTE 启动器启动游戏,并自动处理启动器升级、游戏更新、客户端重启和启动就绪等待。
  • 新增任务执行前按用户手机号后四位切换 OK-NTE 登录账号的可选功能。
  • 新增 OK-NTE 专用问题包导出,收集相关日志、调试信息和诊断文件。

Bug Fixes:

  • 避免直接启动 HTGame.exe 导致游戏卡在启动界面。
  • 确保游戏清理流程能够独立终止 HTGame.exe,而不依赖启动器进程树。

Enhancements:

  • 增强 OK-NTE 启动器路径解析,兼容新配置、旧版 HTGame.exe 配置及多地区启动器。
  • 改进启动与账号切换过程的窗口识别、OCR、DPI 适配、前台交互和失败诊断能力。
  • 更新 OK-NTE 配置编辑界面、账号切换选项及相关本地化文案。

Chores:

  • 更新应用版本元数据。

- 游戏启动改由 MAS 拉起 NTELauncher 启动器并 OCR 点击「开始游戏」(替代直启
  HTGame.exe 避免卡界面),兼容启动器「更新」流程、旧客户端路径与三区服启动器;
  游戏结束改为按 HTGame.exe 进程名清理
- 新增「运行前强制切换账号」(依赖游戏配置启用),游戏启动后按用户手机号后
  4 位匹配登录面板掩码账号完成切换,交互与失败诊断留痕对齐 OK-WW 强制切号
- 修复 OK-NTE AutoProxy 缺失 Notify 导入导致任务异常通知静默失效的问题

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @AthenaHibou, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 4 days and 2 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@sourcery-ai

sourcery-ai Bot commented Sep 1, 2026

Copy link
Copy Markdown

审查者指南

本 PR 将 OK-NTE 的 MAS 接管启动链路改为启动器驱动,新增基于 Windows OCR/UI 自动化的手机号后四位账号切换,并通过配置兼容、前端引导、动态等待、实时日志和失败截图覆盖更新频繁及长启动场景。

OK-NTE 启动器启动与账号切换时序图

sequenceDiagram
    participant MAS as MAS
    participant Launcher as NTELauncher
    participant Game as HTGame.exe
    participant OCR as OCR_UI_Automation
    participant User as UserConfig
    participant OKNTE as OK-NTE

    MAS->>MAS: _resolve_launcher_path()
    MAS->>Launcher: open_process(launcher_path)
    MAS->>Launcher: async_start_game_via_launcher()
    loop Until actionable state
        OCR->>Launcher: _read_texts()
        alt Launcher upgrade
            OCR-->>MAS: 立即体验 / 更新已完成
            MAS->>Launcher: Click upgrade or confirm restart
        else Game update in progress
            OCR-->>MAS: Download status
            MAS->>MAS: Wait for progress or detect stall
        else Start game available
            MAS->>Launcher: Click 开始游戏
        end
    end
    Launcher->>Game: Start client
    MAS->>Game: _find_game_hwnd()
    MAS->>OCR: _wait_for_actionable_state()
    OCR-->>MAS: Title or login panel ready

    alt AccountSwitch enabled and phone configured
        User-->>MAS: account_id
        MAS->>OCR: async_switch_account(account_id)
        OCR->>Game: Open login panel
        OCR->>Game: Select account by phone suffix
        OCR->>Game: Click 登录
        OCR-->>MAS: Login panel disappears
        MAS->>OKNTE: set_oknte()
    else Disabled or no phone configured
        MAS->>OKNTE: set_oknte()
    end
Loading

文件级变更

变更 详情 文件
将 OK-NTE 的客户端启动改为由 MAS 统一通过启动器完成,并兼容旧版 HTGame.exe 配置。
  • 新增国服、国际服和台服启动器路径识别与 LauncherTask.json 回退。
  • 启动前处理启动器升级、游戏更新下载、开始游戏点击、窗口重启和超时诊断。
  • 前端选择器改为定位启动器,并对旧 HTGame.exe 配置自动升级回显。
app/task/OkNte/AutoProxy.py
app/task/OkNte/tools/launcher_start.py
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
frontend/src/i18n/locales/en-US.ts
frontend/src/i18n/locales/ja-JP.ts
frontend/src/i18n/locales/zh-CN.ts
新增基于 Windows 前台 UI 自动化和 OCR 的 OK-NTE 登录账号强制切换流程。
  • 按用户手机号后四位识别并选择 HOTTA STUDIO 登录面板中的账号,支持账号列表滚动、重试和登录结果校验。
  • 加入窗口定位、DPI/坐标适配、客户端更新重启后的窗口重定位,以及标题页、登录面板和加载状态识别。
  • 通过配置开关控制切号,仅在 MAS 负责启动游戏且用户配置了账号时执行;失败时统一重试、通知并终止当前用户流程。
app/task/OkNte/tools/account_switch.py
app/task/OkNte/AutoProxy.py
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
完善启动和切号过程的调度台日志及故障诊断能力。
  • 将后台线程中的同步进度回调安全地投递回 asyncio 事件循环。
  • 节流保存 OCR 识别记录,并在失败时保存原始窗口截图。
  • 改为按 HTGame.exe 进程名结束游戏本体,避免仅跟踪启动器进程树。
app/task/OkNte/AutoProxy.py
app/task/OkNte/tools/account_switch.py
app/task/OkNte/tools/launcher_start.py
同步 OK-NTE 配置模型、编辑界面和版本资源以支持新能力。
  • 新增 AccountSwitch 配置字段及其默认值、校验和前端类型。
  • 在游戏配置区增加切号开关及启动器路径提示,并根据依赖条件禁用开关。
  • 更新多语言文案和资源版本信息。
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
frontend/src/i18n/locales/en-US.ts
frontend/src/i18n/locales/ja-JP.ts
frontend/src/i18n/locales/zh-CN.ts
res/version.json

提示与命令

与 Sourcery 交互

  • 触发新的审查: 在拉取请求中评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审查评论。
  • 从审查评论生成 GitHub issue: 回复审查评论,请 Sourcery 根据该评论创建 issue。你也可以使用 @sourcery-ai issue 回复审查评论,从中创建 issue。
  • 生成拉取请求标题: 在拉取请求标题的任意位置写入 @sourcery-ai,即可随时生成标题。你也可以在拉取请求中评论 @sourcery-ai title,随时生成或重新生成标题。
  • 生成拉取请求摘要: 在拉取请求正文中任意位置写入 @sourcery-ai summary,即可在指定位置随时生成 PR 摘要。你也可以在拉取请求中评论 @sourcery-ai summary,随时生成或重新生成摘要。
  • 生成审查者指南: 在拉取请求中评论 @sourcery-ai guide,即可随时生成或重新生成审查者指南。
  • 解决所有 Sourcery 评论: 在拉取请求中评论 @sourcery-ai resolve,即可解决所有 Sourcery 评论。如果你已经处理了所有评论且不想再看到它们,这项功能会很有用。
  • 忽略所有 Sourcery 审查: 在拉取请求中评论 @sourcery-ai dismiss,即可忽略所有现有的 Sourcery 审查。如果你想重新开始新的审查,这项功能尤其有用——别忘了评论 @sourcery-ai review 以触发新的审查!

自定义你的使用体验

访问你的控制面板

  • 启用或禁用审查功能,例如 Sourcery 生成的拉取请求摘要、审查者指南等。
  • 更改审查语言。
  • 添加、删除或编辑自定义审查说明。
  • 调整其他审查设置。

获取帮助

Original review guide in English

Reviewer's Guide

本 PR 将 OK-NTE 的 MAS 接管启动链路改为启动器驱动,新增基于 Windows OCR/UI 自动化的手机号后四位账号切换,并通过配置兼容、前端引导、动态等待、实时日志和失败截图覆盖更新频繁及长启动场景。

Sequence diagram for OK-NTE launcher startup and account switching

sequenceDiagram
    participant MAS as MAS
    participant Launcher as NTELauncher
    participant Game as HTGame.exe
    participant OCR as OCR_UI_Automation
    participant User as UserConfig
    participant OKNTE as OK-NTE

    MAS->>MAS: _resolve_launcher_path()
    MAS->>Launcher: open_process(launcher_path)
    MAS->>Launcher: async_start_game_via_launcher()
    loop Until actionable state
        OCR->>Launcher: _read_texts()
        alt Launcher upgrade
            OCR-->>MAS: 立即体验 / 更新已完成
            MAS->>Launcher: Click upgrade or confirm restart
        else Game update in progress
            OCR-->>MAS: Download status
            MAS->>MAS: Wait for progress or detect stall
        else Start game available
            MAS->>Launcher: Click 开始游戏
        end
    end
    Launcher->>Game: Start client
    MAS->>Game: _find_game_hwnd()
    MAS->>OCR: _wait_for_actionable_state()
    OCR-->>MAS: Title or login panel ready

    alt AccountSwitch enabled and phone configured
        User-->>MAS: account_id
        MAS->>OCR: async_switch_account(account_id)
        OCR->>Game: Open login panel
        OCR->>Game: Select account by phone suffix
        OCR->>Game: Click 登录
        OCR-->>MAS: Login panel disappears
        MAS->>OKNTE: set_oknte()
    else Disabled or no phone configured
        MAS->>OKNTE: set_oknte()
    end
Loading

File-Level Changes

Change Details Files
将 OK-NTE 的客户端启动改为由 MAS 统一通过启动器完成,并兼容旧版 HTGame.exe 配置。
  • 新增国服、国际服和台服启动器路径识别与 LauncherTask.json 回退。
  • 启动前处理启动器升级、游戏更新下载、开始游戏点击、窗口重启和超时诊断。
  • 前端选择器改为定位启动器,并对旧 HTGame.exe 配置自动升级回显。
app/task/OkNte/AutoProxy.py
app/task/OkNte/tools/launcher_start.py
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
frontend/src/i18n/locales/en-US.ts
frontend/src/i18n/locales/ja-JP.ts
frontend/src/i18n/locales/zh-CN.ts
新增基于 Windows 前台 UI 自动化和 OCR 的 OK-NTE 登录账号强制切换流程。
  • 按用户手机号后四位识别并选择 HOTTA STUDIO 登录面板中的账号,支持账号列表滚动、重试和登录结果校验。
  • 加入窗口定位、DPI/坐标适配、客户端更新重启后的窗口重定位,以及标题页、登录面板和加载状态识别。
  • 通过配置开关控制切号,仅在 MAS 负责启动游戏且用户配置了账号时执行;失败时统一重试、通知并终止当前用户流程。
app/task/OkNte/tools/account_switch.py
app/task/OkNte/AutoProxy.py
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
完善启动和切号过程的调度台日志及故障诊断能力。
  • 将后台线程中的同步进度回调安全地投递回 asyncio 事件循环。
  • 节流保存 OCR 识别记录,并在失败时保存原始窗口截图。
  • 改为按 HTGame.exe 进程名结束游戏本体,避免仅跟踪启动器进程树。
app/task/OkNte/AutoProxy.py
app/task/OkNte/tools/account_switch.py
app/task/OkNte/tools/launcher_start.py
同步 OK-NTE 配置模型、编辑界面和版本资源以支持新能力。
  • 新增 AccountSwitch 配置字段及其默认值、校验和前端类型。
  • 在游戏配置区增加切号开关及启动器路径提示,并根据依赖条件禁用开关。
  • 更新多语言文案和资源版本信息。
app/models/config.py
app/models/schema.py
frontend/src/api/models/OkNteConfig_Game.ts
frontend/src/views/EditView/Script/OkNteScriptEdit.vue
frontend/src/i18n/locales/en-US.ts
frontend/src/i18n/locales/ja-JP.ts
frontend/src/i18n/locales/zh-CN.ts
res/version.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@AthenaHibou
AthenaHibou merged commit df2834d into AUTO-MAS-Project:dev Sep 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant