feat(gacha): 升级 UIGF 支持至 v4.2,新增千星奇域抽卡记录导入导出 - #1903
Conversation
|
感觉UIGF v4.0改为UIGF v4.2就可以了,把上面的json统一改为UIGF3.0不够严谨,崩铁的是SRGF1.0,绝区零的什么都不是只能在Starward中导入导出 |
|
千星奇域hk4e_ugc导出时lang为空,Starward中能导入导出,但导入其他软件时可能会由于lang缺失而出错 |
UIGF 3.0 支持原神和崩铁,不支持绝区零,但是 Starward 在导出绝区零时也会类似的按照 UIGF 3.0 的标准导出,为避免歧义,将更改崩铁的导出为 SRGF 1.0,绝区零的保持为 Json 不变。
这可能和本来的排布有关,
很抱歉我并没有千星奇域抽卡记录,故暂时无法测试,如果您愿意提供自其他项目导出的,含有千星奇域抽卡记录的 UIGF 4.2 文件,将不胜感激。 |
|
已完成更改 WindDrift@444bcba 。 1. 导出格式命名一刀切
修复:按 2. 千星奇域
|
UIGF 3.0只支持原神,崩铁是独立的SRGF 1.0
是因为克隆下来拿自己数据看了后发现多了千星奇域,所以删了
原来排布更像刻意对齐,是不是要看老大怎么想,所以我加了个问号表示不确定 导入导出的功能上暂未其他发现问题 |
|
或者说档案名称一列直接复用现有的祈愿记录,千星奇域颂愿,跃迁记录,调频记录的命名 |
|
已完成更改 WindDrift@5642018 。
|





背景
项目此前实现的是 UIGF v4.0。UIGF 标准已迭代两版:
21/22hk4e_ugc其中 v4.1 的缺口是一处已存在的标注错误:
StarRailGachaClient的QueryGachaTypes早在 2025-07 就包含了21/22,导出文件实际已是 v4.1 规格,但info.version仍写v4.0——而 v4.0 的hkrpg.gacha_type枚举只允许1/2/11/12。只要用户有联动池记录,导出的文件就无法通过它自己声明的 schema 校验。改动
数据模型
UIGF4File新增hk4e_ugc区段,info.version升至v4.2UIGF4GachaArchive<T>的where T : GachaLogItem约束(千星奇域记录类不继承GachaLogItem,且该约束在类体内未被使用)GenshinBeyondGachaItem——其 JSON 属性名与标准的hk4e_ugc字段已完全对齐,未新建 DTO导入导出
UIGFGachaService新增千星奇域的档案枚举、导出、导入三条链路IsGenshinBeyond标记在导出列表中独立成行,可单独勾选region/is_up是标准未定义的扩展字段,随记录一并写出以保证 Starward 之间无损往返;标准未禁止额外字段,其他应用会自动忽略UI
Json→UIGF v3.0,从 JSON 导入→从 UIGF v3.0 导入,UIGF v4.0→UIGF v4.2并以分割线隔开,明确两套互不兼容的导出逻辑说明
id/item_id/op_gacha_type/time/rank_type缺失抛UIGF4ImportException,item_name缺失走软提示Lang.resx与Lang.zh-CN.resx,其余语种交由 Crowdin 同步hk4e_ugc的properties/required被写在数组层级而非items内,对校验器实际失效——这是 UIGF 侧的 schema 书写问题,本实现按语义字段对齐,不依赖 schema.uigf.org 校验该区段测试
本人无千星奇域抽卡记录,且原神早已退坑,待寻找有抽卡记录的 UID 进行千星奇域验证代码由 Claude Opus 5 生成,本地验证通过,GitHub Action 构建通过。