文档:图集包改为从归档获取(不再随仓库分发)

README 新增「资源包从哪来」小节:给出归档 URL、sha256 与解包命令;后续小节编号顺延。
HANDOVER 同步说明归档位置(nginx → /var/www/d2assets/),并记录 Gitea Release 附件在本实例
不可用(1KB..59.5MB 全部 HTTP 500),因此走 /diablo2/assets/。

samples/d2/MANIFEST.md 同样加了说明,但该文件在被忽略的 samples/d2/ 下,不入 Git。
This commit is contained in:
troytt 2026-09-14 11:45:48 +08:00
parent afa5597168
commit a1af1d7304
2 changed files with 26 additions and 8 deletions

View File

@ -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)

View File

@ -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/(?<d2file>[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)。