From 7def63b3b916ef4f915407c2f7b692574c4104c2 Mon Sep 17 00:00:00 2001 From: zhl Date: Sun, 4 Oct 2026 21:03:12 +0800 Subject: [PATCH] feat: add arena points claim automation --- README.md | 8 +++ assets/arena_dismiss.png | Bin 0 -> 18416 bytes assets/arena_page_title.png | Bin 0 -> 11461 bytes assets/arena_reward.png | Bin 0 -> 42095 bytes assets/arena_select_title.png | Bin 0 -> 18769 bytes automation/arena.py | 62 +++++++++++++++++++++ claim_arena_points.py | 39 +++++++++++++ docs/261004_1607-首页功能与日常任务梳理.md | 26 +++++++-- tests/test_arena.py | 53 ++++++++++++++++++ workflows/arena_points.json | 22 ++++++++ 10 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 assets/arena_dismiss.png create mode 100644 assets/arena_page_title.png create mode 100644 assets/arena_reward.png create mode 100644 assets/arena_select_title.png create mode 100644 automation/arena.py create mode 100644 claim_arena_points.py create mode 100644 tests/test_arena.py create mode 100644 workflows/arena_points.json diff --git a/README.md b/README.md index 94c6c12..023befd 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,14 @@ 流程为:首页 → 领地 → 合作模式 → 模式选择左侧“合作模式” → 左上“可领取” → 确认奖励弹框与“已领完” → 返回首页。只操作左侧合作模式,不进入“保卫宠物”;已领完时不点击领取,直接返回首页。使用 `--dry-run` 可只验证首页而不点击。 +### 已验证的竞技积分领取脚本 + +```bash +.venv/bin/python claim_arena_points.py +``` + +流程为:首页 → 领地 → 巅峰决斗 → 模式选择左侧“竞技场” → 点击左下积分累积区域 → 确认“恭喜获得”奖励弹框 → 返回首页。积分会持续累积,脚本每次运行领取当前可领取的积分。使用 `--dry-run` 可只验证首页而不点击。 + 需要 Python 3.9 或更新版本,以及带 Tk 支持的 Python。macOS 若当前 Python 缺少 Tk,可使用 python.org 官方安装包。 macOS: diff --git a/assets/arena_dismiss.png b/assets/arena_dismiss.png new file mode 100644 index 0000000000000000000000000000000000000000..bd38b5f3429941dbd6e7cadd41e547f46b7776ea GIT binary patch literal 18416 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�s|QZ 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 =>DC8z*N!`=#?;X?p~T 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Ýzt_q1tz|y1PHl41U(3=9;C9^f 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 literal 0 HcmV?d00001 diff --git a/assets/arena_select_title.png b/assets/arena_select_title.png new file mode 100644 index 0000000000000000000000000000000000000000..5bfd2220d19a06ea92ff2bf5d48c6d6337273cc7 GIT binary patch literal 18769 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 M07*qoM6N<$g3l= 2: + return found, screenshot, region + time.sleep(0.25) + raise WorkflowError('未识别到预期页面 ' + '/'.join(names) + ',已停止。') + + def click(self, action, observation): + _, screenshot, region = observation + if self.region_provider(screenshot) != region: + raise WorkflowError('识别后游戏窗口移动,已停止,请重新运行。') + self.desktop.click(self.flow['clicks'][action], region, screenshot.size, hold=0.8) + self.log('已执行:' + action) + + def return_home(self): + self.click('arena_back', self.wait('arena_page')) + self.click('territory_back', self.wait('territory')) + self.wait('home') + self.log('已确认返回首页。') + + def run(self, dry_run=False): + home = self.wait('home') + if dry_run: + self.log('首页识别通过。计划:领地 → 巅峰决斗 → 竞技场 → 领取竞技积分 → 返回首页。未点击。') + return 'preview' + + self.click('territory', home) + self.click('peak_duel', self.wait('territory')) + self.click('arena', self.wait('selection')) + arena = self.wait('arena_page') + self.click('claim_points', arena) + reward = self.wait('reward') + self.log('已确认竞技积分奖励弹框。') + self.click('dismiss_reward', reward) + self.wait('arena_page') + self.log('已确认竞技积分领取完成。') + self.return_home() + return 'claimed' diff --git a/claim_arena_points.py b/claim_arena_points.py new file mode 100644 index 0000000..fc7ee8d --- /dev/null +++ b/claim_arena_points.py @@ -0,0 +1,39 @@ +"""Run from the project root: python claim_arena_points.py [--dry-run].""" +import argparse +import sys +import time +from pathlib import Path + +from automation.arena import ArenaRunner +from automation.engine import Matcher, load_flow +from automation.offers import MacGameDesktop + +ROOT = Path(__file__).resolve().parent + + +def main(): + parser = argparse.ArgumentParser(description='巅峰决斗竞技场:领取竞技积分并返回首页') + parser.add_argument('--dry-run', action='store_true', help='只验证首页并显示计划,不点击') + args = parser.parse_args() + if sys.platform != 'darwin': + print('当前脚本已验证 macOS;Windows 版将在校准入口完成后接入。', file=sys.stderr) + return 2 + try: + desktop = MacGameDesktop() + desktop.activate() + print('3 秒后开始;请保持游戏在前台。鼠标移到主屏幕左上角可紧急停止。', flush=True) + time.sleep(3) + runner = ArenaRunner(desktop, Matcher(ROOT / 'assets'), + load_flow(ROOT / 'workflows/arena_points.json'), desktop.region_for) + runner.run(args.dry_run) + return 0 + except KeyboardInterrupt: + print('已停止。', file=sys.stderr) + return 130 + except Exception as exc: + print('流程停止:' + str(exc), file=sys.stderr) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/261004_1607-首页功能与日常任务梳理.md b/docs/261004_1607-首页功能与日常任务梳理.md index 4be90e6..21c923e 100644 --- a/docs/261004_1607-首页功能与日常任务梳理.md +++ b/docs/261004_1607-首页功能与日常任务梳理.md @@ -1,7 +1,7 @@ --- created_at: 2026-10-04 16:07:56 CST type: 永远的蔚蓝星球首页、商城、领地与公会入口、日常任务与自动化适配记录 -revision: 第14次 +revision: 第15次 revisions: - time: 2026-10-04 16:07:56 CST version: 第1次 @@ -59,7 +59,11 @@ revisions: version: 第14次 author: gpt-5 content: 补充合作模式合作券领取的实机验证、已领完跳过分支、脚本和汇总表条目。 -summary: 记录首页、商城、领地和公会的日常任务入口、待完善流程及已实现脚本汇总。入口红点表示内部有奖励可领取;特惠赏金战令、小金猪领取与扫荡、任务奖励、狂鼠之家收矿与雇佣、食堂领体力、合作模式合作券均已实机验证并写成脚本。 + - time: 2026-10-04 20:56:07 CST + version: 第15次 + author: gpt-5 + content: 补充巅峰决斗竞技场积分领取的实机验证、脚本和汇总表条目。 +summary: 记录首页、商城、领地和公会的日常任务入口、待完善流程及已实现脚本汇总。入口红点表示内部有奖励可领取;特惠赏金战令、小金猪领取与扫荡、任务奖励、狂鼠之家收矿与雇佣、食堂领体力、合作模式合作券、竞技场积分均已实机验证并写成脚本。 --- # 首页、商城、领地与公会功能及日常任务梳理 @@ -230,7 +234,7 @@ summary: 记录首页、商城、领地和公会的日常任务入口、待完 | 图鉴 | 下方偏右,书本建筑 | 用户确认有固定流程,具体步骤待补充 | | 食堂 | 中部,带食物的建筑 | 一键领取体力已实机验证并有脚本;其他内部功能待补充 | | 排行榜 | 右侧中部,石制台座区域 | 用户确认有固定流程,具体步骤待补充 | -| 巅峰决斗 | 左上部,旗帜建筑 | 用户确认有固定流程,具体步骤待补充 | +| 巅峰决斗 | 左上部,旗帜建筑 | 竞技场积分领取已实机验证并有脚本;巅峰决斗模式及其他内部功能待补充 | | 合作模式 | 上方中部,紫色传送门区域 | 合作券领取已实机验证并有脚本;保卫宠物及其他内部功能待补充 | | 城墙 | 右上部,城门建筑 | 用户确认有固定流程,具体步骤待补充 | @@ -280,6 +284,18 @@ summary: 记录首页、商城、领地和公会的日常任务入口、待完 脚本只选择模式选择页左侧的“合作模式”,不会进入右侧“保卫宠物”。左上角显示“可领取”时才点击并等待奖励弹框;若已显示“已领完”,则跳过领取并依次退出到首页。可使用 `--dry-run` 只验证首页和执行计划,不点击游戏内容。macOS 已实机验证;Windows 仍需校准和验证。 +### 巅峰决斗:竞技场积分领取(已实机验证) + +2026-10-04 已在当前账号完成:**首页 → 领地 → 巅峰决斗 → 模式选择中的左侧“竞技场” → 左下角带时分秒进度条的积分累积区域 → 确认奖励弹框 → 返回领地 → 返回首页**。首次点击获得 3886 竞技积分;脚本随后完成一次实机回归,确认可自动关闭奖励弹框并返回首页。 + +对应脚本为项目根目录的 `claim_arena_points.py`,配置在 `workflows/arena_points.json`。运行方式: + +```bash +.venv/bin/python claim_arena_points.py +``` + +竞技积分会持续累积,该区域可领取时显示“恭喜获得”弹框。脚本确认竞技场页面后点击左下积分累积区域,必须识别奖励弹框才能继续关闭和返回;无法识别时安全停止。脚本只选择左侧“竞技场”,不会进入右侧“巅峰决斗”。可使用 `--dry-run` 只验证首页和执行计划,不点击游戏内容。macOS 已实机验证;Windows 仍需校准和验证。 + ## 公会页面 ### 入口与栏目 @@ -323,7 +339,8 @@ summary: 记录首页、商城、领地和公会的日常任务入口、待完 | 领地:狂鼠之家 | 已验证脚本:一键收矿、等待 10 秒、按白银/黄金/彩虹顺序一键雇佣、返回首页 | 当前仅覆盖该日常流程;其他内部功能、重置规律和 Windows 适配待验证 | | 领地:食堂 | 已验证脚本:发现一键领取时领体力、确认奖励和库存清空、返回首页 | 当前仅覆盖体力领取;其他内部功能、重置规律和 Windows 适配待验证 | | 领地:合作模式 | 已验证脚本:只选择左侧合作模式,发现左上可领取时领取合作券、确认已领完、返回首页 | 保卫宠物及其他内部功能、重置规律和 Windows 适配待验证 | -| 领地:玩法大厅、图鉴、排行榜、巅峰决斗、城墙 | 待完善固定流程后确定 | 用户确认各栏目均有固定自动化流程,具体步骤、执行条件、消耗和完成判定尚未补充 | +| 领地:巅峰决斗 | 已验证脚本:只选择左侧竞技场,领取左下积分累积区域的竞技积分、确认奖励后返回首页 | 右侧巅峰决斗及其他内部功能、重置规律和 Windows 适配待验证 | +| 领地:玩法大厅、图鉴、排行榜、城墙 | 待完善固定流程后确定 | 用户确认各栏目均有固定自动化流程,具体步骤、执行条件、消耗和完成判定尚未补充 | | 公会:公会商城、远征大厅、公会任务、公会祝福、每日捐献、成员大厅、公会 Boss、右下角红色角色入口 | 待完善固定流程后确定 | 用户确认八个入口均有固定自动化流程;右下角入口名称及各流程的具体步骤、消耗和完成判定待补充 | 初步方向是让脚本执行已验证的重复步骤,让 AI 辅助识别变化页面或异常。是否每次调用 AI、调用到哪一步,待明确任务完成标志与变化范围后再决定。 @@ -356,3 +373,4 @@ summary: 记录首页、商城、领地和公会的日常任务入口、待完 | 5 | 收矿与雇佣(`claim_mining.py`) | 领地 | 首页 → 底部领地 → 狂鼠之家 | 发现“一键收矿”后收矿、关闭奖励弹框、等待 10 秒;按白银罗盘、黄金罗盘、彩虹探测仪顺序一键雇佣,无可用道具时关闭弹框,最后返回首页。 | 2026-10-04 18:17 CST | | 6 | 领体力(`claim_stamina.py`) | 领地 | 首页 → 底部领地 → 食堂 | 发现“一键领取”时领取体力,确认“恭喜获得”弹框和烤肉库存 0/60 后返回首页;无可领体力时跳过。 | 2026-10-04 18:32 CST | | 7 | 领取合作券(`claim_cooperation_ticket.py`) | 领地 | 首页 → 底部领地 → 合作模式 → 左侧合作模式 | 左上显示“可领取”时领取合作券,确认奖励和“已领完”后返回首页;已领完时跳过;不会进入保卫宠物。 | 2026-10-04 20:25 CST | +| 8 | 获取竞技积分(`claim_arena_points.py`) | 领地 | 首页 → 底部领地 → 巅峰决斗 → 左侧竞技场 → 左下积分累积区域 | 领取当前累积的竞技积分,确认“恭喜获得”弹框后返回首页;不会进入右侧巅峰决斗。 | 2026-10-04 20:56 CST | diff --git a/tests/test_arena.py b/tests/test_arena.py new file mode 100644 index 0000000..ffe0b2e --- /dev/null +++ b/tests/test_arena.py @@ -0,0 +1,53 @@ +import unittest +from pathlib import Path + +from PIL import Image + +from automation.arena import ArenaRunner +from automation.engine import Matcher, Region, load_flow + +ROOT = Path(__file__).resolve().parent.parent + + +class ArenaDesktop: + def __init__(self, images): + self.images = images + self.index = 0 + self.clicks = [] + + def screenshot(self): + return self.images[min(self.index, len(self.images) - 1)] + + def click(self, point, region, size, hold=0.2): + self.clicks.append((point, hold)) + self.index += 1 + + +class ArenaTests(unittest.TestCase): + def setUp(self): + self.flow = load_flow(ROOT / 'workflows/arena_points.json') + self.matcher = Matcher(ROOT / 'assets') + self.region = Region(0, 0, 562, 1002) + + def image(self, state): + image = Image.new('RGB', (562, 1002), (62, 52, 35)) + for spec in self.flow['states'][state]: + template = Image.open(ROOT / 'assets' / spec['template']).convert('RGB') + x, y, _, _ = spec['search'] + image.paste(template, (x + 5, y + 5)) + return image + + def runner(self, states): + desktop = ArenaDesktop([self.image(state) for state in states]) + return desktop, ArenaRunner(desktop, self.matcher, self.flow, + lambda _: self.region, log=lambda _: None, timeout=0.8) + + def test_claims_points_and_returns_home(self): + desktop, runner = self.runner(['home', 'territory', 'selection', 'arena_page', 'reward', 'arena_page', 'territory', 'home']) + self.assertEqual(runner.run(), 'claimed') + expected = ('territory', 'peak_duel', 'arena', 'claim_points', + 'dismiss_reward', 'arena_back', 'territory_back') + self.assertEqual([point for point, _ in desktop.clicks], [self.flow['clicks'][name] for name in expected]) + +if __name__ == '__main__': + unittest.main() diff --git a/workflows/arena_points.json b/workflows/arena_points.json new file mode 100644 index 0000000..901382e --- /dev/null +++ b/workflows/arena_points.json @@ -0,0 +1,22 @@ +{ + "name": "巅峰决斗竞技场积分领取", + "states": { + "home": [{"template": "home.png", "search": [150, 730, 410, 865]}], + "territory": [{"template": "territory_rat_house.png", "search": [15, 440, 220, 570]}], + "selection": [{"template": "arena_select_title.png", "search": [145, 85, 415, 205]}], + "arena_page": [{"template": "arena_page_title.png", "search": [175, 0, 390, 100]}], + "reward": [ + {"template": "arena_reward.png", "search": [120, 180, 440, 390], "threshold": 0.8}, + {"template": "arena_dismiss.png", "search": [145, 600, 420, 730]} + ] + }, + "clicks": { + "territory": [0.68, 0.94], + "peak_duel": [0.27, 0.35], + "arena": [0.27, 0.47], + "claim_points": [0.18, 0.82], + "dismiss_reward": [0.50, 0.67], + "arena_back": [0.12, 0.94], + "territory_back": [0.68, 0.94] + } +}