diff --git a/HANDOVER.md b/HANDOVER.md index 34e7ad5..68dcb7d 100644 --- a/HANDOVER.md +++ b/HANDOVER.md @@ -41,7 +41,10 @@ npm run net-server # 等价于 node scripts/net-server.ts 8787 资源包(离线解包,页面默认路径): ```bash -npm run pack:data # scripts/pack-act-assets.ts → samples/d2-packs(62 个地图块 / 35 关,约 46.8 MB) +npm run pack:data # scripts/pack-act-assets.ts → samples/d2-packs(62 个地图块 / 35 关,约 67 MB) +# 图集包不在 Git 里(每次重烘会让仓库再长 ~60 MB,PNG 无法 delta 压缩)。发布归档: +# https://www.laiseek.xyz/diablo2/assets/d2-packs-<日期>.tar.xz (nginx → /var/www/d2assets/) +# Gitea 的 Release 附件在本实例(124.221.104.39)是坏的:1KB..59.5MB 全部 HTTP 500 npm run verify:packs # 与现读现解逐项比对:绘制序/坐标、碰撞栅格逐字节、每帧像素 FNV 哈希(992/992) npm run verify:listfile # 用社区 1.13c listfile 逐归档判定"这个成员到底存不存在" npm run verify:deploy # 线上 /diablo2/ 页面 + 资源包 + Range 206 + 旧入口 410(17/17) diff --git a/README.md b/README.md index c51efdd..d10cd93 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,23 @@ scripts/ 资源包烘焙、格式/数据/部署校验、无头浏览器检 把你自己合法拥有的**经典版暗黑破坏神 II(1.13c)** 数据放进 `samples/d2/`,至少需要 `d2data.mpq`、`d2char.mpq`、`d2exp.mpq`、`Patch_D2.mpq`。资源包模式(页面默认)只需要 -`samples/d2-packs/`——本仓库已附带 62 个地图块,所以**没有原版数据也能看地图**。 +`samples/d2-packs/`——它不在 Git 里(63 MB 的索引 PNG 每次重烘都会让仓库再长一份), +按下面的「资源包从哪来」下载解包后,**没有原版数据也能看地图**。 -### 2. 本地跑起来 +### 2. 资源包从哪来(不在 Git 里) + +图集包(62 个地图块 / 35 关,索引色 PNG + `scene.json`)以归档形式发布,**不入 Git**: + +```bash +curl -O https://www.laiseek.xyz/diablo2/assets/d2-packs-2026-09-14.tar.xz +sha256sum d2-packs-2026-09-14.tar.xz # 应为 9cdfd0c19ac68de842c6725070b65d056e25f5bcc77f36d6d9a29cd9f1b431e8 +tar xJf d2-packs-2026-09-14.tar.xz # 解出 samples/d2-packs/ +``` + +同目录还有 `d2-packs-2026-09-14.sha256`。仓库里只保留 `.gitignore` 规则与本文档; +要自己生成包就照第 3 步 `npm run pack:data` 从原版 MPQ 烘焙。 + +### 3. 本地跑起来 ```bash npm install # 仅 vite / typescript / @types/node @@ -53,10 +67,10 @@ npm run pack:data # 从 samples/d2/ 烘焙 62 npm run dev # http://127.0.0.1:5173/acts.html ``` -`pack:data` 需要原版 MPQ(约 2 分钟);只用仓库自带的 `samples/d2-packs/` 可以跳过它, +`pack:data` 需要原版 MPQ(约 2 分钟);只用上面下载来的 `samples/d2-packs/` 可以跳过它, 代价是 `?live=1` 与重新烘焙不可用。 -### 3. 页面与操作 +### 4. 页面与操作 | 页面 | 用途 | | --- | --- | @@ -78,7 +92,7 @@ npm run dev # http://127.0.0.1:5173/act 操作:**WASD / 方向键**移动(按屏幕方向),**滚轮 或 `+` / `-`** 缩放,`0` 复位;画布随窗口自适应并铺满视口。 -### 4. 部署到服务器 +### 5. 部署到服务器 ```bash npm run build:game # → dist-game/(base=/diablo2/) @@ -111,7 +125,7 @@ location ~ ^/diablo2/data/(?[A-Za-z0-9_.-]+\.mpq)$ { # 只暴露 .mpq 要点:归档必须支持 **Range**(否则页面会退化成整文件下载);`/root` 是 0700,所以用硬链接暴露给 nginx。 部署后跑 `npm run verify:deploy` 自检。 -### 5. 自检命令 +### 6. 自检命令 ```bash npm run verify:deploy # 线上:页面 / 资源包索引 / 图集 / Range 206 / 旧入口 410 @@ -129,6 +143,7 @@ npm run typecheck # tsc --noEmit - 仓库**不含**暴雪美术:原版 MPQ、`reference/` 下的第三方参考源码都不入库(规则写在 `.gitignore` 与 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md));`samples/fixtures/`(本项目自产)与 - `samples/d2-packs/`(本仓库内的派生数据)仅在本私有仓库内流通。 + `samples/d2-packs/`(派生数据)只作为 `/diablo2/assets/` 下的归档发布,不进 Git 历史。 + 图集包每次重烘都会让 Git 仓库再长 ~60 MB(PNG 无法 delta 压缩),所以不再入库。 - 使用本引擎需要你自己合法拥有的游戏数据。将来落地的生成类关卡(迷宫 / 野外)会在页面与文档中标注为 **"按官方参数表复现,非引擎原版布局"**(生成逻辑移植自 D2MOO)。