From fdde06b9cbb4ab47639be81c7db0af1e6dbc0d3e Mon Sep 17 00:00:00 2001 From: troytt <47798984@qq.com> Date: Sat, 3 Oct 2026 12:46:14 +0000 Subject: [PATCH] feat(plugins): migrate automap-reveal (#714), lighting-presets (#715), extended-viewports (#716) and remove packet-inspector (#717) --- README.md | 4 +- play.html | 10 - plugins/README.md | 76 ++- plugins/automap-reveal/index.ts | 178 ++++++ plugins/extended-viewports/index.ts | 127 ++++ plugins/index.ts | 10 +- plugins/lighting-presets/index.ts | 170 ++++++ src/client/README.md | 13 +- src/client/i18n/lang.ts | 2 - src/client/inspector/packet-inspector.ts | 556 ------------------ src/client/main.ts | 27 +- src/client/plugin-host/api.ts | 75 ++- src/client/plugin-host/plugin-host.ts | 364 +++++++++++- src/client/session/online-session.ts | 104 ++-- src/client/settings/client-settings.ts | 7 - src/client/settings/settings-store.ts | 1 - src/client/toolbar/toolbar.ts | 275 ++++----- src/client/view/viewport-profile.ts | 11 + tests/client/hud-session-play.test.ts | 7 +- tests/client/settings-toolbar-view.test.ts | 74 +-- .../tier1-feature-coverage.test.ts | 56 +- .../tier2-boundary-corner.test.ts | 35 +- .../e2e-netproto/tier3-cross-feature.test.ts | 43 +- .../tier4-real-world-scenarios.test.ts | 13 +- .../tier5-adversarial-coverage.test.ts | 7 +- tests/plugins/registry.test.ts | 139 ++++- tools/verify-play.ts | 27 +- tools/verify-plugin-menu-browser.ts | 100 +++- 28 files changed, 1521 insertions(+), 990 deletions(-) create mode 100644 plugins/automap-reveal/index.ts create mode 100644 plugins/extended-viewports/index.ts create mode 100644 plugins/lighting-presets/index.ts delete mode 100644 src/client/inspector/packet-inspector.ts diff --git a/README.md b/README.md index 76233c2..ccba687 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ | :--- | :--- | :--- | :--- | :--- | | [`src/common`](./src/common) | `D2Common.dll` `Storm.dll` `D2Lang.dll` | 纯 TypeScript (`ES2022`),零 DOM / 零 Node.js 依赖 | MPQ 与原生二进制格式解析器 (DC6/DCC/DT1/DS1/COF/PL2/TBL)、`D2DataRegistry` 数据表中心、1.13c DRLG 随机地图生成算法、64 位 `D2Rng` 与烘焙校验契约 (`pack-contract`) | [src/common/README.md](./src/common/README.md) | | [`src/netproto`](./src/netproto) | `D2Net.dll` `Bnclient.dll` `D2MCPClient.dll` `Fog.dll` | 纯协议栈模块,零外部模块依赖,唯一入口 `src/netproto/index.ts` | BNCS (`6112`) / MCP (`6113`) / D2GS (`4000`) 二进制协议编解码、XSHA-1 与 CheckRevision 认证、Fog.dll Huffman 解压、167 个 S2C 操作码解析、物品比特流与 WebSocket/TCP 传输层抽象 | [src/netproto/README.md](./src/netproto/README.md) | -| [`src/client`](./src/client) | `D2Client.dll` `D2Gfx.dll` `D2Win.dll` `D2Launch.dll` | 纯浏览器客户端 (`DOM` + `WebGL2`),零 Node / 零 `server` / 零 `baker` / 零 `plugins` 依赖 | 游戏主入口 `play.html`、战网登录/选人/大厅前端界面、`OnlineSession` 与 `ClientWorld` 状态镜像、非侵入式插件宿主 (`plugin-host/`)、种子驱动的实时 DRLG 地图重建、移动预测与内插、WebGL2 渲染器、全套经典 HUD 面板与抓包检查器 | [src/client/README.md](./src/client/README.md) | -| [`plugins/`](./plugins) | 客户端外挂扩展生态 | 浏览器扩展层 (`DOM`),仅依赖 `src/common`、`src/netproto/index.ts` 与 `src/client/plugin-host/api.ts`,插件间严格物理隔离 | 独立于核心客户端的可拔插辅助扩展(如 `plugins/kill-stats/` 实时怪物击杀统计与独立页面 `plugins/kill-stats/index.html`),支持通过顶部工具栏 **Plugins** 菜单动态启停与快捷按钮配置 | [plugins/README.md](./plugins/README.md) | +| [`src/client`](./src/client) | `D2Client.dll` `D2Gfx.dll` `D2Win.dll` `D2Launch.dll` | 纯浏览器客户端 (`DOM` + `WebGL2`),零 Node / 零 `server` / 零 `baker` / 零 `plugins` 依赖 | 游戏主入口 `play.html`、战网登录/选人/大厅前端界面、`OnlineSession` 与 `ClientWorld` 状态镜像、非侵入式插件宿主 (`plugin-host/`)、种子驱动的实时 DRLG 地图重建、移动预测与内插、WebGL2 渲染器与全套经典 HUD 面板 | [src/client/README.md](./src/client/README.md) | +| [`plugins/`](./plugins) | 客户端外挂扩展生态 | 浏览器扩展层 (`DOM`),仅依赖 `src/common`、`src/netproto/index.ts` 与 `src/client/plugin-host/api.ts`,插件间严格物理隔离 | 独立于核心客户端的可拔插非 1.13c 辅助扩展(`kill-stats` 怪物击杀统计、`automap-reveal` 小地图全图揭示、`lighting-presets` 环境光照预设、`extended-viewports` 扩展高分宽屏视口),支持通过顶部工具栏 **Plugins** 菜单热插拔启停与 1.13c 原版回退 | [plugins/README.md](./plugins/README.md) | | [`src/server`](./src/server) | `D2Game.dll` | 纯确定性模拟 (`ES2022` + `WebWorker`),禁 DOM / 禁 Node / 禁非确定性随机与时钟 | 25fps (40ms/tick) 权威游戏循环、1.13c 战斗伤害与抗性管线、7 职业 221 个技能执行器、投射物与光环引擎、怪物 AI 与房间流式激活、TC 掉落管线与 `.d2s` 存档读写 | [src/server/README.md](./src/server/README.md) | | [`src/baker`](./src/baker) | 离线资源构建管线 | 纯 Node.js CLI 环境 (`types: ["node"]`),禁 DOM / 禁 `client` / 禁 `server` | 从原版 1.13c MPQ 归档中提取并烘焙瓦片图集 (`tiles`)、角色/怪物/NPC 实体 (`entities`)、投射物 (`missiles`)、覆盖层 (`overlays`)、HUD/前端 UI、动画表 (`animdata`) 与 SHA-256 资产清单 (`asset-manifest.json`) | [src/baker/README.md](./src/baker/README.md) | | [`tools/`](./tools) | 开发者与 QA 工具集 | Node.js / Playwright CLI | 无头协议测试机器人 (`d2-bot.ts`)、`.d2cap` 抓包离线重放器 (`netproto-replay.ts`)、`.d2s` 存档全解锁工具 (`d2s-unlock.ts`)、全谱系 136 关卡浏览器审计 (`audit-levels-browser.ts`) 与 DRLG 差分对比工具 | [tools/README.md](./tools/README.md) | diff --git a/play.html b/play.html index c9ee233..702d160 100644 --- a/play.html +++ b/play.html @@ -419,15 +419,6 @@ font-size: 11px; flex: 0 0 auto; } - - #d2-inspector-container { - flex: 0 0 auto; - max-height: 100%; - overflow-y: auto; - z-index: 40; - background: #0e0c0a; - border-left: 1px solid #2b2319; - }
@@ -464,7 +455,6 @@ -