|
|
1 月之前 | |
|---|---|---|
| .. | ||
| assets | 1 月之前 | |
| docs | 1 月之前 | |
| scripts | 1 月之前 | |
| src | 1 月之前 | |
| tests | 1 月之前 | |
| vendor | 1 月之前 | |
| .DS_Store | 1 月之前 | |
| Encode6BitBuf_替换表.bin | 1 月之前 | |
| README.md | 1 月之前 | |
| main.py | 1 月之前 | |
| pyproject.toml | 1 月之前 | |
| uv.lock | 1 月之前 | |
2026-09-24 从骨架完成首轮实装并联调。前序调研与可运行代码保留在
../protocol_bot_backup/(2026-09-22 曾端到端打通任务+打怪)。 本目录按分层框架重写,游戏逻辑通过 Behavior 插件接入。
| 阶段 | 状态 | 证据(/tmp/pbot_run*.log) |
|---|---|---|
| 盒子登录(极验滑块+RSA+HMAC) | ✅ | byPwd => code=200, uid/token 下发 |
| EnterGameClient 选区上报 | ✅ | code=200 |
| 登录服网关链 2001→529→104→530→100→520→101→521→103→525 | ✅ | key32/sid/角色列表/创角票据/游戏端口 |
| 创角 & 复用 & 删角(CS102→523) | ✅ | [删角] 萌新7748 删除成功(523) |
| 游戏服 CS20(v2 11字段)→SC658 | ✅ | 世界已初始化 |
| 17帧初始化(5027 body=当前图名) | ✅ | 服务器逐帧应答(5037/6215/60006…) |
| SC50 出生 + SC51 地图(等待图 24,30) | ✅ | map=等待地图 @(24,30) actor=… uid=… |
| CS60000 心跳(tail 主链纪律) | ✅ | 服务器持续回显 60000 |
| CS3199 喝药面板(@openmianban,23 / @chiyao_kaiqi) | ✅ 已发 | 面板回包状态待调(None) |
| 移动帧链 CS3011+CS1(+GOOD, cap_wait 抓包同构) | ✅ 已发 | 服务器确认(SC1/SC28)未获得,见下 |
对 /tmp/cap_unlock.jsonl(成功解锁全流量)逐帧重分析, 推翻了此前
"服务器任务态间歇可用"的归因。真因是三重客户端协议误读:
完整证据链与修复清单见 `docs/走动瓶颈分析报告.md §十。
另发现: cap_unlock 存有完整 562B CS3031 任务体(此前只有 200B 截断版),
已提取为 assets/cs3031_full.bin。
┌─────────────────────────────────────────────┐
│ bot/ Behavior 插件 + tick 决策循环 │ ← 游戏逻辑写在这里
├─────────────────────────────────────────────┤
│ world/ 虚拟世界镜像(SC帧→状态) │ ← 服务器推送 → 状态
├─────────────────────────────────────────────┤
│ game/ 消息号表 + 帧分发 + 会话编排 │ ← 协议语义层
├─────────────────────────────────────────────┤
│ transport/ 网关TCP链路(登录服/游戏服) │ ← 字节流 ↔ Frame
├─────────────────────────────────────────────┤
│ login/ 996盒子 HTTP 登录(极验滑块) │ ← token / 票据
├─────────────────────────────────────────────┤
│ codec/ Encode6BitBuf + 帧编解码 │ ← 纯函数,无 IO
└─────────────────────────────────────────────┘
依赖方向自上而下,下层禁止 import 上层。
cd protocol_bot
uv sync
uv run python main.py -u <账号> -p <密码> --zone <区ID> --name <角色名> \
--wander-seconds 10 [--reset]
--zone 0 自动选服务器列表最新已开区--reset 先删角重创(新手任务重置)| 模块 | 文件 | 职责 | 状态 |
|---|---|---|---|
| codec | bitbuf.py |
6bit 编解码(pcap 向量 100% 匹配) | ✅ 实装 |
| codec | frame.py |
帧构造/解析/流式切帧(防伪帧头) | ✅ 实装 |
| login | box_proto.py |
抓包逆向常量/签名/RSA/验证码体 | ✅ 实装 |
| login | geeked_solver.py |
极验 v4 滑块(vendor 封装+重试) | ✅ 实装 |
| login | box_client.py |
登录会话+频控退避+公钥自愈 | ✅ 实装 |
| transport | gateway.py |
登录服全链/删角/游戏服 CS20/tail 纪律 | ✅ 实装 |
| game | messages.py |
ScMsg/CsMsg 实测消息号表 | ✅ |
| game | session.py |
658→SC51→17帧→出生→ACK 编排+批量帧拆包 | ✅ 实装 |
| game | heal.py |
喝药开关 toggle(CS3199) | ✅ 实装(状态确认待调) |
| world | update.py |
SC帧→镜像(SC51/28/11/53/55 真源解析) | ✅ 实装 |
| world | mirror.py |
虚拟世界镜像数据结构 | ✅ |
| bot | wander.py |
等待图走链(单帧 3013/3011, SC1 确认门控) | ✅ 重写(破案后) |
| bot | unlock.py |
等待图解锁(renwu_mov 黄金时序状态机) | ✅ 重写(破案后) |
| bot | runner.py/heartbeat.py |
节拍循环/心跳 | ✅ 实装 |
../protocol_bot_backup/README.md + 本目录各模块 docstringuv run pytest(36 用例)/ uv run ruff check . / uv run basedpyright