Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-LevelB保持PlayFab原语义裁决-2026-09-30.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

32 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M2 LevelB 保持 PlayFab 原语义裁决
日期:2026-09-30。依据:用户明确纠正“LevelB 使用的方案应该和 PlayFab 版本使用的相同”。
## 当前裁决
LevelB 的原处理方案不需要改变。迁移只替换提供方及玩家身份:原 PlayFab 统计能力由 KV 管理器及接线承接,原 PlayFabId 对应位置使用认证 UserID。用户之前允许“KV先存一份”不是允许重新定义 LevelB、改变原统计流程或把完整统计功能缩成暂存副本。
开发侧撤回《M2-C3c本人统计KV暂存实施增量-2026-09-30.md》的实施候选,及阶段方案中将 LevelB 定义为“可回收临时个人快照”的解释。对应增量hash只保留历史追溯,不再作为编码许可或等待用户批准的当前方案;不继续为该提议组织独立审核。原文件字节保持,避免改写受审证据。
本裁决不预先规定 KV 内部必须采用哪种数据容器;以 LevelB 为键可以是等价存储的实现细节,但不能据此宣称排行榜和好友统计读取已经等价。也不能默认改成服务器在每次查询时从 lv/建筑重新计算,从而改变原统计更新时间。
## 原客户端链路与必须保持的行为
| 源码位置 | 已核实的原行为 | 迁移边界 |
|---|---|---|
| Client/Assets/Scripts/DataCenter/DataCenter.LeadboardData.cs:189 SetLvData | 原等级、建筑等级及上限计算 LevelB;分数=lv×100000+建筑值 | 计算来源、上限、原调用点、async void及状态赋值不变 |
| 同文件:158 SetLeadboardData | 把 LevelB 和地区统计名及相同分数放入一次 UpdatePlayerStatisticsAsync 请求并等待 | KV承接原统计更新含义,不另立“先刷所有存档、部分成功也可当迁移完成”的方案;批次/失败差异须准确说明 |
| 同文件:171 GetLeadboardData | 按统计名读取从0开始、默认最多50名及玩家资料 | KV接线取得同义排名、分数、玩家身份及资料;不返回本人快照充当排行榜 |
| Client/Assets/Scripts/Services/FriendService.cs:169 | 从各好友 Profile.Statistics 中取名为 LevelB 的 Value,再按原值排序 | 取得该好友的同义统计分数;不拿普通Level替代、不改原UI的除法/取模解码 |
| Client/LocalPackages/asap.playfab.async/Runtime/Gen/PlayFabClientAsyncAPI.cs:2430 | 更新错误回调记日志后以null完成Task | 保留原公开返回与异常行为;不添加新业务阻断或悄悄吞掉未知编程异常 |
全球/地区、好友统计必须指向原来对应的统计含义。原已明确的未知地区边界继续保留,不增加新的地区开关或地区来源。现有LastLoginTimeUtc不是此次纠正要求改动的对象,本轮不改变其实现或宣称其已等价于好友Profile.LastLogin。
## 撤回原因与后续执行
此前提议保留了计算公式,但将“统计更新→排行榜/好友查询”的完整能力拆成临时个人KV副本,又引入通用Flush可能刷新其他待写项、两键非事务等差异。这些是开发侧新提议,不是原PlayFab业务方案要求,不能要求用户接受后再称纯平移。
后续沿现有 C3c 统一记录原统计更新、排行榜读取、好友统计读取到 KV 的等价调用映射。已批准同合同部分连续执行;只有准确证实的接口或合同缺口集中记录,不能自行用临时副本、客户端拼榜、改排序或停用功能替代。无需再问用户是否存KV或是否使用新ID,也不因撤回本候选新增一轮逐功能审查。
本次核查发现相关生产方法仍为原PF实现;被撤回提议尚未编码或写入正式KV,因此没有需要回滚的生产改动。保留整个现有工作树,不改服务器、配置、测试或其他业务代码;本轮只修正文档与当前执行入口。