[P2][D18] 多人锁步掉落同步:net-scene 接入 executeDropPipeline(共享 PRNG seed) #427
Labels
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: troytt/diablo2-web#427
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?
现状
src/scene/net-scene.ts:631-648的tickCombatMulti推进锁步模拟时完全忽略
world.events中的kill事件,从不调用executeDropPipeline。→ 多人模式下打怪不掉任何东西。
1.13c 真实行为
服务端以怪物
dwInitSeed决定掉落,所有客户端看到完全一致的物品。验收标准
net-scene以与engine.ts完全相同的顺序与参数调用executeDropPipeline。gamePlayers/partyPlayers由真实会话人数驱动(与 D09 协同)。Resolution Summary (Issue #427 — Commit
9022579)Connected
src/scene/net-scene.ts(createNetSimulation) toexecuteDropPipelineseeded deterministically frommonster.dwInitSeedandfindSafeDropPosition.\n- Mixed ground and inventory item metadata intocomputeLockstepHashinsrc/net/lockstep.ts.Verification:
npx tsc --noEmit(0 errors), full Vitest drop/combat/item/E2E parity suites (100% pass), andscripts/verify-m5.ts/scripts/verify-net.ts(0 problems).