2,320
个编辑
小 (使用代码高亮) |
|||
第8行: | 第8行: | ||
== 总论 == | == 总论 == | ||
文件在\assets\songs下 | 文件在<code>\assets\songs</code> 下 | ||
打开文件大概是这样的画风: | 打开文件大概是这样的画风: | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"unlocks": [ | "unlocks": [ | ||
{ | { | ||
第24行: | 第25行: | ||
… | … | ||
] | ] | ||
} | |||
</syntaxhighlight> | |||
整个文件以一个大括号和一个 | 整个文件以一个大括号和一个<code>unlocks</code> 字符串开头,大体结构如下 | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"unlocks":[ | "unlocks":[ | ||
//all contents… | |||
] | ] | ||
} | |||
</syntaxhighlight> | |||
===细节解析=== | ===细节解析=== | ||
例子 | 例子 | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"songId": "chronostasis", | "songId": "chronostasis", | ||
"ratingClass": 1, | "ratingClass": 1, | ||
第51行: | 第57行: | ||
} | } | ||
] | ] | ||
} | |||
</syntaxhighlight> | |||
归纳 | 归纳 | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"songId": this.songname, | "songId": this.songname, | ||
"ratingClass": classNum, | "ratingClass": classNum, | ||
第64行: | 第72行: | ||
} | } | ||
] //end of condition(s) | ] //end of condition(s) | ||
} | |||
</syntaxhighlight> | |||
从上到下依次解析如下: | 从上到下依次解析如下: | ||
*songId (String):双引号包含的字符串,代表了欲限定条件的歌曲名称。'''至关重要''',所引用歌曲对应谱面文件夹也必须是id名,不能出现非ASCII字符 | *songId (String):双引号包含的字符串,代表了欲限定条件的歌曲名称。'''至关重要''',所引用歌曲对应谱面文件夹也必须是id名,不能出现非ASCII字符 | ||
第72行: | 第81行: | ||
====type 0:残片型解锁==== | ====type 0:残片型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 0, | "type": 0, | ||
"credit": frag_needed_to_unlock | "credit": frag_needed_to_unlock | ||
} | |||
</syntaxhighlight> | |||
当type取0时,为残片型解锁。玩家需要花费残片来开启当前歌曲的游玩权限。credit的取值是一个整数,代表了解锁当前难度歌曲需要花费的残片数量。 | 当type取0时,为残片型解锁。玩家需要花费残片来开启当前歌曲的游玩权限。credit的取值是一个整数,代表了解锁当前难度歌曲需要花费的残片数量。 | ||
第82行: | 第92行: | ||
====type 1:先行通过歌曲型解锁==== | ====type 1:先行通过歌曲型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type":1, | "type":1, | ||
"song_id": songname, | "song_id": songname, | ||
"song_difficulty": difficulty, | "song_difficulty": difficulty, | ||
"grade": gradeNum | "grade": gradeNum | ||
} | |||
</syntaxhighlight> | |||
type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。 | type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。 | ||
*song_id (String):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。 | *song_id (String):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。 | ||
第94行: | 第106行: | ||
====type 2:先行游玩歌曲型解锁==== | ====type 2:先行游玩歌曲型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type":2, | "type":2, | ||
"song_id": songname, | "song_id": songname, | ||
"song_difficulty": difficulty | "song_difficulty": difficulty | ||
} | |||
</syntaxhighlight> | |||
type取2时,为先行游玩歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过对应结果为游玩相应曲目即可。变量不再赘述。 | type取2时,为先行游玩歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过对应结果为游玩相应曲目即可。变量不再赘述。 | ||
====type 3:多次通过歌曲型解锁==== | ====type 3:多次通过歌曲型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type":3, | "type":3, | ||
"song_id": songname, | "song_id": songname, | ||
第108行: | 第123行: | ||
"grade": gradeNum, | "grade": gradeNum, | ||
"times": timesNum | "times": timesNum | ||
} | |||
</syntaxhighlight> | |||
type取3时,为多次通过歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过需要多次通过相应曲目并达到给定评级。 | type取3时,为多次通过歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过需要多次通过相应曲目并达到给定评级。 | ||
*times (int):指先行通过的歌曲需要达到限定评级的次数。 | *times (int):指先行通过的歌曲需要达到限定评级的次数。 | ||
第114行: | 第130行: | ||
====type 4:选择任务型解锁==== | ====type 4:选择任务型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type":4, | "type":4, | ||
"conditions": [ | "conditions": [ | ||
第124行: | 第141行: | ||
} | } | ||
] //end of condition(s) | ] //end of condition(s) | ||
} | |||
</syntaxhighlight> | |||
type取4时,为选择任务型解锁。其中conditions类似最外侧的conditions,可填入不同的condition语句组。玩家只需挑选其中任意一个任务完成即可解锁。<s>套娃警告</s> | type取4时,为选择任务型解锁。其中conditions类似最外侧的conditions,可填入不同的condition语句组。玩家只需挑选其中任意一个任务完成即可解锁。<s>套娃警告</s> | ||
====type 5:个人游玩潜力值型解锁==== | ====type 5:个人游玩潜力值型解锁==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type":5, | "type":5, | ||
"rating": potentialNum | "rating": potentialNum | ||
} | |||
</syntaxhighlight> | |||
type取5时,为个人游玩潜力值型解锁,玩家需要取得或超过限定的潜力值即可解锁。 | type取5时,为个人游玩潜力值型解锁,玩家需要取得或超过限定的潜力值即可解锁。 | ||
*rating (int):指限定的个人游玩潜力值乘以100后的整数。<s>可以随便填,负数都行,但即使填负数在未登录状态下本条件仍然算未达成</s> | *rating (int):指限定的个人游玩潜力值乘以100后的整数。<s>可以随便填,负数都行,但即使填负数在未登录状态下本条件仍然算未达成</s> | ||
====type 101:特殊解锁类型==== | ====type 101:特殊解锁类型==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 101, | "type": 101, | ||
"min": minNum, | "min": minNum, | ||
"max": maxNum | "max": maxNum | ||
} | |||
</syntaxhighlight> | |||
type取101时,为特殊解锁类型,通常用于解锁异象曲/终末曲。 | type取101时,为特殊解锁类型,通常用于解锁异象曲/终末曲。 | ||
*min (int):解锁异象曲或终末曲失败时获得的最小进度数。 | *min (int):解锁异象曲或终末曲失败时获得的最小进度数。 | ||
第147行: | 第168行: | ||
====type 103:搭档解锁类型==== | ====type 103:搭档解锁类型==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 103, | "type": 103, | ||
"id": int | "id": int | ||
} | |||
</syntaxhighlight> | |||
type取103时,为搭档解锁类型。目前仅有[[Aegleseeker]]出现此种解锁方式。 | type取103时,为搭档解锁类型。目前仅有[[Aegleseeker]]出现此种解锁方式。 | ||
第159行: | 第181行: | ||
====type 104:剧情解锁类型==== | ====type 104:剧情解锁类型==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 104, | "type": 104, | ||
} | |||
</syntaxhighlight> | |||
type取104时,通常不会有其他语句一起存在,但type104出现且仅出现于[[Final Verdict]]及其附加内容[[Silent Answer]]的所有曲目中(开门曲[[Defection]]除外) | type取104时,通常不会有其他语句一起存在,但type104出现且仅出现于[[Final Verdict]]及其附加内容[[Silent Answer]]的所有曲目中(开门曲[[Defection]]除外) | ||
====type 105:搭档技能解锁类型==== | ====type 105:搭档技能解锁类型==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 105, | "type": 105, | ||
"char_id": int, | "char_id": int, | ||
"awakened": boolean, | "awakened": boolean, | ||
"inverted": boolean | "inverted": boolean | ||
} | |||
</syntaxhighlight> | |||
type取105时,为搭档剧情解锁类型(存疑),目前仅有Last|Eternity<ref group="注释">不是Last或Last|Moment,从unlocks和songlist文件可以看出其实lasteternity是有别于last的另一个id,而Last|Moment只是和PRAGMATISM -RESURRECTION-一样的Beyond难度特殊名称</ref>的byd难度存在该解锁条件。 | type取105时,为搭档剧情解锁类型(存疑),目前仅有Last|Eternity<ref group="注释">不是Last或Last|Moment,从unlocks和songlist文件可以看出其实lasteternity是有别于last的另一个id,而Last|Moment只是和PRAGMATISM -RESURRECTION-一样的Beyond难度特殊名称</ref>的byd难度存在该解锁条件。 | ||
*char_id (int): 和type103的id作用相同,此处不再赘述。 | *char_id (int): 和type103的id作用相同,此处不再赘述。 | ||
第178行: | 第202行: | ||
====type 106:绑定谱面解锁类型==== | ====type 106:绑定谱面解锁类型==== | ||
<syntaxhighlight lang="json"> | |||
{ | |||
"type": 106, | "type": 106, | ||
"song_id": string, | "song_id": string, | ||
"song_difficulty": int, | "song_difficulty": int, | ||
"inverted": boolean | "inverted": boolean | ||
} | |||
</syntaxhighlight> | |||
type取106时,为绑定谱面解锁类型(存疑),目前仅有Last的byd难度(即Last|Moment)存在该解锁条件。 | type取106时,为绑定谱面解锁类型(存疑),目前仅有Last的byd难度(即Last|Moment)存在该解锁条件。 | ||
*song_id (string): 曲目的songid。 | *song_id (string): 曲目的songid。 |