50 lines
3.7 KiB
Markdown
50 lines
3.7 KiB
Markdown
# `tools` — 开发者调试、协议重放与自动化验证工具集
|
||
|
||
`tools/` 目录收录了围绕 **Diablo II Web (v1.13c)** 的命令行辅助工具、无头协议测试机器人、封包回放分析器、存档修改器以及全谱系浏览器自动化验证脚本。
|
||
|
||
---
|
||
|
||
## 1. 核心工具概览
|
||
|
||
| 脚本文件 | 运行命令示例 | 功能说明 |
|
||
| :--- | :--- | :--- |
|
||
| [`d2-bot.ts`](./d2-bot.ts) | `npm run bot -- --help` | 无头 (Headless) 战网/D2GS 协议测试机器人。基于 `src/netproto` 直接通过原生 TCP 或 WebSocket 桥走完 BNCS 登录 $\rightarrow$ MCP 选人/建房 $\rightarrow$ D2GS 进图移动/施法全流程,无需启动浏览器即可验证服务端连通性。 |
|
||
| [`netproto-replay.ts`](./netproto-replay.ts) | `npx tsx tools/netproto-replay.ts <file.d2cap>` | `.d2cap` 网络抓包录制文件离线重放与解析工具。逐帧还原 Huffman 解压后的 S2C/C2S 十六进制流与解码后的 `ServerEvent` 明细,用于排查协议死锁或未知操作码。 |
|
||
| [`d2s-unlock.ts`](./d2s-unlock.ts) | `npx tsx tools/d2s-unlock.ts <char.d2s>` | 原版 1.13c `.d2s` 角色存档一键解锁工具。支持修改角色等级、属性点、技能点、金币,一键点亮全部三难度(Normal / Nightmare / Hell)全部 5 幕小站 (Waypoints) 与通关任务状态,并自动重算 `.d2s` 校验和。 |
|
||
| [`audit-levels-browser.ts`](./audit-levels-browser.ts) | `npx tsx tools/audit-levels-browser.ts` | **全谱系 136 关卡无头浏览器审计工具**。驱动 Playwright 遍历 `Levels.txt` 中全部 136 个关卡 ID,校验 DRLG 地图生成、通用 DT1 加载、出生点连通性(非虚空)与 WebGL2 瓦片渲染零报错。 |
|
||
| [`drlg-diff.ts`](./drlg-diff.ts) | `npx tsx tools/drlg-diff.ts` | DRLG 确定性差分对比工具。给定相同的 `mapSeed` 与 `areaId`,对比本仓库 DRLG 输出与 `D2Common.dll` Ground Truth 房间拓扑、瓦片 Style/Sequence 及碰撞网格的一致性。 |
|
||
| [`render-drlg-compare.ts`](./render-drlg-compare.ts) | `npx tsx tools/render-drlg-compare.ts` | 将 DRLG 生成的关卡碰撞网格、房间边界与瓦片图层渲染为可视化对比 PNG 图像,便于直观排查墙壁接缝与门洞连通性。 |
|
||
| [`verify-play.ts`](./verify-play.ts) | `npx tsx tools/verify-play.ts` | 端到端 `play.html` 冒烟验证脚本:使用 Playwright 启动客户端,验证战网前端 UI 加载、WebGL2 上下文初始化、静态资产零 404 以及 HUD 交互响应。 |
|
||
|
||
---
|
||
|
||
## 2. 专项回归验证脚本 (`tools/verify-*.ts`)
|
||
|
||
除了上述日常开发工具外,`tools/` 下还包含针对关键子系统的专项无头验证脚本:
|
||
|
||
- **`verify-360-comprehensive.ts` / `verify-all-features.ts`**:客户端 360° 全功能特性巡检(面板开关、小地图、技能栏、物品提示框、音效与设置面板)。
|
||
- **`verify-act-transitions.ts` / `verify-waypoints.ts`**:跨幕传送与全部 5 幕小站传送门跳转验证。
|
||
- **`verify-combat-vfx.ts` / `verify-lighting.ts`**:投射物、覆盖层特效 (Overlays) 与分幕环境光照着色器渲染验证。
|
||
- **`verify-monsters.ts` / `verify-save.ts`**:怪物/暗金 Boss 纸娃娃图集加载与 `.d2s` 存档导入导出闭环验证。
|
||
|
||
---
|
||
|
||
## 3. 典型使用示例
|
||
|
||
### 使用 `d2-bot.ts` 测试远端 D2GS 连通性
|
||
```bash
|
||
# 通过 WebSocket 桥连接远端战网并自动登录角色创建房间
|
||
npm run bot -- \
|
||
--bridge wss://www.laiseek.xyz/d2net \
|
||
--user myaccount \
|
||
--pass mypassword \
|
||
--char MySorceress \
|
||
--game test01
|
||
```
|
||
|
||
### 使用 `netproto-replay.ts` 分析客户端录制的 `.d2cap`
|
||
在浏览器顶部工具栏点击 **Packet Inspector** 导出 `.d2cap` 文件后,可在终端离线回放:
|
||
```bash
|
||
npx tsx tools/netproto-replay.ts ./captures/session-2026.d2cap
|
||
```
|