条件
该页面展示的黑魔法均为在游戏内插入后的默认参数
条件判断 #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]