命令¶
命令(Command)是Minecraft基岩版中的一种文本指令,用于在游戏运行时直接操控游戏逻辑。命令可以修改世界状态、管理玩家、控制实体行为、操纵记分板等,是游戏内最灵活的交互手段之一。
概述¶
命令通过在聊天栏中输入以斜杠/开头的文本来执行,因此也被称为斜杠命令(Slash Command)。命令的执行需要满足一定的权限要求:在多人游戏中,通常需要操作员权限;在单人游戏中,需要开启作弊功能。
命令系统是基岩版中最早实现的可编程功能之一,至今仍然是附加包开发和地图创作中不可或缺的工具。命令可以单独使用,也可以与命令方块、函数等机制结合,构建出复杂的自动化逻辑。
命令语法¶
每条命令由命令名称和若干参数组成。命令名称紧跟在斜杠之后,参数之间以空格分隔。参数的类型包括:
- 字符串:文本类参数,例如玩家名称、标签名称。
- 整数:整数类参数,例如数量、槽位编号。
- 浮点数:浮点类参数,例如坐标值。
- 坐标:位置参数,支持绝对坐标、相对坐标和局部坐标。
- 目标选择器:用于选取一个或多个实体的特殊参数。
- JSON:原始文本等复合参数。
目标选择器¶
目标选择器(Target Selector)是命令中用于动态选取实体的机制。目标选择器以@符号开头,后跟一个表示选择模式的字母,可选地附加方括号内的筛选参数。
| 选择器 | 描述 |
|---|---|
@a | 选取所有玩家 |
@p | 选取最近的玩家 |
@r | 选取随机玩家 |
@e | 选取所有实体 |
@n | 选取最近的实体 |
@s | 选取命令的执行者自身 |
@initiator | 选取与NPC交互的玩家 |
选择器参数(Selector Parameter)用于进一步筛选选中的实体,例如:
type:按实体类型筛选。r和rm:按距离范围筛选。x、y、z:指定选择的中心坐标。tag:按标签筛选。name:按名称筛选。scores:按记分板分数筛选。c:限制选中实体的数量。
例如,@e[type=minecraft:zombie,r=10]选取执行位置10格范围内的所有僵尸。
坐标¶
命令中的坐标参数支持三种表示方式:
- 绝对坐标
- 直接指定世界中的精确位置,例如
100 64 -50。 - 相对坐标(Relative Coordinate)
- 以波浪号
~为前缀,表示相对于命令执行位置的偏移量。例如~5 ~-2 ~0表示在执行位置的基础上X方向偏移5格、Y方向偏移-2格。~ ~ ~表示执行位置本身。 - 局部坐标(Local Coordinate)
- 以脱字号
^为前缀,表示相对于命令执行者朝向的偏移量。三个分量分别代表左方、上方和前方。例如^0 ^1.5 ^1表示执行者上方1.5格、前方1格的位置。
相对坐标和局部坐标不能在同一条命令中混用。
命令方块¶
命令方块(Command Block)是一种特殊的方块,用于自动执行命令。命令方块在创造模式下可以获取,在冒险模式地图和服务器管理中被广泛使用。
命令方块有三种类型:
| 类型 | 描述 |
|---|---|
| 脉冲型 | 每次被激活时执行一次命令 |
| 链式型 | 在前一个命令方块执行成功后执行 |
| 循环型 | 每刻持续执行命令 |
命令方块可以设置为“需要红石”或“始终激活”两种激活模式,还可以设置为“有条件”模式,即仅在前一个命令方块执行成功时才执行。此外,命令方块支持设置延迟刻数,指定激活后等待若干刻再执行。
函数¶
函数(Function)是将多条命令组织在一起的文本文件,文件扩展名为.mcfunction。函数文件存放在行为包的functions/目录下,每行包含一条命令(不需要前缀斜杠)。
函数可以通过/function命令手动调用,也可以通过tick.json文件注册为每刻自动执行。函数中的所有命令在同一刻内按顺序执行。
命令版本¶
命令版本(Command Version)是控制命令解析行为的一个整数值。不同的命令版本会影响某些命令的语法和参数解析方式。命令版本的详细说明请参阅版本文档。
记分板¶
记分板(Scoreboard)是命令系统中的一套数据管理机制,允许创建自定义的记分项(Objective)并为实体分配整数分数。记分板被广泛用于命令系统中的逻辑判断和数据存储。
记分板通过/scoreboard命令进行管理,包括创建记分项、设置分数、查询分数等操作。记分板数据在世界关闭时持久保存。