diablo2-web/tools/README.md

50 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# `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
```