按玩家 ID 分段的共享 body_state
05/041 浏览
数据结构(uid=0 共享空间)
body_state = {
["12345"] = { stomach={hp=80,maxHp=100,pct=80}, _blood={...}, _uid=12345, _ts=1714834000 },
["67890"] = { intestine={hp=60,maxHp=100,pct=60}, _blood={...}, _uid=67890, _ts=1714834005 },
}
不同玩家写不同子段(自己的 userId key),天然无冲突,比留言墙还安全。
改动文件
文件 改动
Server.lua RMW 从扁平 merge 改为 current[tostring(userId)] = fragment,每个玩家只写自己的段
BodyState.lua ReportSharedState() 片段附带 _uid,昵称留给展示层异步解析(GetUserNickname 是异步 API)
BrainDashboard.lua 打开时一次 FetchBodyState 拉取全量 → 填充 crossPlayerReports_,配合原有 OnOrganResult 增量更新
大脑监控室数据流
打开 Dashboard
↓
FetchBodyState (一次性全量)
→ Server.Get(0, "body_state")
→ 返回所有玩家器官快照
→ 填充 crossPlayerReports_
↓
OnOrganResult (增量事件)
→ 单条器官闯关报告实时更新
大脑玩家一进监控室就能看到所有器官玩家的实时状态,uid 字段让每个数据都对应到具体的人。



