隨機遊戲篩選
Vnite 支援為隨機遊戲功能配置自訂篩選規則,你可以在 設定-進階-隨機遊戲篩選配置 中直接編輯 JSON。配置生效後,隨機遊戲只會從符合規則的遊戲中抽取。
TIP
建議優先使用右上角的 預設配置 生成範本,再按需修改。
預設配置
目前內建了三組預設,適合用來快速起步:
預設:僅保留gameNameNot黑名單篩選遊玩狀態:按遊玩狀態篩選,並保留黑名單篩選收藏:按收藏篩選,並保留黑名單
基本結構
篩選規則採用遞迴物件結構表示,每一層物件都遵循統一約束:
- 物件必須且僅包含一個鍵
- 鍵名表示操作符
- 鍵值表示該操作符的操作對象
形式如下:
json
{
"<operator>": <value>
}該結構可以遞迴巢狀,從而表達複雜邏輯。
NOTE
根節點必須為單一操作符物件,例如:
json
{ "and": [...] }下面這種寫法不合法:
json
{ "and": [...], "or": [...] }可用操作符
邏輯與 and
- 值必須為陣列
- 陣列中的每一項都必須是一個合法規則物件
- 所有子條件都必須滿足
json
{
"and": [{ "inCollection": ["A"] }, { "gameNameNot": ["game1"] }]
}邏輯或 or
- 值必須為陣列
- 陣列中的每一項都必須是一個合法規則物件
- 任一子條件滿足即可
json
{
"or": [{ "inCollection": ["A"] }, { "playStatusIs": ["playing"] }]
}邏輯非 not
- 值必須是單個規則物件
- 表示對該規則取反
json
{
"not": {
"playStatusIs": ["finished"]
}
}inCollection
用於篩選收藏名稱,值為字串陣列,每個元素為一個收藏名稱。
json
{
"inCollection": ["collection1", "collection2"]
}gameNameNot
用於排除指定遊戲,值為字串陣列,每個元素為一個遊戲名稱。該規則會同時匹配遊戲目前名稱與原名。
json
{
"gameNameNot": ["GameA", "GameB"]
}playStatusIs
用於篩選遊玩狀態,值為字串陣列,每個元素為一個遊玩狀態名。
json
{
"playStatusIs": ["finished", "multiple"]
}可選值說明:
"unplayed":未開始"playing":遊玩中"partial":部分完成"finished":已完成"multiple":多周目"shelved":擱置中
示例
預設配置
預設情況下不會排除任何遊戲:
json
{
"gameNameNot": []
}篩選遊玩狀態時保留全域黑名單
json
{
"and": [
{ "playStatusIs": ["playing"] },
{ "gameNameNot": ["game1", "game2"] }
]
}針對每個收藏精細化篩選
json
{
"or": [
{
"and": [
{ "inCollection": ["TODO"] },
{ "playStatusIs": ["unplayed", "playing"] }
]
},
{
"and": [
{ "inCollection": ["good1", "good2"] },
{ "playStatusIs": ["finished", "multiple", "partial"] }
]
}
]
}