Quellcode durchsuchen

docs: 交付总结 — 九任务流水线全链实测通过 + 6项协议定案 + 踩坑记录

wuzilong vor 1 Monat
Ursprung
Commit
72bc94551e

+ 90 - 0
pipeline_bot/交付总结-20261002-流水线全通.md

@@ -0,0 +1,90 @@
+# pipeline_bot 交付总结 — 新手九任务流水线(2026-10-01 ~ 10-02)
+
+> 账号 longwu988 / 玖扬复古176。本会话从零建成 `pipeline_bot/` 独立工程,
+> 九任务串行流水线全链实测通过,期间定案 6 个协议根因。
+> 探索参考(冻结只读): `../protocol_bot`、`../protocol_bot_backup`。
+
+## 一、最终架构
+
+```
+pipeline_bot/
+├── pipeline/
+│   ├── bootstrap.py      登录编排(端口表三级策略/删全区角色/创角/进世界)
+│   ├── run_pipeline.py   总控(串行9任务, 软/硬失败策略, --reset/--zone)
+│   ├── ctx.py            共用会话上下文 + 打勾文件(进度_区_角色.md)
+│   ├── naming.py         随机纯中文角色名
+│   └── tasks/
+│       ├── t01_heal.py          喝药保护(读态验证, 最多toggle 1+1次)
+│       ├── t02_biqi_kill20.py   比奇20杀 + 落地即点【点我刷怪】
+│       ├── t03_cave_kill20.py   天然洞穴20杀(renwu链+AutoFight)
+│       ├── t04_mine_kill20.py   比奇矿区20杀(传送员链+AutoFight)
+│       ├── t05_wugong_kill40.py 蜈蚣洞穴40杀+冲35级
+│       ├── t06_shentong.py      35级开神通(CS3199 @mingge_kaiqi,1)
+│       ├── t07_wuxing.py        五行之力(@renwu_qwyd,33→NPC10031→@func17_wxqh,1)
+│       ├── t08_woma_farm.py     沃玛挂机(时长变量, 死亡回城重传闭环)
+│       └── heal_guard.py        战斗任务喝药防线(高危图非on拒跑)
+├── src/pbot/             框架(codec/login/transport/game/world/bot)
+├── scripts/              行为库(AutoFight/CaveEnter/MineEnter等)
+└── assets/               地图墙格/抓包证据/模板
+```
+
+## 二、实测战绩(run12, 裁决36区·姚孤)
+
+| 任务 | 结果 | 用时 |
+|---|---|---|
+| T1 喝药保护 | ✓ on | 1s |
+| T2 比奇20杀 | ✓ 20/20 | 126s |
+| T3 天然洞穴20杀 | ✓ 20/20 | 230s |
+| T4 比奇矿区20杀 | ✓ 20/20 | 515s |
+| T5 蜈蚣40杀+35级 | ✓ 40/40, 等级35 | 1017s |
+| T6 神通开启 | ✓ 5s静默通过 | 7s |
+| T7 五行之力 | ✓ 五行珠入包(50675) | 4s |
+| T8 沃玛挂机 | ✓ 独立验证: 19杀零死亡, 喝药防线/死亡回城重传/低血逃跑全工作 | 30min计时 |
+
+刷怪功能终验(裁决37区·萧厂苍): 落地比奇 9 秒即点 NPC(aid=10074) →
+20/20 连杀收官。
+
+## 三、本会话定案的协议根因(全部实测闭环)
+
+1. **任务图移动 body = 中文显示名**(208dad0): 洞穴 392 帧静默根因,
+   `_DISPLAY_TO_PROTO` 的 d011 映射是未验证假设; 真机 21040 帧定案。
+2. **喝药 toggle 读态**(ae2a815): 旧面板缓存掩盖 toggle 后新值 → 反复
+   误切; 修复=panel_seq 到达序号取最新 + 最多切一次(实机 off→on 一次过)。
+3. **区服端口表**(20ee6ca): serverlist XXTEA 解密(modlist→b64→4meJnPyl
+   sign+34UFXMgtkz key)按区直取端口; 新物理机端口与旧表不同(33区=8081)。
+4. **战斗统一 AutoFight 模式**(9d6cd7a): 旧 KillBehavior ATTACK_RADIUS=3
+   超程空刀(我方击杀全部≤2 实证), 抢怪空转 60s; 切客户端复刻模式
+   (贴身出刀/4刀重锁/低血逃跑) + Monster.contested_t 抢怪避让。
+5. **M2 锚点卡死自愈**(da39650): 连续拉回 8 次静置 4s 洗超速计数,
+   16 次弃目标换向(spawn5 252帧钉死实证)。
+6. **比奇刷怪 NPC 定案**(aef24db): aid=10074/index=83@(287,615),
+   服务器不推 SC10、点击帧即触发、怪多时静默无副作用可重复点
+   (cap_v5 真机抓包, 证据 assets/cap_spawn_npc_20261002.pcap)。
+
+## 四、踩坑记录(避免重走)
+
+- 游戏服是负载均衡集群: 抓包/直连前先 `netstat` 确认客户端实际 IP
+  (本会话三次抓包空跑皆因节点切换)。
+- 新区可能 DNS 未就绪: 38区域名解析到 10.x 内网地址(46326), 端口表
+  state=1 也不代表可接入; 接入前先解析域名验公网 IP。
+- 登录频控: 10 分钟内 3 次登录触发 SC658 超时, 等 4 分钟恢复。
+- perl 批量替换 + 秒级 mtime 精度会生成陈旧 __pycache__, 排查怪问题
+  先 `find . -name __pycache__ -exec rm -rf {} +`。
+- 删角须删 last=1 的选中角色并循环重拉(服务器仅受理删选中)。
+
+## 五、质量门禁终态
+
+- 141 pytest 全绿 / ruff(src tests pipeline) clean
+- 终审 code review: FIX-FIRST 两项 Critical 已修复并复审通过
+  (F1 潜伏崩溃 af._dir8→kill._heading_to; F2 判定为误报有据)
+- 全部 commits: 03f35f1..aef24db(约 35 个)
+
+## 六、已知未结项
+
+- t02 刷怪点击在"怪多"时服务器静默(设计内, 无副作用), 但无法从
+  回包确认是否真的刷怪 — 依赖视野怪恢复做间接判定(已如此实现)。
+- T8 挂机 30 分钟完整计时未被观测到自然结束(用户中止), 计时逻辑
+  经代码审查+部分实测认为可靠。
+- 终审 deferred minors(M1-M16)全部不阻塞, 见 ledger。
+
+— 会话闭环 2026-10-02 08:30

+ 6 - 0
pipeline_bot/进度_玖扬复古176_区14606325_萧厂苍.md

@@ -0,0 +1,6 @@
+# 传奇流水线进度 — 玖扬复古176·区14606325 — 萧厂苍
+
+- 启动: 2026-10-02 08:22:49
+
+## 任务清单
+