专栏/MC命令教程“真”从零开始 (七) 新手指令杂烩2号

MC命令教程“真”从零开始 (七) 新手指令杂烩2号

2024年05月31日 01:06--浏览 · --点赞 · --评论
粉丝:921文章:16

这是原载于MCbbs论坛上的命令教程。随着论坛的消失,这系列教程经修缮(可能需要几天时间)后被迁移至此。

本文某种程度上是一个白话版的Wiki

作者不保证对本教程的维护和更新(全随兴致),请您自行判断内容是否过时。不过,若有更多问题欢迎在评论区提出

教程声明:

  1. 系列教程默认读者是按照顺序阅读的

  2. 教程默认读者有对Minecraft的基础了解

  3. 教程主要注重基础原理,实践内容极少

  4. 本篇教程适用于Java 1.20.6,但大部分内容也适用于1.13+

今天,我们要看向的,是,又四个“杂烩”指令。

本系列教程从此开始直到11帖之前都很轻松,无论对我还是对阅读者。

抓紧时间把简单的都讲完吧。


1. 重生点/spawnpoint

(本指令最后被改进的版本:1.16.2)


重生点。

只要你不是极限生存的疯狂爱好者,你就会经常需要这个东西。重生点对于地图来说也同样是一个重要的元素。


本指令可以为玩家设置个人重生点:

格式:

这是标准的重生点/spawnpoint指令格式。


你可以注意到,除了指令头以外,其他都是可选元素——当你不设定“<目标>”时,目标会默认为执行者,“<x> <y> <z>”坐标会默认为“<目标>”处于的位置


如果,我直接在聊天框执行:

将Dahesor(我)的重生点设置为我目前的位置。


当然,这么直接执行一般是当你想要给自己设重生点时的方便设计,命令方块是无法在不添加更多参数时执行/spawnpoint指令的——此时执行者为命令方块,而无法为方块设置重生点。


这时,我们就可以添加更多元素啦。

先请无视“<角度>”这个鲜为人知又很少用到的参数:

简化版语法


例:

将Dahesor的重生点设置在世界坐标中心(0, 0, 0)


将所有玩家的重生点设置在坐标(198, 4, 57)处


唔唔,不要被限制了思路——坐标xyz是可选选项,如果只指定目标而不填坐标,坐标会默认为命令的执行位置:


将所有玩家的重生点设置在执行命令的位置


两者不一样。

如果你没看懂我在说什么的话,你可能就要回去看看第二帖有关指令执行者的内容了。


将随机一名蓝队玩家的重生点设置在他目前的位置


注意事项:

首先,重生点无法被设置在虚空中或高过建筑高度上限。

其次,重生点永远会对坐标进行取整。(基岩版不会进行此操作)

然后,“<目标>” 必须为玩家!生物是无法复活的。

接下来,你可能会担心“你的床已遗失或被阻挡”的问题发生,不用担心——在最新版的/spawnpoint中,玩家会强制被重生至那里,即使可能会使玩家卡进墙里。如果你不知道我在说什么,那你只需要知道——在较低版本中,如果/spawnpoint将玩家的重生点设置在墙里,重生点会失效。

还有,自从1.16以后,本指令在地狱与末地中同样有效。当你在地狱执行指令时,玩家的重生点会被设置在地狱。

最后,作为提醒,你可以像/tp一样使用“~”来指定相对坐标。


结束这个指令之前,请让我向你们介绍一个/spawnpoint比较少用的功能:

设置重生角度。


你在最开始的格式里可能已经看到他了,恩没错,角度。


就是说,当你重生时,你看向哪个方向?

比较遗憾的是,目前只能设定y轴旋转,或者说,水平旋转:

将所有玩家的重生点设置在执行位置,且重生时面向正西(90)


如果你忘记了方向的意义,我重新提醒你一下:

正北方为-180.0,正东为-90.0,正南为0.0,正西为90.0,正北以西为179.9,之后回到-180.0。

----MC Wiki

这里也可以使用相对旋转“~”。只能说MC在这种细节上还蛮不错的就是了。


2. 世界出生点/setworldspawn

以下适用于:1.7.2+


世界出生点(World Spawn),即是玩家新创建世界或新加入服务器时一开始时出现在的位置。俗称“出生点”。当然它的意义不止这么简单,想要了解的话可以前往Wiki的本页面查看。当然你不想看也没关系,以后的内容中会做更详细的探讨。


目前嘛,你只需要知道:

1. 世界出生点是玩家进入新世界或第一次服务器时出现在的位置。

2. 当玩家没有使用床,重生锚或/spawnpoint指令指定重生点之前,玩家会重生到世界出生点。

3. 当玩家经由床或重生锚指定重生点时,若床或重生锚“遗失或被阻挡”,玩家会在重生或由末地返回主世界时出现在世界出生点。

4. 从末地返回的非玩家实体会精确地出现在世界出生点上(因为他们没有重生点嘛)。


格式:

本指令很简单,但是十分的重要。毕竟,在制作地图时,这将是玩家最开始出现的位置——你总不想让玩家出生在毫无关联的草地或者一小片石头上的一块原石上。


例:

将世界出生点设置在(245,177,22)


这里有一些有趣的事情。

在早期的版本中,是有一个指令叫做/home。

本指令会将玩家传送回世界出生点。


后来该指令被移除了,原因是,官方表示,世界出生点不再是一个点,而是一个区域。


这个原因比较扯淡啦,但是我们至少可以知道的是:世界出生点是一个区域。(所以人家英文叫做“world spawn”中文却翻译为“点”是有点奇怪啦。)


而本指令设置的,实际上是这个区域的中心点。

单人游戏区域默认是11*11格大,多人游戏会大一些,21*21。

而且在非冒险模式下,玩家的出生是无视y轴的。像是上面的例子里,y轴被设定在了177格高,而这个位置正常来讲是没有方块的。

但玩家出生时不会因此悬空,玩家会出现在最顶端的方块上。


所以说,即使我把世界出生点设在177格高,如果那里没方块,玩家其实会出生在下面的......某一个方块上。

同样的道理,玩家也不会一出生就卡在墙里啦,即使你的世界出生点会卡在地里,玩家也会上移至一个能看见天空的位置


但是地图作者们不用担心玩家出生在奇怪的地方啦......若玩家为冒险模式,他会精确地出现在那个点上,即使被卡住或者悬在空中。(关于游戏模式请回看本系列第三帖。)


有关世界出生点与个人重生点还有很多细节没有说到,感兴趣的话可以前往Wiki的这里查看。


3. 状态效果/effect

( 1.13+ )

状态效果(Effects),或者叫Buff,是很多游戏包括MC的重要元素之一

额,就是喝药水后那些乱七八糟的东西啦......但是却有一些游戏中未使用的状态效果。


当然,我们有控制状态效果的命令/effect

它可以添加或者清除实体身上的状态效果。


首先呢,让我们先看向添加:

添加状态效果要使用的是give子指令

格式:

<目标>即是施予效果的对象,而<效果ID>即是状态效果的英文ID(早期是使用数字ID的)所有ID都放在文章最后附录里。


<目标>是接受所有实体的,但是一个状态效果施加后对该类实体有没有效,有什么效果就是另一回事了(比如,僵尸会免疫生命恢复,并且瞬间治疗反而会伤害它......有关其他细节不会在此处明确,请自行查找。)


<秒数>是该状态效果的持续时间,最大可以到999999秒。这是个可选元素,如果不填会默认为30秒(瞬时类效果除外)。


<强度>则是药水等级。接受值为0到255之间。注意是从0开始数的,所以如果你填1实际上会给玩家2级效果。这同样是一个可选参数,默认值为0,也就是1级效果。


最后的<隐藏粒子>,即为要不要隐藏玩家身上冒出的药水泡泡,和要不要在右上角显示图表。隐身效果再隐藏泡泡才是真隐身啊。

注意这是个布尔值,和第四帖队伍中各种选项的那个类似:true代表真,也就是隐藏,false即为不隐藏,默认值。

有一个细节就是,如果隐藏粒子,玩家也不会在屏幕右上角看到效果图标,所以你可以偷偷植入效果,玩家可能都无法发现......虽然背包界面还是看得到就是啦。


例:

给予所有玩家速度(speed)效果。由于没有指定时间强度,所以默认为30秒,0级(一级效果),显示“泡泡(粒子效果)


给予一名带有kill标签的随机玩家1秒的等级255(最高)的凋零(wither)效果,隐藏粒子

(一般来说,这玩家凉了)。


这里注意啊,[<秒数>]对于三种效果,瞬间治疗,瞬间伤害与饱食效果是无效的,无论如何你填什么都会默认为1秒(人家都说了是“瞬间”)。

如果在给予效果时玩家已经有了更高级的且持续时间更长的同一效果,指令会失效。


最后就是,如果想要让效果无限时间,那么只需要把时间换成"infinite"就可以了:

给予所有玩家无限时间的失明效果


接下来,想要移除一个状态效果,则需要使用clear子指令:

[<效果ID>]是个可选元素,如果你不指定,指令会清除[<目标>]上的所有效果。


[<目标>]同样是个可选元素。如果你不指定,目标会默认为执行者。当然,直接/effect clear是不可以在命令方块使用的,因为命令方块是个方块,无法拥有或被清除状态效果。

清除Dahesor(我)的所有状态效果


清除最近玩家的缓慢(slowness)效果


需要注意的是基岩版对本指令语法有较大差异,所以请到Wiki上本页面查询。

本篇末尾有所有状态效果的ID列表


4. 旁观者指令/spectete

(适用于1.15+)

(Java独有指令)


最后,让我们看向一个简单但是鲜为人知的命令:/spectete。

各位可能知道,旁观模式下可以对一个玩家或实体旁观,而本指令可以控制处于旁观者模式的玩家旁观一个实体:

格式:

本指令会迫使<玩家>旁观指定的<目标>。

注意哦,这一次只能指定单一目标或玩家,所以如果你使用的选择器是@e或@a,请用第六帖说到的"limit=1"作为限制,不然是无法执行的:

使Dahesor旁观一头随机的马


你可以注意到上面两个都是可选元素——如果不填[<玩家>]只填[<目标>],会把[<玩家>]默认为执行者,而连 [<目标>]都不填,会使执行者退出旁观。

额,有点怪怪的是,这两种情况都不能使用命令方块执行,所以你用命令方块只能让玩家旁观而不能让他退出......对于命令方块功能不全啊喂......或许以后会改变吧,我不知道。

当然,你是可以使用/execute来使玩家退出——但不可否认的是,这样很奇怪啊,就像/summon不能打坐标只能用execute positioned一样……嗯......

附录:状态效果ID

以下列表来自Minecraft Wiki

本列表有可能不是最新版。请以Wiki本页面为准

最后同步时间:2024/5/31(Java 1.20.6):


投诉或建议