命令

本文只讨论原版(无Mod无插件)、单人模式可以执行、权限等级为2的命令

命令就是一条文字,通过让游戏运行这条文字来执行不同的功能、操作。命令有不同参数,也就是可以改变的地方,决定了命令执行的结果,如把东西传送到什么地方、在玩家聊天栏显示什么文字等等。

根据命令的功能,我们可以大致分为几类:

  • 只影响玩家的
  • 影响实体的(无论能不能影响玩家)
  • 影响方块的
  • 显示的(只有玩家能看见、听见,不影响游戏内任何东西的)
  • 记分板及检测类
  • 其他(其他的几乎都自成一体系)

部分命令同时属于几类,如replaceitem能影响实体及方块实体(block-entity)
本文将不会说明所有命令的用法,只会在例子中对使用的命令作出简单介绍,详细说明请见 https://minecraft.gamepedia.com/Commands (英文版,有能力者建议阅读英文版)或 https://minecraft-zh.gamepedia.com/%E5%91%BD%E4%BB%A4 (中文版,部分内容较过时)

执行者

执行者就是执行那段命令的物件,分别有几种情况:

  • 管理员执行命令(于聊天栏直接输入执行或聊天信息、书本的clickEvent),执行者为管理员自己(玩家)
  • 服主于后台执行命令,即服务器执行命令,执行者为服务器(非方块非实体,权限等级为4,坐标为(0, 0, 0),即能执行所有命令)
  • 玩家点击牌子执行命令,执行者为玩家,权限为2(不论点击者权限为多少)
  • 命令方块执行命令,执行者为命令方块(方块)。
  • execute让实体执行后方的命令,后方的命令的执行者为被选择到的实体
  • function执行xxx.mcfunction文件内命令,xxx.mcfunction内所有命令的执行者为function的执行者。
  • 游戏规则(gamerule)中gameLoopFunction执行的xxx.mcfunction文件内命令的执行者为一个虚拟执行者,权限为2,坐标为(0, 0, 0)。

这里需要的execute命令的不完全语法: execute <实体> ~ ~ ~ <命令>,即让实体执行指定命令
这里需要的目标选择器不完全语法: @e[name=xxx],即选择名称为xxx的实体

例子: 让管理员(名称为admin)执行以下命令

execute @e[name=a] ~ ~ ~ execute @e[name=b] ~ ~ ~ say hi

整条命令的执行者为玩家admin
execute @e[name=b]... hi这命令的执行者为实体a
say hi这命令的执行者为实体b

执行点

默认情况下, 命令执行点就是执行者的坐标。
命令执行点对相对坐标有非常重要的影响(相对坐标大多是以执行坐标为原点计算的), 以及目标选择器选择条件、顺序也和执行坐标有关系。

有三种情况会导致执行点与执行者坐标不同:

  • execute命令,而且指定了后方的执行坐标或偏移(不是(~, ~, ~))。那时候后面的命令的执行坐标就和执行者坐标不同了。
  • 牌子clickEvent。该情况下执行者是点击的玩家,然而执行坐标是牌子的坐标。
  • 执行命令函数期间把执行者移位。执行点还是之前的点,然而执行者的位置已经不同了。

results matching ""

    No results matching ""