「解锁条件(unlocks)格式」:修訂間差異
小 (→总论) |
Sxy62146214(對話 | 貢獻) 小無編輯摘要 |
||
第1行: | 第1行: | ||
{{技术型}} | {{技术型}} | ||
* '''本页面内容保持孤立!''' | * '''本页面内容保持孤立!''' | ||
在本文件里并没有曲名,谱师之类的歌曲信息,请移步[[歌曲信息(songlist)格式]] | |||
如果想更改谱面本身,请移步[[谱面格式]] | |||
如果想更改曲包相关内容请移步[[曲包信息(packlist)格式]] | |||
== 总论 == | == 总论 == |
於 2018年9月13日 (四) 12:18 的修訂
此頁面本頁面為技術型隱藏頁面 |
- 本頁面內容保持孤立!
在本文件里並沒有曲名,譜師之類的歌曲信息,請移步歌曲信息(songlist)格式
如果想更改譜面本身,請移步譜面格式
如果想更改曲包相關內容請移步曲包信息(packlist)格式
總論
文件在\assets\songs下
打開文件大概是這樣的畫風:
{ "unlocks": [ { "songId": …, "ratingClass": …, "conditions": [ … ], … }, … ] } |
有點意思(笑)
整個文件以一個大括號和一個」unlocks」字符串開頭,大體結構如下
{ "unlocks":[ //all contents… ] }
細節解析
例子
{ "songId": "chronostasis", "ratingClass": 1, "conditions": [ { "type": 1, "song_id": "infinityheaven", "song_difficulty": 1, "grade": 0 }, { "type": 0, "credit": 80 } ] }
歸納
{ "songId": this.songname, "ratingClass": classNum, "conditions": [ { //condition 1 }, { //condition 2 } ] //end of condition(s) }
從上到下依次解析如下: songId (String):雙引號包含的字符串,代表了欲限定條件的歌曲名稱 至關重要,所引用歌曲對應譜面文件夾也必須是id名,不能出現非ASCII字符
ratingClass (int):代表了欲限定條件的歌曲難度,取值只能為0,1,2。 0為PST難度,1為PRS難度,2為FTR難度。
conditions:unlocks文件中的核心,以一對英文方括號包裹,每一個condition語句組以一對大括號包含。一個歌曲的一個難度可以有很多個condition語句組,它們之間以英文逗號分開。 每一個語句組中一定有一個type語句,根據type的取值不同,其中會有不同的呈現。
碎片型解鎖
{ "type": 0, "credit": frag_needed_to_unlock }
當type取0時,為碎片型解鎖。玩家需要花費fragment來開啟當前歌曲的遊玩權限。credit的取值是一個整數,代表了解鎖當前難度歌曲需要花費的fragments數量。
先行通過歌曲型解鎖
{ "type":1, "song_id": songname, "song_difficulty": difficulty, "grade": gradeNum }
type取1時,為先行通過歌曲型解鎖,玩家需要在其前置歌曲中達到相應要求。
song_id (String):指在遊玩本難度的歌曲時,需要先行通過的歌曲名稱,引用要求與songId相同。
song_difficulty (int):取值為0,1,2,與ratingClass含義相同。
grade (int):限定先行通過的歌曲名稱需要達到的評級,0為不限定,3為需要達到A。目前就出現了這兩個取值,其他不清楚。
特殊解鎖類型
{ "type": 101, "min": minNum, "max": maxNum }
type取101時,為特殊解鎖類型,通常用於解鎖神秘魔王歌曲。
min (int):解鎖anomaly失敗時獲得的最小進度數。
max (int):解鎖anomaly失敗時獲得的最大進度數。