From c4f1b8eb6154151c19acea09e96cfbc12a94ddaf Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 19 Jul 2025 20:23:32 +0800 Subject: [PATCH 1/4] Add new pool type enum cases for UIGFv4 and SRGFv1. --- docs/.vuepress/public/schema/uigf.json | 4 +++- docs/en/standards/srgf.md | 4 +++- docs/en/standards/uigf.md | 4 +++- docs/zh/standards/srgf.md | 4 +++- docs/zh/standards/uigf.md | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/.vuepress/public/schema/uigf.json b/docs/.vuepress/public/schema/uigf.json index 25f5f914..2be7faa1 100644 --- a/docs/.vuepress/public/schema/uigf.json +++ b/docs/.vuepress/public/schema/uigf.json @@ -209,7 +209,9 @@ "1", "2", "11", - "12" + "12", + "21", + "22" ] }, "item_id": { diff --git a/docs/en/standards/srgf.md b/docs/en/standards/srgf.md index b7b60301..ffb4c4ae 100644 --- a/docs/en/standards/srgf.md +++ b/docs/en/standards/srgf.md @@ -125,7 +125,9 @@ We also provide the [SRGF Json Schema Verify Tool](https://schema.uigf.org/?sche "1", "2", "11", - "12" + "12", + "21", + "22" ] }, "item_id": { diff --git a/docs/en/standards/uigf.md b/docs/en/standards/uigf.md index b2f276b6..5123bd28 100644 --- a/docs/en/standards/uigf.md +++ b/docs/en/standards/uigf.md @@ -268,7 +268,9 @@ We also provide a [UIGF Format Validation Tool](https://schema.uigf.org/?schema= "1", "2", "11", - "12" + "12", + "21", + "22" ] }, "item_id": { diff --git a/docs/zh/standards/srgf.md b/docs/zh/standards/srgf.md index 95b00ea8..6072fb38 100644 --- a/docs/zh/standards/srgf.md +++ b/docs/zh/standards/srgf.md @@ -124,7 +124,9 @@ UIGF 4.0 **不具备对旧有标准的向下兼容性**,且与旧有标准的 "1", "2", "11", - "12" + "12", + "21", + "22" ] }, "item_id": { diff --git a/docs/zh/standards/uigf.md b/docs/zh/standards/uigf.md index 93d97991..c3b34aa2 100644 --- a/docs/zh/standards/uigf.md +++ b/docs/zh/standards/uigf.md @@ -268,7 +268,9 @@ tags: "1", "2", "11", - "12" + "12", + "21", + "22" ] }, "item_id": { From bbb5ab3e809c92fe3571ca2132bdd2a76201c751 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 3 Aug 2025 19:45:35 +0800 Subject: [PATCH 2/4] Deprecating SRGF updates; Boosting UIGF version to v4.1. --- docs/en/standards/srgf.md | 6 ++---- docs/en/standards/uigf.md | 5 +++-- docs/zh/standards/srgf.md | 6 ++---- docs/zh/standards/uigf.md | 5 +++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/en/standards/srgf.md b/docs/en/standards/srgf.md index ffb4c4ae..23dd6175 100644 --- a/docs/en/standards/srgf.md +++ b/docs/en/standards/srgf.md @@ -19,7 +19,7 @@ Including only importing feature reduces the interchangeability of user data, an ::: ::: warning Deprecated Version -This standard is deprecated. [UIGF v4.0](uigf-legacy-v3.0) is the successor. +This standard is deprecated and won't be maintained anymore (incl. its supported gacha pool types.). [UIGF v4.1](uigf.md) is the successor. The latest UIGF 4.0 version inherits and merges the features of both [UIGF 3.0](./uigf-legacy-v3.0.md) and SRGF standards, plus additional support for Zenless Zone Zero gacha record data. @@ -125,9 +125,7 @@ We also provide the [SRGF Json Schema Verify Tool](https://schema.uigf.org/?sche "1", "2", "11", - "12", - "21", - "22" + "12" ] }, "item_id": { diff --git a/docs/en/standards/uigf.md b/docs/en/standards/uigf.md index 5123bd28..48b0f39d 100644 --- a/docs/en/standards/uigf.md +++ b/docs/en/standards/uigf.md @@ -13,8 +13,8 @@ tags: - Zenless Zone Zero --- -# Uniformed Interchangeable GachaLog Format standard v4.0 -> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.0 +# Uniformed Interchangeable GachaLog Format standard v4.1 +> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.1 ::: warning Breaking Changes `UIGF v4.0 and higher versions` are **not backward compatible** with `UIGF v3.0 and lower versions` and `SRGF v1.0`. Projects collaborating with UIGF/SRGF need to be re-certified for compatibility. @@ -25,6 +25,7 @@ tags: |---------|--------------------------------------------------------------------------------|-------------------------| | `v3.0` | For the update log of lower versions, please refer to the historical versions. | v3.0 and lower versions | | `v4.0` | Merged SRGF, added support for Zenless Zone Zero gacha format | v4.0 | +| `v4.1` | Added support for new gacha pool types introduced in Star Rail v3.4 release. | v4.1 | ## Preface diff --git a/docs/zh/standards/srgf.md b/docs/zh/standards/srgf.md index 6072fb38..dc5f8b99 100644 --- a/docs/zh/standards/srgf.md +++ b/docs/zh/standards/srgf.md @@ -18,7 +18,7 @@ head: ::: ::: warning Deprecated Version -**该标准已过时,[UIGF v4.0](uigf.md) 替代了该版本的标准。** +**该标准已过时,不再受维护(也不会再新增对新的卡池类型的支持)。[UIGF v4.1](uigf.md) 替代了该版本的标准。** 最新的 UIGF 4.0 版本继承并合并了 [UIGF 3.0](./uigf-legacy-v3.0.md) 和 SRGF 标准的功能,并增加了对绝区零抽卡数据的支持。 @@ -124,9 +124,7 @@ UIGF 4.0 **不具备对旧有标准的向下兼容性**,且与旧有标准的 "1", "2", "11", - "12", - "21", - "22" + "12" ] }, "item_id": { diff --git a/docs/zh/standards/uigf.md b/docs/zh/standards/uigf.md index c3b34aa2..bf0ad7c6 100644 --- a/docs/zh/standards/uigf.md +++ b/docs/zh/standards/uigf.md @@ -13,8 +13,8 @@ tags: - 绝区零 --- -# 统一可交换抽卡记录标准 v4.0 -> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.0 +# 统一可交换抽卡记录标准 v4.1 +> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.1 ::: warning 中断性更新警告 `UIGF v4.0 及更高版本` 对于 `UIGF v3.0 及更低版本` 和 `SRGF v1.0` **不具备向下兼容性**。UIGF/SRGF 合作项目如需适配,需重新认证。 @@ -25,6 +25,7 @@ tags: |--------|---------------------|------------| | `v3.0` | 低版本的更新日志请查看历史版本 | v3.0 及更低版本 | | `v4.0` | 合并 SRGF,新增绝区零抽卡格式支持 | v4.0 | +| `v4.1` | 新增对星穹铁道 v3.4 版所引入的新的卡池类型的支持 | v4.1 | ## 前言 From b1cb4ca4a8eb8d56a28b09f0297e65b6e94c374e Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sun, 3 Aug 2025 19:59:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=93=9D=20=E6=B7=BB=E5=8A=A0uigfv4.0?= =?UTF-8?q?=E5=BD=92=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en/standards/uigf-legacy-v4.0.md | 435 ++++++++++++++++++++++++++ docs/zh/standards/uigf-legacy-v4.0.md | 434 +++++++++++++++++++++++++ 2 files changed, 869 insertions(+) create mode 100644 docs/en/standards/uigf-legacy-v4.0.md create mode 100644 docs/zh/standards/uigf-legacy-v4.0.md diff --git a/docs/en/standards/uigf-legacy-v4.0.md b/docs/en/standards/uigf-legacy-v4.0.md new file mode 100644 index 00000000..f1b5fc5c --- /dev/null +++ b/docs/en/standards/uigf-legacy-v4.0.md @@ -0,0 +1,435 @@ +--- +category: [Standardization Documents] +order: 8 +head: + - - meta + - name: keywords + content: Genshin Impact, Honkai Star Rail, Zenless Zone Zero, gacha, gacha record, UIGF +tags: + - UIGF + - Gacha Record + - Genshin Impact + - "Honkai: Star Rail" + - Zenless Zone Zero +--- + +# Uniformed Interchangeable GachaLog Format standard v4.0 +> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.0 + +::: warning Breaking Changes +`UIGF v4.0 and higher versions` are **not backward compatible** with `UIGF v3.0 and lower versions` and `SRGF v1.0`. Projects collaborating with UIGF/SRGF need to be re-certified for compatibility. +::: + +::: warning Archived Version +This standard is deprecated and archived, please check our latest [UIGF standard](./uigf.md) document. + +::: + +## Update Log +| Version | Description | Compatibility | +|---------|--------------------------------------------------------------------------------|-------------------------| +| `v3.0` | For the update log of lower versions, please refer to the historical versions. | v3.0 and lower versions | +| `v4.0` | Merged SRGF, added support for Zenless Zone Zero gacha format | v4.0 | + +## Preface + +In order to unify the import and export behavior of gacha records across different applications, games, and accounts, we have decided to merge all supported game gacha formats into UIGF. Different games and accounts will be able to be represented as a single file or string, making the import and export operations unprecedentedly simple for users. + +## Implementation and Certification + +Implementing the import and export of the `UIGF v4.0 and higher versions` format does not mean that support for `UIGF v3.0 and lower versions` or `SRGF v1.0` should be removed. However, it is not recommended to use the same import and export logic for `UIGF v4.0 and higher versions` and `UIGF v3.0 and lower versions` or `SRGF v1.0`. + +Exporters can selectively fill in fields for each game or ignore them; importers can selectively read fields for each game or ignore them. + +To support a particular game, it is necessary to implement both data import and export functions, otherwise, certification cannot be passed. + +::: info UIGF Standard Use Statement +Please provide a hyperlink to [UIGF-Org](https://uigf.org) within the application, declaring support for the UIGF data format. + +Including only import or export functionality reduces the liquidity of user data and places the data at risk beyond the control of the user, which does not align with the original intention of UIGF-Org. +::: + +## Json Schema + +> UIGF-Org provides the following Json Schema to verify the correctness of the data structure. + +::: warning Note on Field Types +Developers must follow the field types defined in the Schema. Using incorrect types may cause errors when other tools written in strongly typed programming languages parse the Json file, leading to data transfer failures. + +To avoid such problems, we recommend designing a dedicated data structure for the UIGF format. Also, design relevant unit tests to ensure consistency in import and export. + +We also provide a [UIGF Format Validation Tool](https://schema.uigf.org/?schema=uigf) to help you verify the correctness of the data structure. +::: + +```json +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "export_timestamp": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "The timestamp of the export, in seconds" + }, + "export_app": { + "type": "string", + "description": "The name of the application that exported the archive" + }, + "export_app_version": { + "type": "string", + "description": "The version of the app that exported the archive" + }, + "version": { + "type": "string", + "pattern": "^v\\d+\\.\\d+$", + "description": "The UIGF version of the exported archive, formatted as 'v{major}.{minor}', e.g., v4.0" + } + }, + "required": [ + "export_timestamp", + "export_app", + "export_app_version", + "version" + ] + }, + "hk4e": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "Time zone offset" + }, + "lang": { + "type": "string", + "description": "Language code", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uigf_gacha_type": { + "type": "string", + "description": "UIGF gacha type, used to distinguish between different gacha types that have the same pity calculation", + "enum": [ + "100", + "200", + "301", + "302", + "500" + ] + }, + "gacha_type": { + "type": "string", + "description": "Gacha type, returned by MiHoYo API", + "enum": [ + "100", + "200", + "301", + "302", + "400", + "500" + ] + }, + "item_id": { + "type": "string", + "description": "The internal ID of the item" + }, + "count": { + "type": "string", + "description": "The number of items, usually 1, returned by MiHoYo API" + }, + "time": { + "type": "string", + "description": "The local time in the timezone of the item being drawn" + }, + "name": { + "type": "string", + "description": "The name of the item, returned by MiHoYo API" + }, + "item_type": { + "type": "string", + "description": "The type of the item, returned by MiHoYo API" + }, + "rank_type": { + "type": "string", + "description": "The rank of the item, returned by MiHoYo API" + }, + "id": { + "type": "string", + "description": "The internal ID of the record, returned by MiHoYo API" + } + }, + "required": [ + "uigf_gacha_type", + "gacha_type", + "item_id", + "time", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + }, + "hkrpg": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "Time zone offset" + }, + "lang": { + "type": "string", + "description": "Language code", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gacha_id": { + "type": "string", + "description": "Gacha Pool ID" + }, + "gacha_type": { + "type": "string", + "description": "Gacha type", + "enum": [ + "1", + "2", + "11", + "12" + ] + }, + "item_id": { + "type": "string", + "description": "The internal ID of the item" + }, + "count": { + "type": "string", + "description": "The number of items, usually 1, returned by MiHoYo API" + }, + "time": { + "type": "string", + "description": "The local time in the timezone of the item being drawn" + }, + "name": { + "type": "string", + "description": "The name of the item, returned by MiHoYo API" + }, + "item_type": { + "type": "string", + "description": "The type of the item, returned by MiHoYo API" + }, + "rank_type": { + "type": "string", + "description": "The rank of the item, returned by MiHoYo API" + }, + "id": { + "type": "string", + "description": "The internal ID of the record, returned by MiHoYo API" + } + }, + "required": [ + "gacha_type", + "gacha_id", + "time", + "item_id", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + }, + "nap": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "Time zone offset" + }, + "lang": { + "type": "string", + "description": "Language code", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gacha_id": { + "type": "string", + "description": "Gacha Pool ID" + }, + "gacha_type": { + "type": "string", + "description": "Gacha type", + "enum": [ + "1", + "2", + "3", + "5" + ] + }, + "item_id": { + "type": "string", + "description": "The internal ID of the item" + }, + "count": { + "type": "string", + "description": "The number of items, usually 1, returned by MiHoYo API" + }, + "time": { + "type": "string", + "description": "The local time in the timezone of the item being drawn" + }, + "name": { + "type": "string", + "description": "The name of the item, returned by MiHoYo API" + }, + "item_type": { + "type": "string", + "description": "The type of the item, returned by MiHoYo API" + }, + "rank_type": { + "type": "string", + "description": "The rank of the item, returned by MiHoYo API" + }, + "id": { + "type": "string", + "description": "The internal ID of the record, returned by MiHoYo API" + } + }, + "required": [ + "gacha_type", + "item_id", + "time", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + } + }, + "required": [ + "info" + ] +} +``` diff --git a/docs/zh/standards/uigf-legacy-v4.0.md b/docs/zh/standards/uigf-legacy-v4.0.md new file mode 100644 index 00000000..d269960f --- /dev/null +++ b/docs/zh/standards/uigf-legacy-v4.0.md @@ -0,0 +1,434 @@ +--- +category: [标准化文档] +order: 8 +head: + - - meta + - name: keywords + content: 原神, 崩坏:星穹铁道, 绝区零, 抽卡, 抽卡记录, UIGF +tags: + - UIGF + - 抽卡记录 + - 原神 + - 崩坏:星穹铁道 + - 绝区零 +--- + +# 统一可交换抽卡记录标准 v4.0 +> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.0 + +::: warning 中断性更新警告 +`UIGF v4.0 及更高版本` 对于 `UIGF v3.0 及更低版本` 和 `SRGF v1.0` **不具备向下兼容性**。UIGF/SRGF 合作项目如需适配,需重新认证。 +::: + +::: warning 警告 +该标准已过时并归档,请查看 [UIGF 最新标准文档](./uigf.md)。 +::: + +## 更新记录 +| 版本 | 说明 | 兼容 | +|--------|---------------------|------------| +| `v3.0` | 低版本的更新日志请查看历史版本 | v3.0 及更低版本 | +| `v4.0` | 合并 SRGF,新增绝区零抽卡格式支持 | v4.0 | + +## 前言 + +为了统一不同应用、不同游戏、不同账号间的抽卡记录导入导出行为,我们决定将所有支持的游戏抽卡格式合并入 UIGF 中。不同的游戏、不同的账号将能够以单个文件或字符串的形式进行表示,导入与导出操作对用户而言将变得史无前例的简单。 + +## 实现与认证 + +实现 `UIGF v4.0 及更高版本`格式的导入导出并不意味着需要移除对 `UIGF v3.0 及更低版本`或 `SRGF v1.0` 的导入导出支持。但是,不建议对 `UIGF v4.0 和更高版本` 与 `UIGF v3.0 及更低版本`或 `SRGF v1.0` 使用同一套导入导出逻辑。 + +导出方可以选择性地填充针对每个游戏的字段或直接忽略;导入方可以选择性地读取针对每个游戏的字段或直接忽略。 + +针对对某一款游戏的支持,必须同时实现数据的导入和导出功能,否则将无法通过认证。 + +::: info UIGF 标准使用声明 +请在应用内提供跳转至 [UIGF-Org](https://uigf.org) 的超链接,声明支持 UIGF 数据格式。 + +仅包含导入或导出功能降低了用户数据的流通性,且将数据置于用户不可控的风险中,不符合 UIGF-Org 设计的初衷。 +::: + +## Json Schema + +> UIGF-Org 提供下述 Json Schema 以用于验证资料结构的正确性。 + +::: warning 注意字段类型 +开发者务必遵循 Schema 内定义的字段类型。使用错误的类型可能会导致其他由强类型编程语言编写的工具在解析 Json 文件时产生错误,进而导致数据转移失败。 + +为了避免这类问题,我们建议您针对 UIGF 格式设计专用的数据结构。同时,设计相关的单元测试以确保导入导出的一致性。 + +我们也提供 [UIGF 格式校验工具](https://schema.uigf.org/?schema=uigf)来帮助你校验 Json 文件。 +::: + +```json +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "export_timestamp": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "导出档案的时间戳,秒级" + }, + "export_app": { + "type": "string", + "description": "导出档案的 App 名称" + }, + "export_app_version": { + "type": "string", + "description": "导出档案的 App 版本" + }, + "version": { + "type": "string", + "pattern": "^v\\d+\\.\\d+$", + "description": "导出档案的 UIGF 版本号,格式为 'v{major}.{minor}',如 v4.0" + } + }, + "required": [ + "export_timestamp", + "export_app", + "export_app_version", + "version" + ] + }, + "hk4e": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "时区偏移,由米哈游 API 返回,若与服务器时区不同请注意 list 中 time 的转换" + }, + "lang": { + "type": "string", + "description": "语言代码", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uigf_gacha_type": { + "type": "string", + "description": "UIGF 卡池类型,用于区分卡池类型不同,但卡池保底计算相同的物品", + "enum": [ + "100", + "200", + "301", + "302", + "500" + ] + }, + "gacha_type": { + "type": "string", + "description": "卡池类型,米哈游 API 返回", + "enum": [ + "100", + "200", + "301", + "302", + "400", + "500" + ] + }, + "item_id": { + "type": "string", + "description": "物品的内部 ID" + }, + "count": { + "type": "string", + "description": "物品个数,一般为1,米哈游 API 返回" + }, + "time": { + "type": "string", + "description": "抽取物品时对应时区(timezone)下的当地时间" + }, + "name": { + "type": "string", + "description": "物品名称,米哈游 API 返回" + }, + "item_type": { + "type": "string", + "description": "物品类型,米哈游 API 返回" + }, + "rank_type": { + "type": "string", + "description": "物品等级,米哈游 API 返回" + }, + "id": { + "type": "string", + "description": "记录内部 ID,米哈游 API 返回" + } + }, + "required": [ + "uigf_gacha_type", + "gacha_type", + "item_id", + "time", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + }, + "hkrpg": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "时区偏移,由米哈游 API 返回,若与服务器时区不同请注意 list 中 time 的转换" + }, + "lang": { + "type": "string", + "description": "语言代码", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gacha_id": { + "type": "string", + "description": "卡池 Id" + }, + "gacha_type": { + "type": "string", + "description": "卡池类型", + "enum": [ + "1", + "2", + "11", + "12" + ] + }, + "item_id": { + "type": "string", + "description": "物品的内部 ID" + }, + "count": { + "type": "string", + "description": "物品个数,一般为1,米哈游 API 返回" + }, + "time": { + "type": "string", + "description": "抽取物品时对应时区(timezone)下的当地时间" + }, + "name": { + "type": "string", + "description": "物品名称,米哈游 API 返回" + }, + "item_type": { + "type": "string", + "description": "物品类型,米哈游 API 返回" + }, + "rank_type": { + "type": "string", + "description": "物品等级,米哈游 API 返回" + }, + "id": { + "type": "string", + "description": "记录内部 ID,米哈游 API 返回" + } + }, + "required": [ + "gacha_type", + "gacha_id", + "time", + "item_id", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + }, + "nap": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "UID" + }, + "timezone": { + "type": "integer", + "description": "时区偏移,由米哈游 API 返回,若与服务器时区不同请注意 list 中 time 的转换" + }, + "lang": { + "type": "string", + "description": "语言代码", + "enum": [ + "de-de", + "en-us", + "es-es", + "fr-fr", + "id-id", + "it-it", + "ja-jp", + "ko-kr", + "pt-pt", + "ru-ru", + "th-th", + "tr-tr", + "vi-vn", + "zh-cn", + "zh-tw" + ] + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "gacha_id": { + "type": "string", + "description": "卡池 Id" + }, + "gacha_type": { + "type": "string", + "description": "卡池类型", + "enum": [ + "1", + "2", + "3", + "5" + ] + }, + "item_id": { + "type": "string", + "description": "物品的内部 ID" + }, + "count": { + "type": "string", + "description": "物品个数,一般为1,米哈游 API 返回" + }, + "time": { + "type": "string", + "description": "抽取物品时对应时区(timezone)下的当地时间" + }, + "name": { + "type": "string", + "description": "物品名称,米哈游 API 返回" + }, + "item_type": { + "type": "string", + "description": "物品类型,米哈游 API 返回" + }, + "rank_type": { + "type": "string", + "description": "物品等级,米哈游 API 返回" + }, + "id": { + "type": "string", + "description": "记录内部 ID,米哈游 API 返回" + } + }, + "required": [ + "gacha_type", + "item_id", + "time", + "id" + ] + } + } + }, + "required": [ + "uid", + "timezone", + "list" + ] + } + } + }, + "required": [ + "info" + ] +} +``` From d63c93a90831281e3167e4b62cf3505dfa8e3397 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Thu, 7 Aug 2025 20:04:06 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=93=9D=20=E8=A1=A5=E5=85=85uigf4.1?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=80=A7=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en/standards/uigf.md | 4 +++- docs/zh/standards/uigf.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/en/standards/uigf.md b/docs/en/standards/uigf.md index 48b0f39d..6e49ea8c 100644 --- a/docs/en/standards/uigf.md +++ b/docs/en/standards/uigf.md @@ -25,7 +25,9 @@ tags: |---------|--------------------------------------------------------------------------------|-------------------------| | `v3.0` | For the update log of lower versions, please refer to the historical versions. | v3.0 and lower versions | | `v4.0` | Merged SRGF, added support for Zenless Zone Zero gacha format | v4.0 | -| `v4.1` | Added support for new gacha pool types introduced in Star Rail v3.4 release. | v4.1 | +| `v4.1` | Added support for new gacha pool types introduced in Star Rail v3.4 release. | v4.1/v4.0* | + +* For applications that do not need to handle Star Rail, v4.1 is compatible with v4.0. ## Preface diff --git a/docs/zh/standards/uigf.md b/docs/zh/standards/uigf.md index bf0ad7c6..ea6e9652 100644 --- a/docs/zh/standards/uigf.md +++ b/docs/zh/standards/uigf.md @@ -25,7 +25,9 @@ tags: |--------|---------------------|------------| | `v3.0` | 低版本的更新日志请查看历史版本 | v3.0 及更低版本 | | `v4.0` | 合并 SRGF,新增绝区零抽卡格式支持 | v4.0 | -| `v4.1` | 新增对星穹铁道 v3.4 版所引入的新的卡池类型的支持 | v4.1 | +| `v4.1` | 新增对星穹铁道 v3.4 版所引入的新的卡池类型的支持 | v4.1/v4.0* | + +* 对于无需处理星穹铁道的应用,v4.1 与 v4.0 兼容。 ## 前言