[命令] 命令教程“真”从零开始 (七) 新手指令杂烩2号
声明:
1. 本教程默认所有读者看过本系列之前的内容。作者不对可能冒出来的术语或方言负责。以前帖的链接在最后。
2. 本系列教程默认读者拥有关于Minecraft游戏的基础了解。
3. 本系列全部教程 均 适用于当前Java最新版(1.19.3)。
4. 本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
<<<<<< 返回系列目录 ←←
- /spawnpoint [目标] [<x> <y> <z>] [角度]
- /spawnpoint
- /spawnpoint [<目标>] [<x> <y> <z>]
- /spawnpoint Dahesor 0 0 0
- /spawnpoint @a 198 4 57
- /spawnpoint @a
- /spawnpoint @a ~ ~ ~
- /spawnpoint @r[team=blue]
- /spawnpoint @a ~ ~ ~ 90
正北方为-180.0,正东为-90.0,正南为0.0,正西为90.0,正北以西为179.9,之后回到-180.0。
- /setworldspawn <x> <y> <z>
- /setworldspawn 245 177 12
- /effect give <目标> <效果ID> [<秒数>] [<强度>] [<隐藏粒子>]
- /effect give @a speed
- /effect give @r[tag=kill] wither 1 255 true
- /effect clear [<目标>] [<效果ID>]
- /effect clear Dahesor
- /effect clear @p slowness
- spectate [<目标>] [<玩家>]
- /spectate @e[limit=horse,sort=random,limit=1] Dahesor
当然,你是可以使用/execute来直接使玩家退出——但不可否认的是……这样很奇怪啊,就像/summon不能打坐标只能用execute positioned一样……嗯......
#更新日志
Java 1.16.5/a 页面发布
Java 1.16.5/b 感谢Jokey_钥匙 的提醒,加入了关于/execute的提示
Java 1.16.5/c 感谢vsx1924868164 的纠错,更改了一处英文拼写错误
Java 1.16.5/d 根据 Wiki命令:语法 ,更改了命令语法
Java 1.16.5/e 感谢@△@← 的纠错,增加了执行地的说明
Java 1.16.5/f 加入了一个有对状态效果详细说明的教程链接
Java 1.17/a 1.17版本升级完成
Java 1.18/a 1.18版本升级完成
Java 1.19.3/a 1.19升级完成
计划的更新:关于负效果
索引:系列《命令教程“真”从零开始》
2021.12 数据,可能有更多内容
[命令] 命令教程“真”从零开始 (七) 新手指令杂烩2号声明:
1. 本教程默认所有读者看过本系列之前的内容。作者不对可能冒出来的术语或方言负责。以前帖的链接在最后。
2. 本系列教程默认读者拥有关于Minecraft游戏的基础了解。
3. 本系列全部教程 均 适用于当前Java最新版(1.17)。
4. 本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
今天,我们要看向的,是,又四个“杂烩”指令。本系列教程从此开始直到11帖之前都很轻松,无论对我还是对阅读者。抓紧时间把简单的都讲完吧。
1. 重生点/spawnpoint (本指令最后被改进的版本:1.16.2)
重生点。只要你不是极限生存的疯狂爱好者,你就会经常需要这个东西。重生点对于地图来说也同样是一个重要的元素。
本指令可以为玩家设置个人重生点:格式:
代码:
- /spawnpoint [目标] [<x> <y> <z>] [角度]
你可以注意到,除了指令头以外,其他都是可选元素——当你不设定“<目标>”时,目标会默认为执行者,“<x> <y> <z>”坐标会默认为 “<目标>”处于的位置 :
如果,我直接在聊天框执行:
代码:
- /spawnpoint
当然,这么直接执行一般是当你想要给自己设重生点时的方便设计,命令方块是无法在不添加更多参数时执行/spawnpoint指令的——此时执行者为命令方块,而无法为方块设置重生点。
这时,我们就可以添加更多元素啦。先请无视“<角度>”这个鲜为人知又很少用到的参数:
代码:
- /spawnpoint [<目标>] [<x> <y> <z>]
例:
代码:
- /spawnpoint Dahesor 0 0 0
代码:
- /spawnpoint @a 198 4 57
唔唔,不要被限制了思路——坐标xyz是可选选项,如果只指定目标而不填坐标,坐标会默认为"[目标]"所在位置:
代码:
- /spawnpoint @a
注意哦,注意!本指令与
代码:
- /spawnpoint @a ~ ~ ~
上一条指令说的是 “将所有玩家的重生点设置在 他们 所在的位置。” 而本指令是 “将所有玩家的重生点设置在 执行者 所在的位置。”
两者不一样。如果你没看懂我在说什么的话,你可能就要回去看看第二帖有关指令执行者的内容了。
# 注意以上未区分执行者与执行地
代码:
- /spawnpoint @r[team=blue]
注意事项: 首先, 重生点无法被设置在虚空中或高过建筑高度上限(建筑高度上限即将在1.17被调整)。 其次, 重生点永远会对坐标进行取整。(基岩版不会进行此操作) 然后, “[目标]” 必须为玩家!生物是无法复活的。 接下来, 你可能会担心“你的床已遗失或被阻挡”的问题发生,不用担心——在最新版的/spawnpoint中,玩家会强制被重生至那里,即使可能会使玩家卡进墙里。如果你不知道我在说什么,那你只需要知道——在较低版本中,如果/spawnpoint将玩家的重生点设置在墙里,重生点会失效。 还有, 自从1.16以后,本指令在地狱与末地中同样有效。当你在地狱执行指令时,玩家的重生点会被设置在地狱。 最后, 作为提醒,你可以像/tp一样使用“~”来指定相对坐标。
结束这个指令之前,请让我向你们介绍一个/spawnpoint比较少用的功能:设置重生角度。
你在最开始的格式里可能已经看到他了,恩没错,角度。
就是说,当你重生时,你看向哪个方向?比较遗憾的是,目前只能设定y轴旋转,或者说,水平旋转:
代码:
- /spawnpoint @a ~ ~ ~ 90
如果你忘记了方向的意义,我重新提醒你一下:
----MC Wiki
这里也可以使用相对旋转“~”。只能说MC在这种细节上还蛮不错的就是了。
2. 世界出生点/setworldspawn 以下适用于:1.7.2+
世界出生点(World Spawn),即是玩家新创建世界或新加入服务器时一开始时出现在的位置。俗称“出生点”。当然它的意义不止这么简单,想要了解的话可以前往 Wiki的本页面 查看。当然你不想看也没关系,以后的内容中会做更详细的探讨。
目前嘛,你只需要知道: 1. 世界出生点是玩家进入新世界或第一次服务器时出现在的位置。 2. 当玩家没有使用床,重生锚或/spawnpoint指令指定重生点之前,玩家会重生到世界出生点。 3. 当玩家经由床或重生锚指定重生点时,若床或重生锚“遗失或被阻挡”,玩家会在重生或由末地返回主世界时出现在世界出生点。 4. 从末地返回的非玩家实体会精确地出现在世界出生点上(因为他们没有重生点嘛)。
格式:
代码:
- /setworldspawn <x> <y> <z>
本指令很简单,但是十分的重要。毕竟,在制作地图时,这将是玩家最开始出现的位置——你总不想让玩家出生在毫无关联的草地或者一小片石头上的一块原石上 (正好在中间可能几率有点小) 。
例:
代码:
- /setworldspawn 245 177 12
这里有一些有趣的事情。在早期的版本中,是有一个指令叫做/home。本指令会将玩家传送回世界出生点。
后来该指令被移除了,原因是,官方表示,世界出生点不再是一个点,而是一个区域。
这个原因比较扯淡啦,但是我们至少可以知道的是:世界出生点是一个区域。(所以人家英文叫做“world spawn”中文却翻译为“点”是有点奇怪啦。)
而本指令设置的,实际上是这个区域的中心点。单人游戏区域默认是11*11格大,多人游戏会大一些,21*21。
而且在非冒险模式下,玩家的出生是无视y轴的。像是上面的例子里,y轴被设定在了177格高,而这个位置正常来讲是没有方块的。但玩家出生时不会因此悬空,玩家会出现在最顶端的方块上。
所以说,即使我把世界出生点设在177格高,如果那里没方块,玩家其实会出生在下面的......某一个方块上。同样的道理,玩家也不会一出生就卡在墙里啦,即使你的世界出生点会卡在地里,玩家也会上移至一个能看见天空的位置~
但是地图作者们不用担心玩家出生在奇怪的地方啦......若玩家为冒险模式,他会精确地出现在那个点上,即使被卡住或者悬在空中。(关于游戏模式请回看本系列第三帖。)
有关世界出生点与个人重生点还有很多细节没有说到,感兴趣的话可以前往 Wiki的这里 查看。
3. 状态效果/effect ( 1.13+ )
状态效果(Effects) ,或者叫Buff,是很多游戏包括MC的重要元素之一额,就是喝**水后那些乱七八糟的东西啦......但是却有一些游戏中未使用的状态效果。
当然,我们有控制状态效果的命令 /effect 。它可以添加或者清除实体身上的状态效果。
首先呢,让我们先看向添加:添加状态效果要使用的是 give子指令 :格式:
代码:
- /effect give <目标> <效果ID> [<秒数>] [<强度>] [<隐藏粒子>]
<目标> 即是施予效果的对象,而 <效果ID> 即是状态效果的英文ID(早期是使用数字ID的)所有ID都放在文章最后附录里。
<目标> 是接受所有实体的,但是一个状态效果施加后对该类实体有没有效,有什么效果就是另一回事了(比如,僵尸会免疫生命恢复,并且瞬间治疗反而会伤害它......有关其他细节不会在此处明确,请自行查找。)
<秒数> 是该状态效果的持续时间,最大可以到999999秒。这是个可选元素,如果不填会默认为30秒。
<强度> 则是药水等级。接受值为0到255之间。注意是从0开始数的,所以如果你填1实际上会给玩家2级效果。这同样是一个可选参数,默认值为0,也就是1级效果。
最后的< 隐藏粒子> ,即为要不要隐藏玩家身上冒出的药水泡泡。隐身效果再隐藏泡泡才是真隐身啊。注意这是个 布尔值 ,和第四帖队伍中各种选项的那个类似:true代表真,也就是隐藏,false即为不隐藏,默认值。有一个细节就是,如果隐藏粒子,玩家也不会在屏幕右上角看到效果图标,所以你可以偷偷植入效果,玩家可能都无法发现......虽然背包界面还是看得到就是啦。
例:
代码:
- /effect give @a speed
代码:
- /effect give @r[tag=kill] wither 1 255 true
这里注意啊,[时间]对于三种效果,瞬间治疗,瞬间伤害与饱食效果是无效的,无论如何你填什么都会默认为1秒(人家都说了是“瞬间”)。
如果在给予效果时玩家已经有了更高级的同一效果,指令会失效,即使原效果可能只剩3秒而你的新效果有5分钟长。
最后就是,如果时间的值太大,会显示为“**: **”,但实际上还是有在正常计时。
接下来,想要移除一个状态效果,则需要使用clear子指令:
代码:
- /effect clear [<目标>] [<效果ID>]
[目标]同样是个可选元素。如果你不指定,目标会默认为执行者。当然,直接/effect clear是不可以在命令方块使用的,因为命令方块是个方块,无法拥有或被清除状态效果。
代码:
- /effect clear Dahesor
代码:
- /effect clear @p slowness
需要注意的是基岩版对本指令语法有较大差异,所以请到 Wiki上本页面 查询。
4. 旁观者指令/spectete (适用于1.15+) (Java独有指令)
最后,让我们看向一个简单但是鲜为人知的命令:/spectete。各位可能知道,旁观模式下可以对一个玩家或实体旁观,而本指令可以控制处于旁观者模式的玩家旁观一个实体:格式:
代码:
- spectate [<目标>] [<玩家>]
本指令会迫使[玩家]旁观指定的[目标]。注意哦,这一次只能指定单一目标或玩家,所以如果你使用的选择器是@e或@a,请用第六帖说到的"limit=1"作为限制,不然是无法执行的:
代码:
- /spectate @e[limit=horse,sort=random,limit=1] Dahesor
你可以注意到上面两个都是可选元素——如果不填[玩家]只填 [目标],会把[玩家]默认为执行者,而连 [目标]都不填,会使执行者退出旁观。额,有点怪怪的是,这两种情况都不能使用命令方块执行,所以你用命令方块只能让玩家旁观而不能让他退出......
这是个玩家手打的非功能性而是便利性指令.....对于命令方块功能不全啊喂......或许以后会改变吧,我不知道。
当然,你是可以使用/execute来直接使玩家退出——但不可否认的是……这样很奇怪啊,就像/summon不能打坐标只能用execute positioned一样……嗯......
附录:状态效果ID
注意,以下列表可能由于更新不及时而导致过时,请以 本页面 为准。
最后更新:Java 1.16.5 速度 speed缓慢 slowness急迫 haste挖掘疲劳 mining_fatigue力量 strength瞬间治疗 instant_health瞬间伤害 instant_damage跳跃提升 jump_boost反胃 nausea生命恢复 regeneration抗性提升 resistance防火 fire_resistance水下呼吸 water_breathing隐身 invisibility失明 blindness夜视 night_vision饥饿 hunger虚弱 weakness中毒 poison凋零 wither生命提升 health_boost伤害吸收 absorption 饱和 saturation发光 glowing飘浮 levitation幸运 luck霉运 unluck缓降 slow_falling潮涌能量 conduit_power海豚的恩惠 dolphins_grace不祥之兆 bad_omen村庄英雄 hero_of_the_village#在此处注明所有效果的详细用途。如有兴趣可前往 本帖 查看,那里详细讲解了所有状态效果。
以上就是本贴的全部内容了......晚了几天啊,毕竟有朋自远方来我得招待一下。他是真的像古代一样徒步来的......所以虽然地理上不是非常远但是有那种气氛。哦哦,有分的给点人气啦,做点安慰也好
所以下次再见啦。
#更新日志
Java 1.16.5/a 页面发布
Java 1.16.5/b 感谢Jokey_钥匙 的提醒,加入了关于/execute的提示
Java 1.16.5/c 感谢vsx1924868164 的纠错,更改了一处英文拼写错误
Java 1.16.5/d 根据 Wiki命令:语法 ,更改了命令语法
Java 1.16.5/e 感谢@△@← 的纠错,增加了执行地的说明
Java 1.16.5/f加入了一个有对状态效果详细说明的教程链接
Java 1.17/a 1.17版本升级完成
计划的更新:关于负效果
上一帖: [命令] /tag指令,与进阶~选择器参数 命令教程“真”从零开始 (六)
系列《命令教程“真”从零开始》 前往来自 麻瓜草稿簿 的 系列教程索引 【命令】命令教程“真”从零开始 (一) 指令本身,选择器,与命令方块
【命令】命令教程“真”从零开始 (二) 命令tp与相对,局部坐标与朝向锚
【命令】 命令教程“真”从零开始 (三) 四个新手指令
【命令】 命令教程“真”从零开始 (四) 有关队伍命令/team的……差不多一切
【命令】命令教程“真”从零开始 (五) 记分板与/scoreboard
【命令】 命令教程“真”从零开始 (六) /tag指令,与进阶~选择器参数
【命令】命令教程“真”从零开始 (七) 新手指令杂烩2号
【命令】命令教程“真”从零开始 (八) 区块与强制加载命令/forceload
【命令】命令教程“真”从零开始 (九) 调整苦力怕防爆,防喷/gamerule
【命令】命令教程“真”从零开始 (十) 简单,又新手(雾)的方块指令/setblock
【命令】命令教程“真”从零开始 ( X ) 我就不信不能用大白话讲清楚NBT
【命令】命令教程"真"从零开始(十二)数据运算三方法之一修改NBT/data
【命令】命令教程“真”从零开始(十三)给予与替换物品,命令/replaceitem
【命令】命令教程“真”从零开始(十四 ) 修改属性/attribute【一拳打爆末影龙】 【命令】命令教程“真”从零开始(十五)最接近神的一次:填充命令/fill 【命令】命令教程"真"从零开始(十六)复制一片区域:复制命令/clone
下一篇: [命令] 命令教程“真”从零开始 (八) 区块与强制加载命令/forceload
