「解锁条件(unlocks)格式」:修訂間差異

出自Arcaea中文维基
→‎细节解析:​ 不要在代码里排版,没用!
行 73: 行 73:
  }
  }
 从上到下依次解析如下:
 从上到下依次解析如下:
songId (String):双引号包含的字符串,代表了欲限定条件的歌曲名称
*songId (String):双引号包含的字符串,代表了欲限定条件的歌曲名称 '''至关重要''',所引用歌曲对应谱面文件夹也必须是id名,不能出现非ASCII字符
    '''至关重要''',所引用歌曲对应谱面文件夹也必须是id名,不能出现非ASCII字符
*ratingClass (int):代表了欲限定条件的歌曲难度,取值只能为0,1,2 。0 为PST难度,1为PRS难度,2为FTR难度。
 
*conditions:unlocks文件中的核心,以一对英文方括号包裹,每一个condition语句组以一对大括号包含。一个歌曲的一个难度可以有很多个condition语句组,它们之间以英文逗号分开。
ratingClass (int):代表了欲限定条件的歌曲难度,取值只能为0,1,2
  0 为PST难度,1为PRS难度,2为FTR难度。
 
conditions:unlocks文件中的核心,以一对英文方括号包裹,每一个condition语句组以一对大括号包含。一个歌曲的一个难度可以有很多个condition语句组,它们之间以英文逗号分开。
 每一个语句组中一定有一个type语句,根据type的取值不同,其中会有不同的呈现。
 每一个语句组中一定有一个type语句,根据type的取值不同,其中会有不同的呈现。


行 99: 行 95:
  }
  }
type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。
type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。
 
*song_id (String):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。
song_id (String):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。
*song_difficulty (int):取值为0,1,2,与ratingClass含义相同。
 
*grade (int):限定先行通过的歌曲名称需要达到的评级,0为不限定,1为达到C,2为达到B,3为达到A,4为达到AA,5为达到EX。
song_difficulty (int):取值为0,1,2,与ratingClass含义相同。
 
grade (int):限定先行通过的歌曲名称需要达到的评级,0为不限定,1为达到C,2为达到B,3为达到A,4为达到AA,5为达到EX。


====特殊解锁类型====
====特殊解锁类型====
行 114: 行 107:
  }
  }
type取101时,为特殊解锁类型,通常用于解锁神秘<s>魔王</s>歌曲。
type取101时,为特殊解锁类型,通常用于解锁神秘<s>魔王</s>歌曲。
 
*min (int):解锁anomaly失败时获得的最小进度数。
min (int):解锁anomaly失败时获得的最小进度数。
*max (int):解锁anomaly失败时获得的最大进度数。
 
max (int):解锁anomaly失败时获得的最大进度数。

於 2019年6月4日 (二) 07:46 的修訂

  • 本頁面內容保持孤立!

在本文件里並沒有曲名,譜師之類的歌曲信息,請移步歌曲信息(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為不限定,1為達到C,2為達到B,3為達到A,4為達到AA,5為達到EX。

特殊解鎖類型

{
   "type": 101,
   "min": minNum,
   "max": maxNum
}

type取101時,為特殊解鎖類型,通常用於解鎖神秘魔王歌曲。

  • min (int):解鎖anomaly失敗時獲得的最小進度數。
  • max (int):解鎖anomaly失敗時獲得的最大進度數。