Skip to content

隨機遊戲篩選

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"] }
      ]
    }
  ]
}