保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
48 lines
4.3 KiB
Markdown
48 lines
4.3 KiB
Markdown
# 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授权已记录,但更多空账号不能自动补齐上述语义,不为扩大测试数量额外创建。
|