玩家对战(PVP)协议
631 字约 2 分钟
任务入口
| 项 | 值 |
|---|---|
| 任务名 | 见 tasks/pvp.json |
| entry | 以该文件中定义为准(通常自检主页后进对战) |
| 流程 | resource/base/pipeline/pvp.json |
任务前置条件
任务以 PVP.CheckHomePage 为入口:开始前通常应处于游戏主界面。若主页识别失败,Pipeline 会通过 PVP.ReturnToHome 尝试识别并点击返回按钮,再回到主页重新检查;如果仍无法确认主页,任务才会失败。
选项
战斗次数由任务选项控制(1–6 次,其中第 6 次用于高级账号首次失败保护),通过 Custom(如 InitPVPBattleCount / CheckPVPBattleCount)维护计数。
典型流程
CheckHomePage → Entry → CheckBattleInterface
→ SelectOpponent(Custom 识别三个对手等级,选最低点击)
→ InitBattleCount
→ CheckChallengeLimit(今日次数用尽则回主页)
→ StartBattle
→ BeginCombat(可重试直至进入战斗)
→ CheckInBattle → Speed2x
→ BattleLoop → CheckBattleEnd(OCR「跳过」)
→ WaitSettlement → ReadResult(Custom 读分/排名)
→ ExitResult → BackToBattleInterface
→ CheckBattleCount
→ 未满:SelectOpponent
→ 已满:ReturnMain关键约定
- SelectOpponent:
SelectPVPOpponent自定义识别,对 3 个对手区域分别 OCR 提取等级,选择等级最低的对手点击。ROI 和点击位置在 pipeline 的custom_recognition_param中配置 - BeginCombat:一次点击可能无响应;
next/on_error应允许重试,直到CheckInBattle成功 - BattleLoop:长超时等待结算;失败可兜底
ReadResult - ReadResult:
ReadPVPResult自定义识别,ROI 在 pipeline 的custom_recognition_param中 - 高账失败保护判定:仅以「分数是否变化」为准——分数变化区域 OCR 为空即判定为高级账号首次失败保护(本场不扣分)。实机存在「分数不变但排名仍下降」的情况,因此不能要求排名也无变化,否则这类正常战斗会被误判为保护
- 挑战上限:
challenge_limit模板命中则 toast/日志提示并退出
图片目录
resource/base/image/pvp/(入口、对战界面、开始、作战中、倍速、退出结果等)。
验收清单
改动本任务后按以下顺序验证:
- 对手选择:三个对手等级 OCR 正确,选最低等级点击
- 单场战斗端到端:主页 → 进对战 → 开战 → 结算 → 回对战界面
- 任意进度重启(战斗中 / 结算中 / 结果界面)都能继续或正确退出
- 今日挑战次数用尽时正确提示并回主页
- 战斗失败 / 断线等异常结算有兜底路径
- 全量回归:与其它任务(启动、领取奖励、刷取)组合跑一遍无冲突
说明
自动化只负责操作流程,不保证胜负。
