内建节点
Monoceros 提供 15 个核心节点和 6 个扩展节点域,共计 113 个动作节点。
核心节点
script
调用 Fluxon 脚本。
- id: run
type: script
script: action.combat.hit-feedback
| 参数 | 说明 |
|---|---|
script | 脚本 ID |
set
设置上下文变量。
- id: set-damage
type: set
key: damage
value: 10
| 参数 | 说明 |
|---|---|
key | 变量名 |
value | 变量值 |
log
输出日志到控制台。
- id: log-info
type: log
message: "工作流已执行"
| 参数 | 说明 |
|---|---|
message | 日志内容 |
wait
延迟执行,以 tick 为单位(1 tick = 50ms)。
- id: delay
type: wait
ticks: 20
| 参数 | 说明 |
|---|---|
ticks | 延迟的 tick 数 |
branch
条件分支,根据条件脚本的结果跳转到不同的工作流。
- id: check-health
type: branch
condition: condition.health-low
then-workflow: combat.heal
else-workflow: combat.attack
| 参数 | 说明 |
|---|---|
condition | 条件脚本 ID |
then-workflow | 条件为真时执行的工作流 |
else-workflow | 条件为假时执行的工作流 |
loop
循环迭代,对数据源中的每个元素执行工作流或脚本。
- id: iterate-players
type: loop
source: lastResult
item-key: player
index-key: i
workflow: region.notify-player
| 参数 | 默认值 | 说明 |
|---|---|---|
source | lastResult | 数据源变量名 |
item-key | - | 当前元素写入上下文的变量名 |
index-key | - | 当前索引写入上下文的变量名 |
workflow | - | 每次迭代执行的工作流 ID(与 script 二选一) |
script | - | 每次迭代执行的脚本 ID(与 workflow 二选一) |
sound
播放音效。
- id: play-ding
type: sound
sound: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 1.0
pitch: 1.5
| 参数 | 默认值 | 说明 |
|---|---|---|
sound | - | 音效名称 |
volume | 1.0 | 音量 |
pitch | 1.0 | 音调 |
tellraw
发送富文本消息给玩家,支持 & 颜色代码。
- id: notify
type: tellraw
message: "&a你已进入战斗区域!"
| 参数 | 说明 |
|---|---|
message | 消息内容,支持 & 颜色代码 |
regex
正则匹配,匹配结果写入上下文变量 regexMatch(布尔值)和 regexGroups(捕获组列表)。
- id: parse-input
type: regex
pattern: "^(\d+)-(\d+)$"
input: "{userInput}"
| 参数 | 说明 |
|---|---|
pattern | 正则表达式 |
input | 待匹配的输入字符串 |
匹配结果:
regexMatch:是否匹配成功(布尔值)regexGroups:捕获组列表
try-catch
异常捕获,分别指定正常执行、异常处理和最终执行的脚本。
- id: safe-exec
type: try-catch
try: action.risky-operation
catch: action.handle-error
finally: action.cleanup
| 参数 | 说明 |
|---|---|
try | 正常执行的脚本 ID |
catch | 异常时执行的脚本 ID |
finally | 无论是否异常都执行的脚本 ID |
input
等待玩家输入,超时后自动跳过。
- id: wait-input
type: input
timeout: 200
| 参数 | 默认值 | 说明 |
|---|---|---|
timeout | 200 | 超时时间(tick) |
玩家输入的内容会写入上下文变量供后续节点使用。
if-else
脚本级条件分支,根据条件脚本结果执行不同的脚本。
- id: check
type: if-else
condition: condition.is-vip
then: action.vip-reward
else: action.normal-reward
| 参数 | 说明 |
|---|---|
condition / if | 条件脚本 ID(两种写法等价) |
then | 条件为真时执行的脚本 ID |
else | 条件为假时执行的脚本 ID |
math
数学运算,结果写入上下文。
- id: calc
type: math
op: pow
a: 2
b: 10
| 参数 | 说明 |
|---|---|
op | 运算类型 |
a | 第一个操作数 |
b | 第二个操作数(部分运算不需要) |
支持的运算类型:
| 运算 | 说明 | 需要 b |
|---|---|---|
abs | 绝对值 | 否 |
ceil | 向上取整 | 否 |
floor | 向下取整 | 否 |
round | 四舍五入 | 否 |
sqrt | 平方根 | 否 |
pow | 幂运算 | 是 |
min | 取较小值 | 是 |
max | 取较大值 | 是 |
random | 随机数(a 到 b) | 是 |
sin | 正弦 | 否 |
cos | 余弦 | 否 |
tan | 正切 | 否 |
log | 自然对数 | 否 |
log10 | 常用对数 | 否 |
coerce
数值约束,对值进行范围限制或格式化。
- id: clamp-damage
type: coerce
value: "{damage}"
op: in
min: 0
max: 100
| 参数 | 说明 |
|---|---|
value | 待约束的值 |
op | 约束类型 |
min | 最小值(in / at-least 时使用) |
max | 最大值(in / at-most 时使用) |
decimals | 小数位数(format 时使用) |
支持的约束类型:
| 类型 | 说明 |
|---|---|
in | 限制在 min 到 max 范围内 |
at-least | 不低于 min |
at-most | 不超过 max |
format | 格式化为指定小数位数 |
dispatch
分发执行,调用其他工作流、脚本或事件分发器。三个参数三选一。
- id: trigger
type: dispatch
workflow: combat.finisher
| 参数 | 说明 |
|---|---|
workflow | 工作流 ID(三选一) |
script | 脚本 ID(三选一) |
dispatcher | 事件分发器 ID(三选一) |
扩展节点域
除核心节点外,Monoceros 还提供 6 个扩展节点域,覆盖实体操作、事件处理、物品管理等场景。
实体域(36 节点)
提供实体操作、位置计算和向量运算能力。
- 实体操作(7 节点):生成、移除、传送、骑乘等基础实体操作
- 位置操作(9 节点):坐标计算、距离测量、方向转换等
- 向量操作(20 节点):向量加减乘除、归一化、叉积、点积、旋转等
事件域(7 节点)
处理事件流中的事件对象。
| 节点 | 说明 |
|---|---|
cancel | 取消当前事件 |
ignore | 忽略当前事件 |
write | 写入事件属性 |
reply | 回复事件 |
cancelled | 检查事件是否已取消 |
name | 获取事件名称 |
wait | 等待事件触发 |
物品域(27 节点)
物品构建、修改和背包操作。
- 构建与修改(12 节点):创建物品、设置名称/Lore/NBT、克隆等
- 切换(1 节点):物品类型切换
- 药水(5 节点):药水效果的添加、移除、查询
- 附魔(5 节点):附魔的添加、移除、查询、等级操作
- 背包(4 节点):背包物品的添加、移除、查询、清空
记忆域(5 节点)
键值存储,支持多种作用域。
| 节点 | 说明 |
|---|---|
set | 设置键值 |
get | 获取值 |
remove | 移除键 |
clear | 清空作用域 |
expire | 设置过期时间 |
支持的作用域:GLOBAL、PLAYER、ENTITY、WORKFLOW、SCRIPT、SESSION
目标域(12 节点)
目标选择与筛选。
| 节点 | 说明 |
|---|---|
self | 当前执行者 |
world | 指定世界的所有实体 |
server | 服务器所有在线玩家 |
radius | 半径范围内的实体 |
box | 长方体范围内的实体 |
filter | 按条件过滤目标列表 |
foreach | 对每个目标执行操作 |
nearest | 最近的实体 |
ring | 环形范围内的实体 |
player | 指定玩家 |
line-of-sight | 视线范围内的实体 |
幻象域(11 节点)
客户端视觉效果,基于数据包发送,不影响服务端实际状态。
| 节点 | 说明 |
|---|---|
glow | 发光效果 |
warning | 警告效果 |
world-border | 虚拟世界边界 |
fake-block | 虚拟方块 |
clear | 清除幻象效果 |
health | 虚拟血量显示 |
hologram | 全息文字 |
switch | 切换幻象状态 |
提示
扩展节点域的节点在 YAML 中使用时,type 字段格式为 域名.节点名,例如 entity.spawn、memory.set、target.radius。