【关卡规则】关卡怪物生成逻辑异常:罗格营地出现怪物、奶牛关生成非奶牛怪、未成怪堆(Packs) #32
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题现象
根本原因排查分析
samples/d2-packs/act1/39-act-1-moo-moo-farm-var1/scene.json及其他场景文件发现,当前包内缺少monsters字段(scene.monsters为undefined)。src/scene/act-scene.ts(第 518-521 行):src/game/engine.ts中,当monsterPacks.length === 0时:引擎会退化为无视关卡类型与关卡属性,直接在全图可用坐标上随机散布 12 只
DEMO_MONSTERS(即 demo-fallen 沉沦魔、demo-zombie 僵尸、demo-skeleton 骷髅)。isTown,被填入了这 12 只怪;Levels.txt/MonStats.txt规定的族群聚集与数量分布。建议解决方案
pack-act-assets.ts,将根据Levels.txt、MonStats.txt、MonLvl.txt规范计算的真实怪物族群(Packs, Types, Stats)完整注入scene.json。engine.ts与act-scene.ts中增加安全区判定(若是 Town / 安全区,则怪物数量强制为 0);修复完成说明
已在提交
d6e6248中修复:loadPackRuntime、loadLiveRuntime和GameEngine中识别城镇与预算为 0 的场景,将回退怪物数monsterCount置为 0,杜绝在罗格营地生成怪物。src/game/monster-mapping.ts补充了hellbovine、cow的艺术资产映射(TokenCW, Weaponhth),奶牛关仅生成母牛(Hell Bovine)模型。monsterPacks时monsterCount依然强制覆盖为 12 只占位怪的逻辑缺陷,由spawnMonsterPacks正确按群落(营地中心 + 护卫环形簇拥)生成真正的群落怪堆。