fix(monsters): 野外关卡不生成冠军/暗金精英怪,且怪物密度偏低(未对齐 Levels.txt MonDen/MonUMin/MonUMax) #448

Closed
opened 2026-09-24 12:34:52 +00:00 by troytt · 0 comments
Owner

现象

真实浏览器探针(acts.html, Act 1 鲜血荒地 2-act-1-wilderness-1-var1)读取 engine.streamingManager.rooms[*].packs:

  • 30 个 room 共规划 51 只怪:fallen1×21、zombie1×18、quillrat1×12
  • rank 全部为 normal,0 个冠军(champion)、0 个暗金(unique)精英群

精英怪是 1.13c 药瓶/金币掉落的主要来源(Act 1 Champ A picks=-2 → Citem + 2×Cpot;Act 1 Unique A picks=-3 → Uitem + 2×Cpot)。缺失精英直接导致玩家体感"掉落明显偏少、不掉药不掉钱"。

掉落管线本身已验证正常(非本 issue 范围)

同场景真实击杀 ~2200 次:每只 0.33 件、金币 0.13、药瓶 0.053,与 Act 1 H2H A(NoDrop 100 / gld 21 / Equip 16 / Junk 21 / Good 2)理论值一致。

疑点

  1. src/game/monsters.ts planMonsterGroups:精英数 rng.int(plan.eliteMin, plan.eliteMax),需核对场景烘焙时 eliteMin/eliteMax(MonUMin/MonUMax)是否被正确读入,以及 plan.elitePool(umon)过滤条件 enabled && isSpawn && sparsePopulate > 0 是否把候选全部滤掉。
  2. DENSITY_CELLS_PER_MONSTER:注释自承"This is the one invented number in this module",违反 AGENTS.md 1.13c Ground Truth。需按 D2Common DRLG 房间级生成(每 room 依 MonDen 掷骰)对齐,而非面积/常数换算。
  3. 场景 scene.monsters.packs 为离线烘焙产物,需确认 pack 脚本与运行时共享同一契约。

验收

  • 鲜血荒地/冰冷之原等野外关卡按 Levels.txt MonUMin/MonUMax 生成暗金/冠军群(MonUMod champion chance = 20)
  • 去除编造常数,密度按 1.13c 房间生成算法
  • 136 个关卡全谱审计:每关计划怪物数、精英群数输出报表,与 Levels.txt 对照
  • 真实浏览器探针验证精英怪存在且击杀后掉落 Cpot 药瓶
## 现象 真实浏览器探针(acts.html, Act 1 鲜血荒地 `2-act-1-wilderness-1-var1`)读取 `engine.streamingManager.rooms[*].packs`: - 30 个 room 共规划 **51 只怪**:fallen1×21、zombie1×18、quillrat1×12 - **rank 全部为 normal,0 个冠军(champion)、0 个暗金(unique)精英群** 精英怪是 1.13c 药瓶/金币掉落的主要来源(`Act 1 Champ A` picks=-2 → Citem + 2×Cpot;`Act 1 Unique A` picks=-3 → Uitem + 2×Cpot)。缺失精英直接导致玩家体感"掉落明显偏少、不掉药不掉钱"。 ## 掉落管线本身已验证正常(非本 issue 范围) 同场景真实击杀 ~2200 次:每只 0.33 件、金币 0.13、药瓶 0.053,与 `Act 1 H2H A`(NoDrop 100 / gld 21 / Equip 16 / Junk 21 / Good 2)理论值一致。 ## 疑点 1. `src/game/monsters.ts` `planMonsterGroups`:精英数 `rng.int(plan.eliteMin, plan.eliteMax)`,需核对场景烘焙时 `eliteMin/eliteMax`(`MonUMin/MonUMax`)是否被正确读入,以及 `plan.elitePool`(umon)过滤条件 `enabled && isSpawn && sparsePopulate > 0` 是否把候选全部滤掉。 2. `DENSITY_CELLS_PER_MONSTER`:注释自承"**This is the one invented number in this module**",违反 AGENTS.md 1.13c Ground Truth。需按 D2Common DRLG 房间级生成(每 room 依 MonDen 掷骰)对齐,而非面积/常数换算。 3. 场景 `scene.monsters.packs` 为离线烘焙产物,需确认 pack 脚本与运行时共享同一契约。 ## 验收 - [ ] 鲜血荒地/冰冷之原等野外关卡按 `Levels.txt` MonUMin/MonUMax 生成暗金/冠军群(MonUMod champion chance = 20) - [ ] 去除编造常数,密度按 1.13c 房间生成算法 - [ ] 136 个关卡全谱审计:每关计划怪物数、精英群数输出报表,与 Levels.txt 对照 - [ ] 真实浏览器探针验证精英怪存在且击杀后掉落 Cpot 药瓶
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#448
No description provided.