单机迁移服务端云存档相关问题

03/2457 浏览开发心得
目前测试了多次,发现在服务端上并不能读取到之前的云存档。
当前联网模式下的存档读取流程是这样的:读取优先级(Server.lua _LoadPlayerData):
  1. 先读 serverCloud(服务端云存储) — serverCloud:BatchGet(uid) 读取 sv_core、sv_military、sv_progress 三个分片
  2. 如果 serverCloud 有数据 → 直接使用,不再请求客户端
  3. 如果 serverCloud 无数据且未迁移 → 向客户端发 REQUEST_CLIENT_SAVE 事件,请求客户端读取 clientCloud(旧的客户端云存储)
  4. 客户端收到请求后 → Client.lua OnRequestClientSave 从 clientCloud 读取旧存档,发回服务端
  5. 服务端收到后 → 用旧数据初始化,并标记 needMigrate=true,下一帧自动写入 serverCloud 完成迁移
  6. 如果两边都没数据 → 当新玩家处理(GameState.CreateNew())
  7. 简单来说:第一次登录读 clientCloud 旧存档并迁移到 serverCloud;之后每次都从 serverCloud 读取。但是以这样的方式并不能读取到旧存档的信息。后续开发建议首先确定好游戏类型和模式。
2
1