解锁条件(unlocks)格式

来自Arcaea中文维基
Jason0403讨论 | 贡献2018年9月13日 (四) 11:59的版本 (以“{{技术型}} * '''本页面内容保持孤立!''' == 总论 == 文件在\assets\songs下 打开文件大概是这样的画风: {| class="wikitable" |- | <now...”为内容创建页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
  • 本页面内容保持孤立!

总论

文件在\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失败时获得的最大进度数。