OK-AzurPromilia 專案文件
面向《藍色星原:旅謠》(Azur Promilia)的遊戲自動化專案,基於 ok-script 開發。
功能概覽
專案已接入實機自動化支援,涵蓋日常流程、小遊戲玩法接管與輔助功能:
- 一次性日常任務 (
src/tasks/onetime/):- 一鍵日常 (
DailyTask):多子任務編排與狀態追蹤,一鍵執行完整日常。 - 家園日常 (
HomeDailyTask):支援家園烹飪製作、牧場作物收穫等家園流程。 - 每日委託 (
CommissionDailyTask):日常委託接取與提交。 - 每日收菜 (
ClaimDailyTask):自動領取每日活躍、周常活躍、戰令與大月卡獎勵。
- 一鍵日常 (
- 觸發式玩法與小遊戲 (
src/tasks/trigger/):- 自動祖贊卡之梯 (
AutoJengaTask):根據八字擺動軌跡擬合與碰撞面積判定,實現全自動高分放置。 - 自動花瓣音遊 (
AutoRhythmTask):高精度滾動速度擬合與輸入時序預測,支援多軌、長按與雙鍵連擊。 - 自動跳過劇情 (
SkipDialogTask):基於中央文本帶特徵的快速跳過與確認。 - 星結契約輔助 (
StarLinkAssistTask):螢幕中心準心光圈圓弧擬合與自動命中。 - 寶箱開鎖輔助 (
TreasureUnlockTask):高精度顏色帶連通域檢測與自動對齊開鎖。
- 自動祖贊卡之梯 (
快速導航
專案結構
├── main.py / main_debug.py 入口(Release / Debug)
├── src/
│ ├── config.py ok-script 应用配置与任务/Tab 注册
│ ├── globals.py 全局单例
│ ├── icons.py 图标(复用 FluentIcon)
│ ├── core/
│ │ ├── base_game_task.py 任务通用基类(self.loop、暂停感知、配置迁移)
│ │ ├── base_mixin/ 通用能力 mixin(RuntimeMixin、FrameworkOverrideMixin)
│ │ ├── detector/ Action 生命周期识别层(Hit / Detector 统一判据)
│ │ ├── config_migration.py 配置键迁移工具
│ │ ├── game_window.py 按 exe + 窗口类名定位游戏窗口
│ │ ├── global_config_store.py 项目自建全局配置存储
│ │ └── sequence_parser.py 逗号分隔配置串解析
│ ├── tasks/
│ │ ├── onetime/ 一次性业务任务(Daily、HomeDaily、CommissionDaily、ClaimDaily)
│ │ ├── trigger/ 触发式任务(AutoJenga、AutoRhythm、SkipDialog、StarLink、TreasureUnlock)
│ │ ├── test/ 调试与测试任务(Screenshot、Interaction、TreasureBand、UINavigate)
│ │ ├── daily/ 多步骤任务编排与汇总(DailyFeature、步骤统计)
│ │ └── account/ 账号作用域配置存储
│ ├── gui/ 自定义 Tab(全局配置 / 账号配置)
│ ├── interaction/ 游戏交互(GameInteraction 模拟键鼠、ScreenPosition)
│ ├── image/ 图像算法(旋转模板匹配、连通域、圆弧拟合、音游/叠叠乐检测等)
│ ├── yolo/ YOLO 模型注册与 OpenVINO 推理
│ ├── patches/ 框架启动猴子补丁
│ └── data/
│ ├── feature_list.py 模板匹配特征枚举(由标注自动生成)
│ └── lang/ lang JSON 读取器
├── assets/coco_annotations.json 模板标注(COCO 格式)
├── assets/lang/ OCR 语言匹配 JSON(6 种语言)
├── i18n/*/LC_MESSAGES/ok.po UI 文案 gettext 国际化目录
├── tests/ unittest 单元测试
├── scripts/ tools/ 编译、检查、多语言维护等工具脚本
├── docs/ 项目与开发文档
└── .github/workflows/ CI/CD 自动化流水线(build / release / pr-test / docs)
開發與測試
本專案依賴通過 uv 管理,支援 Python 3.12:
# 安装/同步依赖
uv sync
# 运行 Debug 模式
uv run python main_debug.py
# 执行全量单元测试
uv run python -m unittest discover -s tests
# 或使用 PowerShell 逐文件运行测试
./run_tests.ps1