跳转到内容

第九章 tp-传送指令

2020年1月4日 17:15 2073字
(此章最后一次大修改于2022年7月9日)

  我相信在看这本书的你一定去玩过私人服务器,里面最经常使用的指令就是 tp(传送)。
  Minecraft固有的传送指令是 /tp,其全称实际上是 teleport。由于这条指令深究起来很复杂,加上目前还是学习初期,我们就先了解个皮毛就好。
  /tp
  作用
:将一个实体传送到另一个实体或者是坐标。
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式:

/tp [传送目标:目标选择器] <目的地实体:目标选择器>

  这可以将选定的目标传送到另一个实体的位置,比如把张三传送到李四的位置。注意,目的地实体不能为多个,即你并不能将张三传送到李四和王五的位置(就算张三不止一个也不能这样干)。如果将传送目标省略,那么将会传送执行者自己(一般是你自己)。

/tp [传送目标:目标选择器] <一个地点:坐标> [<水平旋转角度> <垂直旋转角度>]

  这可以将选定的目标传送到一个指定的地点。

  那什么是水平旋转角度和垂直旋转角度呢?
  水平旋转角度(yRot),又叫做 Y 轴旋转角度,指的是实体以 Y 轴为中心,俯视时顺时针的角度。听不懂?没关系,你只需要打开你手机,然后找到一个应用叫做指南针(一般手机有自带)。没有?也没关系,百度地图高德地图之类的总该有吧?或者你现场下一个指南针,甚至自己用磁铁做一个,只要有标上角度就行。
  打开指南针,你就会发现在这个指南针的外侧有一圈度数,以正北(0°)开始,顺时针绕一圈 360° 再回到正北。
  这个度数叫做什么呢?叫做真北方位角。相应的,以正南(0°)开始,也是顺时针绕一圈 360° 再回到正南的,就是真南方位角。
  由于我们位于北半球,所以常见的是以正北为 0°,也就是采用真北方位角的指南针。但这又和我们水平旋转角度有何关系?
  其实,我们的水平旋转角度就是 Minecraft 版的真南方位角——以实体为中心,以正南(z 轴正方向)为 0°,顺时针下来,实体朝向和正南方向的夹角(也或者说实体在真南方位角体系中朝向的角度),就是该实体的水平旋转角度。
  比如你看向正北,你的朝向按照真南方位角来看,就是朝向 180°,你的水平旋转角度就是 180°;朝向东北,就是朝向 225°,你的水平旋转角度就是 225°;朝向西南,就是朝向 45°,你的水平旋转角度就是 45°.......
  懂了吧?如果还没懂......网上随便去找一个以正南为 0° 的指南针的图片,把 Minecraft 的坐标怼上去就清楚了(以后再考虑为这个教程弄点图片)。
  另外的垂直旋转角度(xRot),又叫做 X 轴旋转角度,指的是实体与水平面之间的倾斜角。这个可比水平旋转角度好理解多了,相信你应该能够看懂上面的这句话。只不过需要注意一点,对于有头或有眼睛的实体来说(比如玩家),这东西指的是头的朝向(也就是目光的朝向)与水平面之间的夹角,而不是整个身体(这就是为什么你能够看到一个头倾斜着的玩家,但你绝不可能看到一个身子倾斜着的玩家)
  (有没有一种可能,其实 Minecraft 中的玩家朝正下方或正上方看的时候,实际上是平行与地面的,只是 Mojang 懒得做出这样的效果而已)
  (唉,这样子就能解释为什么在游戏中,第一人称的玩家看不到自己的下半身了!)

  需要注意的是,这个垂直旋转角度虽然以水平面朝向为 0°,但和上面的水平旋转角度不一样的是,这东西引入了负值:朝上为负,朝下为正。比如你头朝上 45° 看天空,那么你的垂直旋转角度就是 -45°;你头朝下 45° 看地板,那么你的垂直旋转角度就是 45°。而且,垂直旋转角度肯定不能超过 +90° 或低于 -90°。
  懂了吧?在 tp 中引入垂直旋转角度和水平旋转角度,就可以指定传送目标在传送完成后的朝向(如果未指定,将会不改变朝向,虽然可能没多大作用,但在一些 RPG 地图或服务器,能够让玩家一传过来就看到重要的告示牌或其他的一些东西,那岂不美哉?)
  比如下面的指令:

/tp @p ~ ~ ~ 90 0

  这将会使最近的玩家朝向正西而不改变其位置。
  很简单吧?对了,既然坐标有『绝对坐标』和『相对坐标』,那么旋转角度有没有『绝对旋转角度』和『相对旋转角度』呢?
  答案是肯定的。
  和相对坐标一样,相对旋转角度也是使用符号~代表传送实体本身的朝向,以正数和负数代表角度的增加和减少。比如下面这条指令:

/tp @p ~ ~ ~ ~-30 ~1

  假设这 @p 选中的还是上面那位被迫朝向正西的玩家,那么这条指令将会使他朝向南偏西 60°,头微微朝下 1°。
  简单吧?本章也就到这里了,对于初学者来说这些内容就已经足够了。
  上面所述的 tp 指令适用于基岩版和 Java 版。在 Java 版 1.13 版本更新之前,tp 的指令用法就这么多。而关于 1.13 版本到底对 tp 进行了怎样的更新,这些内容以及一些更加复杂的东西会在第六十四章具体讲到。

/tp历史

Java版

Classic Server
版本
更新内容
1.7
加入 /tp
Indev
版本
更新内容
0.31
移除了所有命令
Alpha
版本
更新内容
v1.0.16_01
重新加入了 /tp。
正式版
版本
更新内容
1.3.1
现在允许玩家传送到指定坐标
1.8
加入了朝向参数。
1.9.3
/tp 不能在能将玩家传送到 Y=-512 到 512 以外的地方。
1.10
Y 轴限制现在增加到 -4096 到 4096。
1.13
将 /tp 和 /teleport 同化,/tp 也正式成为 /teleport 的别称(缩写)。

携带版(Alpha)

版本
更新内容
0.16.0
加入了 /tp。
     你有没有发现,这个tp指令的旋转角度参数的格式是这样的:

[<水平旋转角度> <垂直旋转角度>]

  这是什么意思呢?
  这个的意思就是,这两个参数都是选填的,但如果你填写了其中的一个,另外一个也就必须填写,即你并不能只填写水平旋转角度或只填写垂直旋转角度,而把另外一个空着。
  知道了吧?那么本章到这里就完全结束了。