Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-C3c正式互加好友结果与字段差异-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

4.3 KiB
Raw Blame History

C3c 正式互加好友结果与字段差异

2026-09-30 15:36。用户已明确批准101/102互加好友,必要时可扩展103–110。本次101/102足够,未登录或创建103–110,也未更改客户端正式准入名单。

实际结果

双方原好友列表均为空。101调用原friend/AddFriend邀请102,HTTP200/code=1;关系尚未直接完成,102按原字段Status=1, PlayFabId=102, FriendPlayFabId=101调用friend/AcceptFriend,HTTP200/code=1。最后双方各有1个好友,101取得102、102取得101,mutual=true。关系保留供后续联调,未删除好友。

当前线上非空响应

friend/GetFriendsList外层code/msg/friends;friends的每项仍为序列化JSON字符串。对101、102的两份非空项,实际都只有以下字段:

字段 101列表中102的项 102列表中101的项
PlayFabId 字符串102 字符串101
DisplayName String(正文不落盘) String(正文不落盘)
AvatarUrl String(正文不落盘) String(正文不落盘)
Level 数字1 数字1
LastLogin/LastLoginTime/LastLoginTimeUtc 未返回 未返回
LevelB/建筑等级/Statistics 未返回 未返回

这已证明现有接口可以一次返回好友的基本资料,而不是“完全不支持”。但本次返回的数据尚不能直接满足原客户端LevelB及LastLogin消费。字段存在不等于昵称/头像为有效真实资料,不从脱敏类型记录推断其内容。

与本人KV对照及限制

账号101等级62、102等级60,均来自现行现代存档NewPlayerDataDic.newData第0槽(19槽格式),并非独立Lv键。原AddFriend请求MySelf.Level按该实际值提交(本次实际邀请者101提交62),昵称/头像缺键沿现有KVUserService默认规则;未写回KV。

两账号本次指定键读取中,DisplayName、AvatarUrl、InfiniteBuildingData、LastLoginTimeUtc均缺失。好友返回Level=1与KV等级62/60不一致,不能将其当作已验证的KV等级投影。

原客户端已有KVUserService.UpdateProfile/UpdateProfileLv通过account/UpdateProfile同步资料,CampPanel.cs:1362会调用UpdateProfileLv。本次只执行授权的好友流程,没有进入场景或发送UpdateProfile;故等级不一致也可能与资料同步尚未执行有关,不据此断言服务端仍访问PlayFab或没有KV能力。

同理,本次未执行FishingStage的LastLoginTimeUtc保存路径;源KV缺时间,非空好友响应也没有时间。尚不能证明将来KV有时间后该接口会自动返回,也不能仅凭本次缺字段断言永远不支持。 下一步在同一C3c差异裁决中明确时间投影与缺键行为,不能擅自为测试写入当前时间并冒充历史值。

执行边界与证据

  • 首次预检仅读独立Lv,不能取得101等级,提前终止,0好友写请求。核现行DecodeCore后补读取现代格式;初次失败保留,不归因于服务器坏档。
  • 首次2次正式请求;最终12次正式请求,其中2次为已批准好友写操作(AddFriend/AcceptFriend),其余登录与读取。本轮合计14次;此前只读探测4次属于前一检查点。
  • 没有KV Set/Delete、UpdateProfile、删除好友、领奖、付费、Play或打包。认证仍可能有原有服务端副作用。未读取/修改服务器源码,未改客户端生产代码。
  • 证据:M2-C3c正式互加好友实测-2026-09-30.json(首次预检)、M2-C3c正式互加好友实测-final-2026-09-30.json(成功);复跑驱动M2-C3c正式好友样例验证.ps1(会检查已有关系,禁止无理由自动重复执行)。
  • 此为HTTP原协议测试,不是Unity真实FriendService运行或首场景通关。原C3c待审包保持原hash,本文件作为事实增量交同一次审查。

后续集中裁决输入

  1. 不再索要好友路由或非空基本结构:本次均已取得。
  2. 好友资料源要对齐真实KV数据:现有UpdateProfile是否按原流程足以提供准确等级;建筑等级/LevelB如何保留,不能将Level=1直接填旧value。
  3. 采用已有LastLoginTimeUtc作为单一存储来源的候选方向;需确定好友接口读取/投影和旧档缺键处理,保留伙伴邀请的原业务顺序。
  4. 103–110授权已记录,但更多空账号不能自动补齐上述语义,不为扩大测试数量额外创建。