游玩记录页面逐项完整参考
本页说明游玩记录页面的加载、分页、卡片、展开详情、判定统计、Rating 变化、店铺、对战和空/错误状态。它补充游玩记录页面字段与分页参考、游玩记录公开字段深度参考和数据生命周期。
页面加载和刷新
页面按页读取游玩记录,每页通常显示固定数量的记录。账号没有 Token 时不会发起有效读取;读取失败会显示错误文字。点击刷新会重新读取当前页,不会自动跳到第一页。
页面状态分为:
- 加载中:旋转图标和“加载中…”;
- 空状态:“暂无游玩记录”或类似提示;
- 错误:红色错误区域和服务消息;
- 有数据:记录卡片和分页;
- 翻页中:当前列表先清空,页面滚动到顶部,再加载新页。
空状态只说明当前账号、当前数据范围没有可显示记录,不代表服务端删除了历史记录。切换账号后必须重新读取。
记录卡片顶部
一条记录卡片顶部可能显示:
- 难度标签;
- TRACK 编号;
- 游玩日期/时间;
- 曲名和曲目封面;
- 当前成绩摘要;
- Rating 变化。
不同难度使用不同背景色,Re:MASTER 和特殊场景可能有单独颜色。颜色是页面视觉提示,具体难度以文字和字段为准。
点击卡片主体或“点击展开详情”会展开完整内容;再次点击“点击收起”收回。展开状态只属于当前页面,不会写入账号。
摘要字段
卡片摘要常见字段:
| 字段 | 页面用途 | 解释边界 |
|---|---|---|
| 达成率 | 显示本次成绩 | 不等于 Rating 变化 |
| DX 分数 | 显示当前分数和最大值 | 最大值来自当前难度/版本 |
| DX Rating | 显示游玩后的 Rating | 变化量需要结合游玩前值 |
| 游玩次数 | 记录次数摘要 | 可能包含服务端聚合口径 |
| 评级 | 便于快速比较 | 不替代原始数值 |
| TRACK | 当前卡片的游玩序号 | 不是曲目 ID |
当数据为空、旧版本没有字段或字段值为 0 时,页面可能显示短横线或默认文本。不要把缺失字段手动补成 0 再反馈。
展开详情:统计卡
展开后页面可能显示四组统计卡:
DX Rating 和变化
页面显示游玩后的 DX Rating,并在前后值不同的时候显示差值。普通 Rating 也可能显示正数、负数或“±0”。
差值只描述这一次记录前后的变化,不是账号总 Rating 的完整历史。跨页或切换账号后不要把多个差值相加。
MAX COMBO
显示本次最大连击和总连击目标。分子/分母的含义由当前记录字段决定,不能只看百分比颜色判断是否全连。
MAX SYNC
多人记录可能显示同步进度条;当参与人数不大于 1 时页面显示“—”。“—”表示当前记录不适用,不是同步为 0。
FAST/LATE
页面分别显示 FAST 和 LATE 次数。它们是判定统计,不是网络延迟。网络问题应看机台健康和记录上传状态,不要用 FAST/LATE 判断链路。
判定详情
“判定详情”区可能按判定类型显示数量和颜色。页面会用颜色区分不同判定,但颜色只是可视化;开发者读取时应使用公开字段名称和数值。
判定区为空可能是:记录没有判定明细、数据版本不包含明细、加载失败或当前账号不允许查看。反馈时说明是哪条记录、哪个字段为空。
曲目和谱面信息
详情中的曲目基础信息可能包括:
- Music ID;
- 曲师/作者;
- 谱面作者;
- Genre;
- 内容版本;
- BPM;
- 当前难度;
- 当前难度等级;
- 定数;
- 物量/Note 数。
页面可能从内容详情文件读取等级、定数和谱面作者;详情文件不可用时会显示“未知”“-”或 0。不要把详情缺失写成游玩记录损坏。
游玩店铺和时间
详情区可能显示游玩店铺、地区、机台别名、游玩时间、玩家人数和记录时间。公开分享前遮挡店铺、机台和个人身份信息。
游玩时间、上传时间、页面加载时间和服务索引时间可能不同。比较记录时固定时区,不能手工修改备份 JSON 来对齐时间。
对战信息
当 vsMode 大于 0 时,页面可能显示“对战信息”,包括:
- 对手名称(如果可见);
- 对战模式;
- 对手 Rating(如果大于 0);
- 当前记录参与人数。
对手信息属于个人数据。截图、导出和反馈时只保留定位问题所需内容。没有对战字段时不要把普通多人游玩误判为对战。
记录加载详情失败
页面可能在读取内容详情时尝试解析 XML/详情资源。详情解析失败时,记录本身仍可能显示,页面使用默认值或“未知”。
排查顺序:
- 先确认记录卡中的基础成绩存在;
- 记录曲目 ID、难度和发生时间;
- 刷新当前页一次;
- 对比另一条相同版本/难度记录;
- 仍失败时反馈缺失的具体字段。
不要用外部内容文件覆盖本地目录,也不要因为详情字段缺失删除记录。
分页行为
页面通常每页读取 20 条记录,实际页大小以当前页面为准。底部提供:
- 上一页/下一页;
- 第一页和最后一页;
- 中间页码;
- 页数较多时的省略号;
- 移动端简化页码;
- “跳转到”数字输入。
切换页时页面会清空当前记录并滚动到顶部,避免把上一页卡片误认成新页。加载期间所有分页按钮可能禁用。跳转值必须在 1 到总页数之间,按 Enter 后才应用。
总页数由服务端 total 和页面固定页大小计算;总数变化会导致最后一页变化。删除或上传后重新读取时,当前页可能不再存在,应回到第一页检查。
隐私边界
聊天经验:侧载后的记录要区分上传、索引和详情
现场出现过“内容能打开但记录没有”“更新后音乐与谱面不一致”“记录卡片能显示但详情字段未知”三种不同现象。游玩记录页的空状态不能单独证明游玩数据丢失。
排查时固定账号、时间和运行分支,依次检查:
- 机台是否完成保存,是否在上传缓存中出现快照;
- 记录页是否在正确账号、日期范围和分页;
- 记录卡基础成绩是否存在,还是只有详情 XML/资源字段缺失;
- 内容的订单、分支和发布时间是否已经完成应用。
如果机台提示保存失败,先下载上传缓存留档;如果只是详情显示“未知”,保留记录并反馈缺失字段。对侧载或测试内容,是否进入常规记录范围以当前数据策略为准,不要手工改备份 JSON,也不要重复游玩来等待索引。
游玩记录可能同时暴露成绩、时间、店铺、玩家人数、对手、内容作者和设备信息。分享截图或排障信息时:
- 遮挡账号、用户昵称、机台标签、店铺和对手;
- 只保留曲目 ID、难度、错误字段和时间;
- 不发送完整响应、Token、二维码、缓存和原始截图;
- 审核/内容反馈时按页面当前权限提交最小信息。
页面回归清单
只读回归
- [ ] 登录正确账号并读取第一页;
- [ ] 空状态和错误状态能区分;
- [ ] 卡片展开/收起稳定;
- [ ] 摘要、Rating、连击、FAST/LATE 可读;
- [ ] 曲目详情、BPM、定数和谱面作者可读或明确为空;
- [ ] 对战信息只在适用记录显示;
- [ ] 翻页会清空旧列表并滚动顶部;
- [ ] 跳转越界不会提交。
数据一致性回归
- [ ] 切换账号后记录、时间和店铺归属变化正确;
- [ ] 记录时间与页面索引时间分开记录;
- [ ] 详情解析失败不会删除原记录;
- [ ] 同一记录刷新前后 ID、难度和成绩一致;
- [ ] 隐私遮挡后再分享截图。
