From 0cb12c5bd3be642284c690aea526b60a1cf64a51 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sun, 29 Mar 2026 20:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0=E6=B7=B1?= =?UTF-8?q?=E6=B8=8A=E3=80=81=E5=89=A7=E8=AF=97=E3=80=81=E5=8D=B1=E6=88=98?= =?UTF-8?q?=20JSON=20Schema=20=E9=AA=8C=E8=AF=81=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/Hutao/schema/abyss.json | 254 ++++++++++++++++++ src/plugins/Hutao/schema/challenge.json | 270 +++++++++++++++++++ src/plugins/Hutao/schema/combat.json | 330 ++++++++++++++++++++++++ 3 files changed, 854 insertions(+) create mode 100644 src/plugins/Hutao/schema/abyss.json create mode 100644 src/plugins/Hutao/schema/challenge.json create mode 100644 src/plugins/Hutao/schema/combat.json diff --git a/src/plugins/Hutao/schema/abyss.json b/src/plugins/Hutao/schema/abyss.json new file mode 100644 index 00000000..84e70a57 --- /dev/null +++ b/src/plugins/Hutao/schema/abyss.json @@ -0,0 +1,254 @@ +{ + "type": "object", + "properties": { + "uid": { + "type": "string", + "title": "用户 UID", + "description": "游戏 UID" + }, + "schedule_id": { + "type": "number", + "title": "周期 ID", + "description": "深渊期数 ID" + }, + "data": { + "type": "object", + "properties": { + "schedule_id": { + "type": "number", + "title": "周期 ID" + }, + "start_time": { + "type": "string", + "title": "开始时间戳", + "description": "秒级时间戳" + }, + "end_time": { + "type": "string", + "title": "结束时间戳", + "description": "秒级时间戳" + }, + "total_battle_times": { + "type": "number", + "title": "战斗次数" + }, + "total_win_times": { + "type": "number", + "title": "胜利次数" + }, + "max_floor": { + "type": "string", + "title": "最大楼层" + }, + "total_star": { + "type": "number", + "title": "总星数" + }, + "is_unlock": { + "type": "boolean", + "title": "是否解锁" + }, + "is_just_skipped_floor": { + "type": "boolean", + "title": "是否有跳过楼层" + }, + "skipped_floor": { + "type": "string", + "title": "跳过楼层" + }, + "reveal_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "defeat_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "damage_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "take_damage_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "normal_skill_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "energy_skill_rank": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + } + }, + "floors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "index": { "type": "number" }, + "icon": { "type": "string" }, + "is_unlock": { "type": "boolean" }, + "settle_time": { "type": "string" }, + "star": { "type": "number" }, + "max_star": { "type": "number" }, + "ley_line_disorder": { + "type": "array", + "items": { "type": "string" } + }, + "settle_date_time": { + "type": ["object", "null"], + "properties": { + "year": { "type": "number" }, + "month": { "type": "number" }, + "day": { "type": "number" }, + "hour": { "type": "number" }, + "minute": { "type": "number" }, + "second": { "type": "number" } + } + }, + "levels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "index": { "type": "number" }, + "star": { "type": "number" }, + "max_star": { "type": "number" }, + "battles": { + "type": "array", + "items": { + "type": "object", + "properties": { + "index": { "type": "number" }, + "timestamp": { "type": "string" }, + "settle_date_time": { + "type": "object", + "properties": { + "year": { "type": "number" }, + "month": { "type": "number" }, + "day": { "type": "number" }, + "hour": { "type": "number" }, + "minute": { "type": "number" }, + "second": { "type": "number" } + } + }, + "avatars": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "number" }, + "icon": { "type": "string" }, + "level": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["id", "level", "rarity"] + } + } + }, + "required": ["index", "timestamp", "avatars", "settle_date_time"] + } + }, + "top_half_floor_monster": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "icon": { "type": "string" }, + "level": { "type": "number" } + }, + "required": ["name", "level"] + } + }, + "bottom_half_floor_monster": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "icon": { "type": "string" }, + "level": { "type": "number" } + }, + "required": ["name", "level"] + } + } + }, + "required": ["index", "star", "max_star", "battles"] + } + } + }, + "required": ["index", "is_unlock", "star", "max_star", "levels"] + } + } + }, + "required": [ + "schedule_id", + "start_time", + "end_time", + "total_battle_times", + "total_win_times", + "max_floor", + "total_star", + "is_unlock", + "floors" + ] + } + }, + "required": ["uid", "schedule_id", "data"], + "title": "深境螺旋数据 Schema" +} diff --git a/src/plugins/Hutao/schema/challenge.json b/src/plugins/Hutao/schema/challenge.json new file mode 100644 index 00000000..50676365 --- /dev/null +++ b/src/plugins/Hutao/schema/challenge.json @@ -0,0 +1,270 @@ +{ + "type": "object", + "properties": { + "uid": { + "type": "string", + "title": "用户 UID", + "description": "游戏 UID" + }, + "schedule_id": { + "type": "number", + "title": "周期 ID", + "description": "危战期数 ID" + }, + "start_time": { + "type": "string", + "title": "开始时间戳", + "description": "秒级时间戳" + }, + "end_time": { + "type": "string", + "title": "结束时间戳", + "description": "秒级时间戳" + }, + "name": { + "type": "string", + "title": "挑战名称" + }, + "single": { + "type": "object", + "properties": { + "best": { + "type": "object", + "properties": { + "difficulty": { "type": "number" }, + "second": { "type": "number" }, + "icon": { "type": "string" } + }, + "required": ["difficulty", "second", "icon"] + }, + "challenge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "second": { "type": "number" }, + "teams": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "name": { "type": "string" }, + "element": { "type": "string" }, + "image": { "type": "string" }, + "level": { "type": "number" }, + "rarity": { "type": "number" }, + "rank": { "type": "number" } + }, + "required": ["avatar_id", "name", "element"] + } + }, + "best_avatar": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "side_icon": { "type": "string" }, + "dps": { "type": "string" }, + "type": { "type": "number" } + }, + "required": ["avatar_id", "side_icon", "dps", "type"] + } + }, + "monster": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "level": { "type": "number" }, + "icon": { "type": "string" }, + "desc": { + "type": "array", + "items": { "type": "string" } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "desc": { "type": "string" } + }, + "required": ["type", "desc"] + } + }, + "monster_id": { "type": "number" } + }, + "required": ["name", "level", "icon", "desc"] + } + }, + "required": ["name", "second", "teams", "best_avatar", "monster"] + } + }, + "has_data": { "type": "boolean" } + }, + "required": ["best", "challenge", "has_data"] + }, + "mp": { + "type": "object", + "properties": { + "best": { + "type": "object", + "properties": { + "difficulty": { "type": "number" }, + "second": { "type": "number" }, + "icon": { "type": "string" } + }, + "required": ["difficulty", "second", "icon"] + }, + "challenge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "second": { "type": "number" }, + "teams": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "name": { "type": "string" }, + "element": { "type": "string" }, + "image": { "type": "string" }, + "level": { "type": "number" }, + "rarity": { "type": "number" }, + "rank": { "type": "number" } + }, + "required": ["avatar_id", "name", "element"] + } + }, + "best_avatar": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "side_icon": { "type": "string" }, + "dps": { "type": "string" }, + "type": { "type": "number" } + }, + "required": ["avatar_id", "side_icon", "dps", "type"] + } + }, + "monster": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "level": { "type": "number" }, + "icon": { "type": "string" }, + "desc": { + "type": "array", + "items": { "type": "string" } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "desc": { "type": "string" } + }, + "required": ["type", "desc"] + } + }, + "monster_id": { "type": "number" } + }, + "required": ["name", "level", "icon", "desc"] + } + }, + "required": ["name", "second", "teams", "best_avatar", "monster"] + } + }, + "has_data": { "type": "boolean" } + }, + "required": ["best", "challenge", "has_data"] + }, + "blings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "name": { "type": "string" }, + "element": { "type": "string" }, + "image": { "type": "string" }, + "side_icon": { "type": "string" }, + "rarity": { "type": "number" }, + "is_plus": { "type": "boolean" } + }, + "required": ["avatar_id", "name", "element", "image", "side_icon", "rarity"] + } + }, + "data": { + "type": "object", + "properties": { + "schedule": { + "type": "object", + "properties": { + "schedule_id": { "type": "string" }, + "start_time": { "type": "string" }, + "end_time": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["schedule_id", "start_time", "end_time", "name"] + }, + "single": { + "type": "object", + "properties": { + "best": { + "type": "object", + "properties": { + "difficulty": { "type": "number" }, + "second": { "type": "number" }, + "icon": { "type": "string" } + }, + "required": ["difficulty", "second", "icon"] + }, + "challenge": { "type": "array" }, + "has_data": { "type": "boolean" } + }, + "required": ["best", "challenge", "has_data"] + }, + "mp": { + "type": "object", + "properties": { + "best": { + "type": "object", + "properties": { + "difficulty": { "type": "number" }, + "second": { "type": "number" }, + "icon": { "type": "string" } + }, + "required": ["difficulty", "second", "icon"] + }, + "challenge": { "type": "array" }, + "has_data": { "type": "boolean" } + }, + "required": ["best", "challenge", "has_data"] + }, + "blings": { "type": "array" } + }, + "required": ["schedule", "single", "mp", "blings"] + } + }, + "required": [ + "uid", + "schedule_id", + "start_time", + "end_time", + "name", + "single", + "mp", + "blings", + "data" + ], + "title": "幽境危战数据 Schema" +} diff --git a/src/plugins/Hutao/schema/combat.json b/src/plugins/Hutao/schema/combat.json new file mode 100644 index 00000000..04e41f53 --- /dev/null +++ b/src/plugins/Hutao/schema/combat.json @@ -0,0 +1,330 @@ +{ + "type": "object", + "properties": { + "uid": { + "type": "string", + "title": "用户 UID", + "description": "游戏 UID" + }, + "schedule_id": { + "type": "number", + "title": "周期 ID", + "description": "剧诗期数 ID" + }, + "start_time": { + "type": "string", + "title": "开始时间戳", + "description": "秒级时间戳" + }, + "end_time": { + "type": "string", + "title": "结束时间戳", + "description": "秒级时间戳" + }, + "has_data": { + "type": "boolean", + "title": "是否有数据" + }, + "has_detail_data": { + "type": "boolean", + "title": "是否有详细数据" + }, + "stat": { + "type": "object", + "properties": { + "difficulty_id": { "type": "number" }, + "max_round_id": { "type": "number" }, + "heraldry": { "type": "number" }, + "get_medal_round_list": { + "type": "array", + "items": { "type": "number", "enum": [0, 1] } + }, + "medal_num": { "type": "number" }, + "coin_num": { "type": "number" }, + "avatar_bonus_num": { "type": "number" }, + "rent_cnt": { "type": "number" }, + "tarot_finished_cnt": { "type": "number" } + }, + "required": ["difficulty_id", "max_round_id", "heraldry", "get_medal_round_list", "medal_num"] + }, + "detail": { + "type": "object", + "properties": { + "rounds_data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatars": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_type": { "type": "number", "enum": [1, 2, 3] }, + "name": { "type": "string" }, + "element": { "type": "string" }, + "image": { "type": "string" }, + "level": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "avatar_type", "name", "element"] + } + }, + "choice_cards": { + "type": "array", + "items": { + "type": "object", + "properties": { + "icon": { "type": "string" }, + "name": { "type": "string" }, + "desc": { "type": "string" }, + "is_enhanced": { "type": "boolean" }, + "id": { "type": "number" } + }, + "required": ["icon", "name", "id"] + } + }, + "buffs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "icon": { "type": "string" }, + "level": { "type": "number" }, + "level_effect": { + "type": "array", + "items": { + "type": "object", + "properties": { + "icon": { "type": "string" }, + "name": { "type": "string" }, + "desc": { "type": "string" } + }, + "required": ["icon", "name", "desc"] + } + } + }, + "required": ["name", "icon", "level", "level_effect"] + } + }, + "is_get_medal": { "type": "boolean" }, + "round_id": { "type": "number" }, + "finish_time": { "type": "string" }, + "finish_date_time": { + "type": "object", + "properties": { + "year": { "type": "number" }, + "month": { "type": "number" }, + "day": { "type": "number" }, + "hour": { "type": "number" }, + "minute": { "type": "number" }, + "second": { "type": "number" } + }, + "required": ["year", "month", "day", "hour", "minute", "second"] + }, + "enemies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "icon": { "type": "string" }, + "level": { "type": "number" } + }, + "required": ["name", "level"] + } + }, + "splendour_buff": { + "type": "object", + "properties": { + "summary": { + "type": "object", + "properties": { + "total_level": { "type": "number" }, + "desc": { "type": "string" } + }, + "required": ["total_level", "desc"] + }, + "buffs": { "type": "array" } + }, + "required": ["summary", "buffs"] + }, + "is_tarot": { "type": "boolean" }, + "tarot_serial_no": { "type": "number" } + }, + "required": [ + "avatars", + "choice_cards", + "buffs", + "is_get_medal", + "round_id", + "finish_time", + "enemies", + "splendour_buff" + ] + } + }, + "detail_stat": { + "type": "object", + "properties": { + "difficulty_id": { "type": "number" }, + "max_round_id": { "type": "number" }, + "heraldry": { "type": "number" }, + "get_medal_round_list": { + "type": "array", + "items": { "type": "number", "enum": [0, 1] } + }, + "medal_num": { "type": "number" }, + "coin_num": { "type": "number" }, + "avatar_bonus_num": { "type": "number" }, + "rent_cnt": { "type": "number" }, + "tarot_finished_cnt": { "type": "number" } + }, + "required": [ + "difficulty_id", + "max_round_id", + "heraldry", + "get_medal_round_list", + "medal_num" + ] + }, + "lineup_link": { "type": "string" }, + "backup_avatars": { + "type": "array", + "items": { + "type": "object", + "properties": { + "avatar_id": { "type": "number" }, + "avatar_type": { "type": "number", "enum": [1, 2, 3] }, + "name": { "type": "string" }, + "element": { "type": "string" }, + "image": { "type": "string" }, + "level": { "type": "number" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "avatar_type", "name", "element"] + } + }, + "fight_statisic": { + "type": "object", + "properties": { + "max_defeat_avatar": { + "type": ["object", "null"], + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "string" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + }, + "max_damage_avatar": { + "type": ["object", "null"], + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "string" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + }, + "max_take_damage_avatar": { + "type": ["object", "null"], + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "string" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + }, + "total_coin_consumed": { + "type": ["object", "null"], + "properties": { + "avatar_id": { "type": "number" }, + "avatar_icon": { "type": "string" }, + "value": { "type": "string" }, + "rarity": { "type": "number" } + }, + "required": ["avatar_id", "value"] + }, + "shortest_avatar_list": { "type": "array" }, + "total_use_time": { "type": "number" }, + "is_show_battle_stats": { "type": "boolean" } + }, + "required": ["total_use_time", "is_show_battle_stats"] + } + }, + "required": ["rounds_data", "detail_stat", "backup_avatars", "fight_statisic"] + }, + "schedule": { + "type": "object", + "properties": { + "start_time": { "type": "string" }, + "end_time": { "type": "string" }, + "schedule_type": { "type": "number" }, + "schedule_id": { "type": "number" }, + "start_date_time": { + "type": "object", + "properties": { + "year": { "type": "number" }, + "month": { "type": "number" }, + "day": { "type": "number" }, + "hour": { "type": "number" }, + "minute": { "type": "number" }, + "second": { "type": "number" } + }, + "required": ["year", "month", "day", "hour", "minute", "second"] + }, + "end_date_time": { + "type": "object", + "properties": { + "year": { "type": "number" }, + "month": { "type": "number" }, + "day": { "type": "number" }, + "hour": { "type": "number" }, + "minute": { "type": "number" }, + "second": { "type": "number" } + }, + "required": ["year", "month", "day", "hour", "minute", "second"] + } + }, + "required": ["start_time", "end_time", "schedule_type", "schedule_id"] + }, + "data": { + "type": "object", + "properties": { + "detail": { "type": "object" }, + "stat": { "type": "object" }, + "schedule": { + "type": "object", + "properties": { + "start_time": { "type": "string" }, + "end_time": { "type": "string" }, + "schedule_type": { "type": "number" }, + "schedule_id": { "type": "number" } + }, + "required": ["start_time", "end_time", "schedule_type", "schedule_id"] + }, + "has_data": { "type": "boolean" }, + "has_detail_data": { "type": "boolean" } + }, + "required": ["detail", "stat", "schedule", "has_data", "has_detail_data"] + } + }, + "required": [ + "uid", + "schedule_id", + "start_time", + "end_time", + "has_data", + "has_detail_data", + "stat", + "detail", + "schedule", + "data" + ], + "title": "幻想真境剧诗数据 Schema" +}