feat: add page map recognition and grouped task planning

This commit is contained in:
admin committed 2026-10-06 13:24:25 +08:00
1 parent 386198e8e0
commit f7628ab41e
76 files changed
+12437 -49

No files matched your search

+33 -3
View File
@@ -8,13 +8,43 @@
- 小金猪流程:首页识别 → 打开挂机奖励 → 仅在金色领取按钮出现时长按领取 → 确认奖励弹框与灰色按钮 → 关闭弹框并回到首页。
- 脚本与识别模板分离,后续任务通过 `workflows/` 扩展。
- 截图像素与鼠标坐标分别换算,覆盖主屏幕 Retina 缩放的坐标情况。
- 已有17项任务脚本,涵盖首页领奖、英雄招募签到、领地收矿/体力/券/积分及公会日常;入口、范围和更新时间见 [脚本汇总](docs/261004_1607-首页功能与日常任务梳理.md#已实现脚本汇总)。
- 页面地图、只读识别、路线查询及任务分组预览。当前仍未接入统一导航执行和一键日常调度。
小金猪流程只领取挂机奖励,不执行消耗体力的快速扫荡。已于 2026-10-04 实机验证:领取后出现“恭喜获得”弹框、按钮变灰、挂机计时重置,并确认返回首页。灰色领取按钮时脚本不会点击领取。
红点规则:按钮右上角有红点表示其内部有奖励可领取。后续入口任务可以据此进入,但领取成功还需验证内部状态。当前第一条小金猪流程不依赖红点,红点检测尚未实现。
红点规则:按钮右上角有红点表示其内部有奖励可领取。已有任务在各自配置区域检测红点,领取成功仍需验证内部状态。小金猪流程不依赖红点;通用入口定位和红点检测尚未接入地图导航。
## 本地启动
### 页面识别与地图(只读)
页面关系记录在 `workflows/page_map.json`,完整说明见 [页面地图与导航规则](docs/261005_1702-页面地图与导航规则.md)。识别当前游戏页面或查询候选路径:
```bash
.venv/bin/python inspect_page.py
.venv/bin/python inspect_page.py --from-page territory --to-page recruit.lamp
```
这两个命令不会点击游戏。主要页面已实机核对;未知、歧义、遮挡或未验证入口不能据此自动导航。现有任务脚本仍按其原来的启动页面运行,尚未接入地图与统一调度。
外观相同的进度奖励弹框需要已确认的进入来源,不能仅凭图片猜测:
```bash
.venv/bin/python inspect_page.py --image local/page_audit/territory_rank_progress.png --previous-page territory.rank.board
```
### 地图核查与任务分组(只读)
```bash
.venv/bin/python plan_tasks.py --audit
.venv/bin/python plan_tasks.py
.venv/bin/python plan_tasks.py --page guild
.venv/bin/python plan_tasks.py --include-deferred --include-manual
```
命令只读取配置,检查引用并列出按首页、商城、领地、公会分组的任务和开发缺口,不截图、不点鼠标。默认排除延期任务、按需快速扫荡和命令打造;已有脚本标注其原首页启动要求,不能直接送到子页面运行。当前可见页面核实结果及后续实现顺序见 [页面核实与自动化优化计划](docs/261006_0109-页面核实与自动化优化计划.md)。
### 已验证的小金猪挂机奖励脚本
```bash
@@ -144,8 +174,8 @@ macOS 实际截图和点击需要为运行程序的宿主启用屏幕录制和
.venv/bin/python -m unittest discover -s tests -v
```
测试使用模拟桌面,不操作游戏,覆盖坐标换算、遮罩识别、领取流程、预览、超时和停止。真实领取后的弹框变化尚未采集,如未回到首页则会超时停止,不重复领取。
测试使用模拟桌面和识别夹具,不操作游戏,覆盖坐标换算、领取流程、预览、超时、停止、弹框来源和地图引用。已有脚本的领奖变化曾分别实测;新地图任务本轮只核实布局与导航,尚未验证领取、广告、购买后的结果。
后续依次补充红点检测、各任务具体步骤与结果识别、资源策略、模型设置与 Key 存储,再准备独立应用打包。目前不调用模型 API,也不保存模型 Key。
后续先实现公共导航和列表/免费领奖执行器,逐项迁移已有脚本,再接广告、资源购买和任务记录;最后完善模型设置与 Key 存储并进行双平台打包。目前不调用模型 API,也不保存模型 Key。
实现参考:[PyAutoGUI 官方文档](https://pyautogui.readthedocs.io/en/latest/quickstart.html)、[OpenCV 模板匹配文档](https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html)。