Skip to content

游玩记录公开字段深度参考 ​

本页把游玩记录对象按页面显示区域解释。字段可能随版本增加;客户端应保留未知字段,不要因为页面暂时不显示就删除。个人标识、地点、对手和时间在公开分享前必须脱敏。

请求与响应外层 ​

token ​

当前会话凭据。只放在受保护请求体中,不写 URL、日志、文件名或错误截图。

start / end ​

范围读取边界,约定为 [start, end)。它们是记录索引范围,不是日期范围。请求前保证非负、end > start,下一页按实际返回条数推进。

success / msg ​

success 表示业务层是否接受请求,msg 是用户提示。HTTP 成功不等于 success 为真;空列表也不等于请求失败。

total ​

当前读取条件下的总数参考。数据可能在分页期间变化,不能把 total 当作永远稳定的数据库快照。

记录身份和地点 ​

字段页面用途注意
userId关联当前用户对外隐藏或脱敏
orderId服务记录关联不要当作游玩日期
playlogId记录唯一关联适合去重/反馈引用
version内容/客户端版本标识不一定等于页面显示版本
placeId地点编号不公开完整值
placeName地点名称可能暴露现场位置
loginDate登录相关时间戳解析时确认单位/时区
playDate记录发生时间与上传时间可能不同
userPlayDate用户侧游玩时间优先显示页面格式化值
type记录类型未知枚举保留原值

地点和时间的组合可能识别个人。公开反馈只需提供脱敏地点、日期范围和时区。

曲目和游玩范围 ​

字段说明
musicId曲目编号,来自公开索引
level难度索引/等级字段,具体显示由页面映射
trackNo本次记录中的曲目序号
playMode游玩模式索引,未知值保留
isPlayTutorial是否为教程/引导流程
isEventMode是否为活动/特殊流程
isNewFree是否处于特定免费流程
trialPlayAchievement试用流程的达成字段

level 是数据字段,不应直接用颜色替代。模式字段是索引值,客户端要给未知值保留“未知模式”而不是强行映射。

对战与参与者 ​

字段组字段含义
对战vsMode对战模式索引
对手vsUserName对手显示名,需脱敏
对手vsStatus对手状态索引
对手vsUserRating对手 Rating
对手vsUserAchievement对手达成字段
对手vsUserGradeRank对手评级索引
对战vsRank当前对战排名/结果字段
参与者playerNum本次记录中的参与人数

playerNum 不一定等于同时在线人数。对手为空时不要显示成匿名用户;按页面空值规则处理。

成组字段 playedUserId1–playedUserId3、playedUserName1–playedUserName3 和 playedMusicLevel1–playedMusicLevel3 表示参与者摘要。缺少某个序号时不要向前补位后再写回。

伙伴/角色字段 ​

每个角色槽可能有:

  • characterId1–characterId5;
  • characterLevel1–characterLevel5;
  • characterAwakening1–characterAwakening5。

页面可能把它们显示成伙伴卡片。ID 为 0、缺失或详情找不到时,应显示占位或隐藏,而不是把 0 当作有效角色名称。角色名称和等级也可能属于个人数据,截图前注意隐私。

成绩字段 ​

achievement ​

达成率或放大后的服务数字。页面会格式化为百分比;导出工具保留原始数值并单独记录格式化规则。

deluxscore ​

独立的 DX 分数。不要与达成率、评级或游玩次数混算。

scoreRank ​

评级索引。未知值显示为未知评级,不能把索引直接当文字。

maxCombo / totalCombo ​

最大连击与总连击参考值。最大连击超过总量时应提示数据异常,不要静默裁剪。

maxSync / totalSync ​

最大同步与同步总量。页面可能以比例或图标显示,但原始字段要保留。

判定统计 ​

判定字段按音符类别和结果组合:

类别结果字段
TaptapCriticalPerfect、tapPerfect、tapGreat、tapGood、tapMiss
HoldholdCriticalPerfect、holdPerfect、holdGreat、holdGood、holdMiss
SlideslideCriticalPerfect、slidePerfect、slideGreat、slideGood、slideMiss
TouchtouchCriticalPerfect、touchPerfect、touchGreat、touchGood、touchMiss
BreakbreakCriticalPerfect、breakPerfect、breakGreat、breakGood、breakMiss

字段缺失、负数和非有限数都应保留为异常输入,不能当作正常 0。合计时注明是否忽略了缺失项。

判定开关 ​

可能出现:

  • isTap、isHold、isSlide、isTouch、isBreak:记录包含哪些类别;
  • isCriticalDisp:是否显示关键判定;
  • isFastLateDisp:是否显示 FAST/LATE;
  • fastCount / lateCount:对应计数。

isSlide 等字段可能在历史数据中不是严格布尔语义,客户端应按响应类型和页面版本处理未知值。FAST/LATE 计数为 0 不一定代表页面没有显示该区域,需结合显示开关。

新纪录和状态 ​

字段含义
isAchieveNewRecord达成率是否创造新纪录
isDeluxscoreNewRecordDX 分数是否创造新纪录
comboStatus连击状态索引
syncStatus同步状态索引
isClear是否通过/完成
beforeRating / afterRating前后 Rating
beforeGrade / afterGrade前后评级索引
afterGradeRank结果评级排名/索引
beforeDeluxRating / afterDeluxRating前后扩展 Rating

前后字段用于展示变化,不应把 after 写回成绩。未知状态保留原值并显示“未知”。

模式和扩展字段 ​

可能出现:

  • isFreedomMode:特殊模式标记;
  • extNum1、extNum2、extNum4:版本扩展数字;
  • extBool1:版本扩展开关;
  • playCount:可选的游玩计数。

扩展字段没有公开语义时只读保留,不要根据数字大小猜测用途。客户端升级时要兼容字段缺失和新增。

页面转换规则 ​

页面可以把原始记录转换为:

  • 百分比;
  • 评级文字;
  • 时间字符串;
  • 判定总数;
  • 图标颜色;
  • 对手/伙伴卡片。

转换层应可逆或保留原字段。错误转换只影响显示,不应覆盖原始导出。

隐私分层 ​

可用于普通反馈 ​

  • 曲目编号;
  • 难度;
  • 非敏感错误;
  • 脱敏时间;
  • 版本/分支摘要。

只交给授权人员 ​

  • 记录关联 ID;
  • 完整时间和地点;
  • 对手/伙伴数据;
  • 完整判定数组。

不应分享 ​

  • Token、密码、访问码;
  • 完整备份;
  • 未脱敏用户名/地点;
  • 完整日志和服务 JSON。

兼容性清单 ​

  • [ ] 未知字段不会让解析崩溃;
  • [ ] 缺失字段不会变成错误的 0;
  • [ ] 百分比不会重复换算;
  • [ ] 时间保留时区;
  • [ ] 分页按实际返回数量推进;
  • [ ] 记录 ID 可用于去重;
  • [ ] 账号切换会清理旧记录;
  • [ ] 导出保留原始对象;
  • [ ] 公开反馈已脱敏。

Released under the CC BY-NC-SA 4.0 License.