解释器
解释器就是 绿色箭头 指向的地方,用于判断事件输入。
上面这个配置指的就是用 world 0 0 0 ~ 10
去判断单位的坐标。
基本类型
例如 Int
, Float
, Double
, String
, Boolean
这种简单的类型。
攻击任务
damage_quest:
task:
objective: player attack
condition:
damage: 10
含义为 玩家造成的伤害
>=
10
时, 此条件成立。
数字
在数字前面加上符号来定义判断规则,例如 >
, <
, >=
, <=
, =
。
# 当 玩家造成的伤害 为 15 时。
damage: =15
也可以使用 ..
来定义一个范围:
# 当 玩家造成的伤害 在 10 ~ 15 之间时
damage: 10..15
字符串
除 command
类型采用 前缀
规则外,其余 String
均使用 包含
规则。
String & List
这个类型是 String
的一种特殊形式,采用 完全匹配
规则,但支持多个值。
npc_quest:
task:
objective: anpc interact
condition:
type: [ZOMBIE, SKELETON]
npc_quest:
task:
objective: anpc interact
condition:
type:
- ZOMBIE
- SKELETON
当 NPC 类型
是 ZOMBIE
或 SKELETON
时,此条件成立。
Position
用于匹配坐标,有三种判断方式。
Area (区域)
通过两点定义一个矩形区域。
npc_quest:
task:
objective: anpc interact
condition:
position: world 0 0 0 > 10 10 10
当 NPC 坐标
在 0 0 0
和 10 10 10
之间时,此条件成立。
Range (范围)
通过一点定义一个球形区域。
npc_quest:
task:
objective: anpc interact
condition:
position: world 0 0 0 ~ 10
当 NPC 坐标
在以 0 0 0
为中心,半径为 10
的球形区域内时,此条件成立。
Single (单点)
通过一个或多个点定义坐标。
block_quest:
task:
objective: block break
condition:
position: world 0 0 0 & 1 1 1 & 2 2 2
当 方块坐标
位于 0 0 0
或 1 1 1
或 2 2 2
时,此条件成立。
提示
注意这些符号别搞混了,是通过这些符号 (>
, ~
, &
) 来判断解释器的类型。
Vector
是 Position
的一种特殊形式,没有世界参数。
npc_quest:
task:
objective: anpc interact
condition:
position:clicked: 0 1.75 0 ~ 0.25
当 NPC 点击位置
在以 0 1.75 0
为中心,半径为 0.25
的球形区域内时,此条件成立。
Entity
用于匹配实体。
格式
(%namespace%:)%key%[%data%=%value%]
提示
从这里开始要上难度了,都是这种格式,就像原版。
示例
zombie ······················ 任意僵尸类型
zombie[name=傻逼] ············ 名字为 "傻逼" 的僵尸
minecraft:zombie[name=傻逼] ·· 名字为 "傻逼" 的僵尸(此命名空间是默认的,可以省略)
示例
mythicmobs:SkeletalKnight ···· ID 为 "SkeletalKnight" 的 MythicMobs 怪物
提示
其实知道这些就够用了,完整的匹配规则请移步至 解释器 (实体)。
Material
用于匹配材质(方块)。
示例
chest ················ 任意箱子
chest[type=SINGLE] ··· 单体箱子(基于 BlockData 需要 1.13+ 才可以使用)
提示
完整的匹配规则请移步至 解释器 (材质)。
ItemStack
用于匹配物品。
示例
diamond_sword ················ 任意钻石剑
diamond_sword[name=傻逼] ······ 名字包含 "傻逼" 的钻石剑
diamond_sword[lore=傻逼] ······ 描述包含 "傻逼" 的钻石剑
提示
颜色字符请使用 §
符号,完整的匹配规则请移步至 解释器 (物品)。