Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

条件

该页面展示的黑魔法均为在游戏内插入后的默认参数

条件判断 #if

根据条件表达式的结果决定是否执行内部的指令序列。

类型一:变量条件 type: "var"

对变量的数值进行比较判断。

@[if] {
  "type": "var",
  "varOption": {
    "varId": "变量ID",
    "operation": "==",
    "varValue": 0
  }
}

参数说明:

参数说明可选值
type条件类型"var"
varOption.varId变量ID字符串形式的ID
varOption.operation比较操作符==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
varOption.varValue比较的数值数字

示例:

@[if] {
  "type": "var",
  "varOption": {
    "varId": "score",
    "operation": ">=",
    "varValue": 100
  }
}

类型二:开关条件 type: "switch"

对开关(布尔)变量进行判断。

@[if] {
  "type": "switch",
  "switchOption": {
    "varId": "开关ID",
    "operation": "==",
    "varValue": false
  }
}

参数说明:

参数说明可选值
type条件类型"switch"
switchOption.varId开关ID字符串形式的ID
switchOption.operation比较操作符==(等于)、!=(不等于)
switchOption.varValue比较的布尔值true / false

示例:

@[if] {
  "type": "switch",
  "switchOption": {
    "varId": "door_open",
    "operation": "==",
    "varValue": true
  }
}

省略写法(待补充)

使用简短的表达式语法,直接在双引号内写条件表达式:

@[if] "条件表达式"

表达式语法(已验证):

  • 变量引用:v:变量名
  • 比较操作符:已验证支持 ><>=<===
  • 逻辑运算符:&&(并且)在部分情况下可用
  • 逻辑运算符:||(或者)在部分情况下可用

表达式语法(未验证/存在问题):

  • 比较操作符:!=(不等于)- 测试无输出
  • 括号:() 用于分组 - 测试时同时输出 true 和 false(存在问题)

官方示例:

@[if] "v:傀儡x>16&&v:傀儡y<9"

已验证的示例:

@[if] "v:变量A>0"

@[if] "v:变量A>=3"

@[if] "v:变量A==3"

// 部分场景有效
@[if] "v:变量A>0&&v:变量B<10"

// 部分场景有效
@[if] "v:变量A>5||v:变量B>10"

未验证/存在问题的示例:

// 不等于
@[if] "v:变量A!=3"

// 括号分组
@[if] "(v:变量A>0&&v:变量A<10)||(v:变量B>0&&v:变量B<10)"

希望有大佬测试并补充。

随机条件 #if_random

随机决定是否执行后续指令。

@[if_random]

使用示例:

@[if_random]
  // 概率执行的指令
@[end_if]

否则执行 #else

#if 条件不满足时执行的指令序列。

@[else]

结束条件 #end_if

标记条件判断块的结束。

@[end_if]