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

出自Arcaea中文维基
無編輯摘要
 
第87行: 第87行:
}
}
</syntaxhighlight>
</syntaxhighlight>
 当type取0时,为残片型解锁。玩家需要花费残片来开启当前歌曲的游玩权限 。credit的取值是一个整数,代表了 解锁当前难度歌曲需要花费的残片数量。
 当type取0时,为残片型解锁。玩家需要花费残片来开启当前歌曲的游玩权限
*credit (int):指 解锁当前难度歌曲需要花费的残片数量。


 在该解锁条件情况下,花费残片后可以永久解锁对应谱面,意味着解锁后其他条件不满足 时对应谱面 不会锁 回去
 在该解锁条件情况下,花费残片后可以永久解锁对应谱面,意味着解锁 该难度 ,即使 其他条件不满足 ,也 不会 将难度回 锁。


====type 1:先行通过歌曲型解锁====
====type 1:先行通过歌曲型解锁====
第102行: 第103行:
type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。
type取1时,为先行通过歌曲型解锁,玩家需要在其前置歌曲中达到相应要求。
*song_id (string):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。
*song_id (string):指在游玩本难度的歌曲时,需要先行通过的歌曲名称,引用要求与songId相同。
*song_difficulty (int):取值为0 ,1,2 ,与ratingClass含义相同。
*song_difficulty (int):取值为0/1/2/3/4 ,与ratingClass含义相同。
*grade (int):限定先行通过的歌曲需要达到的评级 ,0为 不限定 ,1为达到C,2为达到B,3为达到A,4为达到AA,5为达到EX,6为达到EX+
*grade (int):限定先行通过的歌曲需要达到的评级 ,数字对应条件见下表。
{| class="wikitable" style="text-align:center"
! 条件
! 评级
|-
| 0
不限定
|-
| 1
| C
|-
| 2
| B
|-
| 3
| A
|-
| 4
| AA
|-
| 5
| EX
|-
| 6
| EX+
|}


====type 2:先行游玩歌曲型解锁====
====type 2:先行游玩歌曲型解锁====
第113行: 第139行:
}
}
</syntaxhighlight>
</syntaxhighlight>
type取2时,为先行游玩歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过对应结果为游玩相应曲目即可 。变量不再赘述
type取2时,为先行游玩歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过对应结果为游玩相应曲目即可。


====type 3:多次通过歌曲型解锁====
====type 3:多次通过歌曲型解锁====
第127行: 第153行:
type取3时,为多次通过歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过需要多次通过相应曲目并达到给定评级。
type取3时,为多次通过歌曲型解锁,与[[#先行通过歌曲型解锁|先行通过歌曲型解锁]]类似,不过需要多次通过相应曲目并达到给定评级。
*times (int):指先行通过的歌曲需要达到限定评级的次数。
*times (int):指先行通过的歌曲需要达到限定评级的次数。
其他变量不再赘述。


====type 4:选择任务型解锁====
====type 4:选择任务型解锁====
第168行: 第193行:
*rating (int):指限定的游玩等级。
*rating (int):指限定的游玩等级。
*ratingPlus (boolean):可以不存在于条件内,用来设定等级的“+”,true为设定,false为不设定,该语句不存在于条件内时默认为false。
*ratingPlus (boolean):可以不存在于条件内,用来设定等级的“+”,true为设定,false为不设定,该语句不存在于条件内时默认为false。
===type 7:先行解锁对应曲目难度型解锁====
<syntaxhighlight lang="json">
{
   "type": 7,
   "song_id": "songname",
   "song_difficulty": difficulty
}
</syntaxhighlight>
type取7时,为先行解锁对应曲目难度型解锁,与[[#先行游玩歌曲型解锁|先行游玩歌曲型解锁]]相似,不过只需要解锁曲目的对应难度,不需要游玩曲目。


====type 101:特殊解锁类型====
====type 101:特殊解锁类型====
第195行: 第230行:
type取103时,为搭档解锁类型。目前仅有[[Aegleseeker]]和[[Arghena]]出现此种解锁方式。
type取103时,为搭档解锁类型。目前仅有[[Aegleseeker]]和[[Arghena]]出现此种解锁方式。


 除 演出 曲目[[Aegleseeker]]外,在普通曲目上使用该解锁类型会导致使用对应搭档游玩结束并返回到选曲界面后'''切换为其他搭档后对应曲目不显示曲绘和曲目信息'''(但可正常选择该曲目进入游戏)。 <ref group="参考资料">[https://gist.github.com/Misaka12456/1f815a81e4b2794f6c9af9dfdc29794a GitHub Gist:Misaka12456/Arcaea 曲目解锁条件 - 非异象曲目的搭档解锁条件测试]</ref><br>
 除曲目[[Aegleseeker]]和[[Arghena]]外,在普通曲目上使用该解锁类型会导致使用对应搭档游玩结束并返回到选曲界面后'''切换为其他搭档后对应曲目不显示曲绘和曲目信息'''(但可正常选择该曲目进入游戏)。 <ref group="参考资料">[https://gist.github.com/Misaka12456/1f815a81e4b2794f6c9af9dfdc29794a GitHub Gist:Misaka12456/Arcaea 曲目解锁条件 - 非异象曲目的搭档解锁条件测试]</ref><br>
解锁[[Arghena]]时,需要使用搭档[[摩耶]]才能继续进行挑战
*id (int): 该曲解锁时所需的[[搭档]]('''此处值不可为-1'''),数字对应[[搭档]]见下
*id (int): 该曲解锁时所需的[[搭档]]('''此处值不可为-1'''),数字对应[[搭档]]见下
{{搭档编号列表}}
{{搭档编号列表}}
第217行: 第251行:
}
}
</syntaxhighlight>
</syntaxhighlight>
type取105时,为搭档 剧情 解锁类型 (存疑) ,目前仅有Last|Eternity<ref>不是Last或Last|Moment,从unlocks和songlist文件可以看出其实lasteternity是有别于last的另一个id,而Last|Moment只是和PRAGMATISM -RESURRECTION-一样的Beyond难度特殊名称</ref>的byd难度存在该解锁条件。
type取105时,为搭档 技能 解锁类型,目前仅有Last|Eternity<ref>不是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作用相同,此处不再赘述。
*awakened (boolean)、inverted (boolean): 当搭档技能为觉醒技能/未觉醒技能时是否显示该难度,true为显示,false为不显示。
*awakened (boolean)、inverted (boolean): 当搭档技能为觉醒技能/未觉醒技能时是否显示该难度,true为显示,false为不显示。

於 2024年4月27日 (六) 23:18 的最新修訂


在您查看以下內容之前,我們需要您回答我們提供的問題。
ABA型的三字符songid是?
已確認。

  • 本頁面內容保持孤立!

總論

文件在\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,3。0為PST難度,1為PRS難度,2為FTR難度,3為BYD難度。
  • conditions:unlocks文件中的核心,以一對英文方括號包裹,每一個condition語句組以一對大括號包含。一個歌曲的一個難度可以有很多個condition語句組,它們之間以英文逗號分開。[1]

每一個語句組中一定有一個type語句,根據type的取值不同,其中會有不同的呈現。

type 0:殘片型解鎖

{
    "type": 0,
    "credit": frag_needed_to_unlock
}

當type取0時,為殘片型解鎖。玩家需要花費殘片來開啟當前歌曲的遊玩權限。

  • credit (int):指解鎖當前難度歌曲需要花費的殘片數量。

在該解鎖條件情況下,花費殘片後可以永久解鎖對應譜面,意味着解鎖該難度後,即使其他條件不滿足,也不會將難度回鎖。

type 1:先行通過歌曲型解鎖

{
     "type": 1,    
     "song_id": songname,
     "song_difficulty": difficulty,
     "grade": gradeNum
}

type取1時,為先行通過歌曲型解鎖,玩家需要在其前置歌曲中達到相應要求。

  • song_id (string):指在遊玩本難度的歌曲時,需要先行通過的歌曲名稱,引用要求與songId相同。
  • song_difficulty (int):取值為0/1/2/3/4,與ratingClass含義相同。
  • grade (int):限定先行通過的歌曲需要達到的評級,數字對應條件見下表。
條件 評級
0 不限定
1 C
2 B
3 A
4 AA
5 EX
6 EX+

type 2:先行遊玩歌曲型解鎖

{
     "type": 2,    
     "song_id": songname,
     "song_difficulty": difficulty
}

type取2時,為先行遊玩歌曲型解鎖,與先行通過歌曲型解鎖類似,不過對應結果為遊玩相應曲目即可。

type 3:多次通過歌曲型解鎖

{
     "type": 3,    
     "song_id": "songname",
     "song_difficulty": difficulty,
     "grade": gradeNum,
     "times": timesNum
}

type取3時,為多次通過歌曲型解鎖,與先行通過歌曲型解鎖類似,不過需要多次通過相應曲目並達到給定評級。

  • times (int):指先行通過的歌曲需要達到限定評級的次數。

type 4:選擇任務型解鎖

{
     "type": 4,
     "conditions": [
     {
      //condition 1
     },
     {
      //condition 2
     }
  ]  //end of condition(s)
}

type取4時,為選擇任務型解鎖。其中conditions類似最外側的conditions,可填入不同的condition語句組。玩家只需挑選其中任意一個任務完成即可解鎖。套娃警告

type 5:個人遊玩潛力值型解鎖

{
     "type": 5,    
     "rating": PotentialNum
}

type取5時,為個人遊玩潛力值型解鎖,玩家需要取得或超過限定的潛力值即可解鎖。

  • rating (int):指限定的個人遊玩潛力值乘以100後的整數。可以隨便填,負數都行,但即使填負數在未登錄狀態下本條件仍然算未達成

type 6:多次通過對應等級歌曲型解鎖

{
     "type": 6,    
     "count": countNum,
     "rating": ratingNum,
     "ratingPlus": boolean
}

type取6時,為多次通過對應等級歌曲型解鎖,與多次通過歌曲型解鎖相似,不過需要多次通過相應等級的歌曲。

  • count (int):跟上文的多次通過歌曲型解鎖中的times同理。
  • rating (int):指限定的遊玩等級。
  • ratingPlus (boolean):可以不存在於條件內,用來設定等級的「+」,true為設定,false為不設定,該語句不存在於條件內時默認為false。

type 7:先行解鎖對應曲目難度型解鎖=

{
    "type": 7,
    "song_id": "songname",
    "song_difficulty": difficulty
}

type取7時,為先行解鎖對應曲目難度型解鎖,與先行遊玩歌曲型解鎖相似,不過只需要解鎖曲目的對應難度,不需要遊玩曲目。

type 101:特殊解鎖類型

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

type取101時,為特殊解鎖類型,通常用於解鎖異象曲/終末曲。

  • min (int):解鎖異象曲或終末曲失敗時獲得的最小進度數。
  • max (int):解鎖異象曲或終末曲失敗時獲得的最大進度數。

type 102:特殊挑戰類型

本類型不會在unlocks文件中出現,但是在本地記錄解鎖狀態的文件中可以發現本類型。
目前使用本類型解鎖條件的曲目有AegleseekerTestifyTempestissimo(包含解鎖前的四個挑戰與曲目本身的pst難度)


type 103:搭檔解鎖類型

{
    "type": 103,
    "id": int
}

type取103時,為搭檔解鎖類型。目前僅有AegleseekerArghena出現此種解鎖方式。

除曲目AegleseekerArghena外,在普通曲目上使用該解鎖類型會導致使用對應搭檔遊玩結束並返回到選曲界面後切換為其他搭檔後對應曲目不顯示曲繪和曲目信息(但可正常選擇該曲目進入遊戲)。 [參考資料 1]

  • id (int): 該曲解鎖時所需的搭檔(此處值不可為-1),數字對應搭檔見下
ID 對應搭檔
-1 不加
0
1 對立
2
3 薩菲亞
4 忘卻
5 光 & 對立(Reunion)
6 對立(Axium)
7 對立(Grievous Lady)
8
9 光 & 菲希卡
10 依莉絲
11 愛托
12 露娜
13 調
14 光(Zero)
15 光(Fracture)
16 光(夏日)
17 對立(夏日)
18 對立 & 托凜
19 彩夢
20 愛托 & 露娜(冬日)
21 柚梅
22 光 & 賽依娜
23 咲彌
24 對立 & 中二企鵝(Grievous Lady)
25 中二企鵝
26 榛名
27 諾諾
28 潘多拉涅墨西斯(MTA-XXX)
29 軒轅十四(MDA-21)
30 群願
31 光(Fantasia)
32 對立(Sonata)
33 兮婭
34 DORO*C
35 對立(Tempest)
36 布麗蘭特
37 依莉絲(夏日)
38 咲彌(Etude)
39 愛麗絲 & 坦尼爾
40 露娜 & 美亞
41 阿萊烏斯
42 希爾
43 伊莎貝爾
44 迷爾
45 拉格蘭Icon Smartphone.png白姬Icon Nintendo switch.png
46 凜可
47 奈美
48 咲彌 & 伊莉莎白
49 莉莉
50 群願(盛夏)
51 愛麗絲 & 坦尼爾(Minuet)
52 對立(Elegy)
53 瑪莉嘉
54 維塔
55 光(Fatalis)
56 咲姬
57 剎那
58 天音
59 紅(冬日)
60 拉格蘭(Aria)
61 忘卻(Apophenia)
62 霞瑪(大~宇~宙))
63 米露可(大~宇~宙)
64 紫黑
65 百合咲美香
66 密特拉·泰爾塞拉
67 不來方永愛
68 奈美(暮光)
69 Ilith & Ivy
70 Hikari & Vanessa
71 摩耶
72 洞燭(至高:第八探索者)
73 露恩
74 維塔(Cadenza)
75 Ai醬
99 白姬Icon Smartphone.png拉格蘭Icon Nintendo switch.png

type 104:劇情解鎖類型

{
    "type": 104
}

type取104時,通常不會有其他語句一起存在,但type 104出現且僅出現於Final Verdict及其附加內容Silent Answer的所有曲目中(開門曲Defection除外)

type 105:搭檔技能解鎖類型

{
    "type": 105,
    "char_id": int,
    "awakened": boolean,
    "inverted": boolean
}

type取105時,為搭檔技能解鎖類型,目前僅有Last|Eternity[2]的byd難度存在該解鎖條件。

  • char_id (int): 和type103的id作用相同,此處不再贅述。
  • awakened (boolean)、inverted (boolean): 當搭檔技能為覺醒技能/未覺醒技能時是否顯示該難度,true為顯示,false為不顯示。

type 106:綁定譜面解鎖類型

{
    "type": 106,
    "song_id": string,
    "song_difficulty": int,
    "inverted": boolean
}

type取106時,為綁定譜面解鎖類型(存疑),目前僅有Last的byd難度(即Last|Moment)存在該解鎖條件。

  • song_id (string): 曲目的songid。
  • song_difficulty (int): 捆綁曲目的難度。
  • inverted (boolean): 當搭檔技能為未覺醒技能時是否顯示該難度,true為顯示,false為不顯示。

type 107:解謎解鎖類型

{
    "type": 107
}

type取107時,為Magnolia的解謎挑戰,當且僅當玩家購買了所在曲包時挑戰才會生效。在完成本挑戰前,歌曲將不展示曲封、不播放預覽音樂,具體挑戰內容請查看單曲頁面。

type 108:故事解鎖類型

{
    "type": 108
}

type取108時,為故事解鎖類型。目前僅有Arghena使用了本解鎖條件,在未完成挑戰前,餘下的解鎖挑戰將不會顯示。

type 109:特殊解謎挑戰類型

{
     "type": 109,
     "index": int,
     "difficulty": int
},

type取109時,為特殊解謎挑戰類型。目前僅有Arghena使用了本解鎖條件。

  • index (int): 解謎項目的索引(存疑)。
  • difficulty (int): 曲目難度。

type 110:偽段位挑戰類型

{
     "type": 110
},

type取110時,為偽段位挑戰類型。目前僅有Arghena使用了本解鎖條件。與常規的段位挑戰類似但是允許暫停。

參考資料

注釋

  1. 一個conditions內可以有多條相同的解鎖條件,並且每個解鎖條件都會單獨判斷(例如Memory Archive中的右側警示解鎖難度所需的歌曲,曲目選擇頁面中會實時漸變切換的解鎖條件等等)
  2. 不是Last或Last|Moment,從unlocks和songlist文件可以看出其實lasteternity是有別於last的另一個id,而Last|Moment只是和PRAGMATISM -RESURRECTION-一樣的Beyond難度特殊名稱