解释器
解释器就是 绿色箭头 指向的地方,用于判断事件输入。
上面这个配置指的就是用 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=傻逼] ······ 描述包含 "傻逼" 的钻石剑
提示
颜色字符请使用 § 符号,完整的匹配规则请移步至 解释器 (物品)。