四层数据架构

05/04综合
Step 1: Settings.lua — 新增 cloud relay + body_state 事件
Step 4: Server.lua — 新增 cloud relay 处理器 + body_state RMW
Step 7: MapEditor.lua — 云端存取改 CloudProxy + 导出全部关卡按钮先找到所有 clientCloud 的位置
现在进行 BodyState.lua 的改造。需要:
  1. 添加 require("network.CloudProxy")
  2. 将 clientCloud:Set(key, val, function(ok) ... end) 改为 cloud:Set(key, val, { ok=fn, error=fn })
  3. 将 clientCloud:Get(key, function(ok, val) ... end) 改为 cloud:Get(key, { ok=fn, error=fn })
  4. 添加共享 body_state 上报功能(调用 Client.ReportBodyState)
完成内容1. CloudProxy 统一路由层(新建)
  • scripts/network/CloudProxy.lua — 提供与 clientCloud 兼容的 Set/Get/IsAvailable API
  • 多人模式 → 通过 Client.CloudSave/CloudLoad 中转到服务端 serverCloud
  • 单机模式 → 直接 fallback 到 clientCloud
  • HandleCloudSave / HandleCloudLoad — 通用云存取中转(reqId 匹配回调)
  • HandleReportBodyState — uid=0 共享数据 Read-Modify-Write
  • HandleFetchBodyState — 读取共享 body_state 返回客户端
  • HandleCloudSave / HandleCloudLoad — 通用云存取中转(reqId 匹配回调)
  • HandleReportBodyState — uid=0 共享数据 Read-Modify-Write
  • HandleFetchBodyState — 读取共享 body_state 返回客户端
  • Client.CloudSave/CloudLoad — 带 reqId 追踪的异步中转
  • Client.ReportBodyState/FetchBodyState — 共享状态上报/拉取