Skip to content

Switch Node

Noogear edited this page Mar 16, 2026 · 2 revisions

多分支 (switch)

switch 节点根据变量值匹配分支,执行对应的节点列表。

基本格式

- switch: <variable>
  cases:
    <value1>:
      - # 匹配 value1 时执行的节点
    <value2>:
      - # 匹配 value2 时执行的节点
字段 类型 必填 说明
switch String 用于分支匹配的变量名
cases Map 分支映射,key 为匹配值,value 为节点列表

若无匹配分支,switch 不执行任何操作,继续后续流程。

支持的变量类型

类型 说明
枚举 按枚举名匹配(如 SWORDBOW
字符串 按字符串值匹配
整数 按 int 值匹配
长整数 按 long 值匹配
布尔 true / false 匹配
浮点数 按 double 值匹配

示例

武器类型分支

- switch: weaponType
  cases:
    SWORD:
      - action: "log"
        args: ["剑类武器"]
    BOW:
      - action: "log"
        args: ["弓类武器"]
    DAGGER:
      - action: "log"
        args: ["匕首类武器"]

分支中使用数学计算

- switch: weaponType
  cases:
    SWORD:
      - math: "{finalDmg} * 1.2"
        store: "finalDmg"
    BOW:
      - math: "{finalDmg} * 0.9"
        store: "finalDmg"
    DAGGER:
      - math: "{finalDmg} * 1.5"
        store: "finalDmg"

- action: "applyDamage"
  args: ["{finalDmg}"]

分支中执行多个节点

- switch: rank
  cases:
    VIP:
      - action: "sendMessage"
        args: ["欢迎 VIP 玩家!"]
      - math: "{reward} * 2"
        store: "reward"
    ADMIN:
      - action: "sendMessage"
        args: ["管理员已上线"]
      - action: "broadcastMessage"
        args: ["管理员 {name} 加入了游戏"]

Clone this wiki locally