跳到主要内容

解释器

解释器就是 绿色箭头 指向的地方,用于判断事件输入。

上面这个配置指的就是用 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 类型ZOMBIESKELETON 时,此条件成立。

Position

用于匹配坐标,有三种判断方式。

Area (区域)

通过两点定义一个矩形区域。

npc_quest:
task:
objective: anpc interact
condition:
position: world 0 0 0 > 10 10 10

NPC 坐标0 0 010 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 01 1 12 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=傻逼] ······ 描述包含 "傻逼" 的钻石剑
提示

颜色字符请使用 § 符号,完整的匹配规则请移步至 解释器 (物品)