Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 3807|回复: 35

[教程] 【命令】命令教程“真”从零开始 (一) 指令本身,选择器,与命令方块 [1.17]

[复制链接]
Dahesor 当前离线
积分
2094
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-2-5
查看详细资料
发表于 2021-2-21 14:06:00 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 Dahesor 于 2021-9-28 03:18 编辑

以下是我关于为什么要这么做的念念叨叨......你可以直接进入主题

命令教程(一)有关指令,选择器,/kill,与命令方块
声明:
1. 本教程默认所有读者看过本系列之前的内容。作者不对可能冒出来的术语或方言负责。以前帖的链接在最后。
2. 本系列教程默认读者拥有关于Minecraft游戏的基础了解。
3. 本系列全部教程适用于当前Java最新版(1.17)但本帖中的内容仍适用于1.13~1.17
4. 本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
5. 本期教程所有涉及到的命令均会在最下方列出,以便查阅。



前言
好吧好吧,我知道百分之99的人应该都知道什么是指令。但作为一篇完整的教程,就是我们要开始的地方。

什么是命令
命令(Command)是通过输入特定文本字符串而激活的高级功能。

----Minecraft Wiki
废话
当然,我不说wiki写的不好。作为wiki,他就得这么写。
我说他是废话,是因为你无法从中获取什么信息。
什么是高级功能?它能用来做什么?
指令,用于调整,设置,修改世界。

很多游戏都有指令,但没有一种游戏可以像Minecraft命令一样富有创造性。
我想尝试给命令下一个定义...但好像没有这方面的天赋。
但没关系,了解一样东西,最简单的方法就是看看它本身。
刚刚说了,任何命令都由一串“特定的”字符串组成。这串字符当然不是随机的。他需要遵循某种规律——格式

1.1命令格式


任何语言,无论是人的语言又或是机器的语言,都遵循某种语法或格式。
现在,按T键(或聊天键)打开你的输入窗口。你可以在这里输入指令。
首先,你需要的是指令前缀 /”。这个前缀用于告诉电脑,这是一条指令,而非正常聊天。
紧接着前缀的,是指令头#。这决定了你要执行哪种命令。
指令头:你要干什么?要吃?要喝?要行走还是要睡觉?
我要喝
好。但是,仅凭这一点信息还是不够的。我们需要在指令头之后加入更多的条件与描述

子命令:具体点,你要喝啥?牛奶
目标:谁要喝?Dahesor(我的ID)
坐标:在哪里?世界的中心点
指令模式:怎么喝?用吸管?小口抿?仰脖端
值:喝多少?400毫升
NBT:再具体,什么牌子的?除没除菌?离过期还有多久? ......

以上的每一条信息,被称为元素(Elements)
元素与元素之间以空格相隔。这就是指令的格式。(实际上,这就是你的游戏ID中为什么不能出现空格的原因之一!不然的话,我们将无法在指令中选中你的ID!你名字空格后面的内容将被视为下一个元素)
一条指令看起来像这样:

/指令头 子指令 目标 坐标 格式 值 模式 ......

(并不是每一条指令都必须包含所有元素,也同样有没在上方写出的元素。)
举个例子:
  1. /gamerule doDaylightCycle false
复制代码
gamerule: 指令头   gamerule:更改游戏规则
doDaylightCycle: 目标    doDayLightCycle: 是否进行日夜交替
false: 值    false:假
连起来:更改游戏规则,关闭日夜循环!

简单吧。

#临时编的词,方便理解


权限

唉唉,等等,在执行指令之前,我们有一件最重要的事情——你有权限吗?
在多人游戏中,你需要拥有从管理员处给予的特定等级的OP权限来执行需要特定权限的命令。
所以如果你想使用命令的话,可以打开单人游戏,并确保在你创建它时勾选了“允许作弊”的选项。
没勾选?这时你就需要进入暂停选单,选择“对局域网开放”,打开允许作弊了。
不过,你的游戏会对局域网开放,所以......可能正在玩MC的你的邻居突然闯入你的世界~
file_1614535587000.jpg

1.2 命令/Kill

让我们看向一个简单的指令:
/kill杀死命令。(或者专业点,清除命令
来,这将是以后介绍所有命令是的方式,先给出格式:
  1. /kill <目标>
复制代码

"<>" 用于表示必要的元素
这不难——假如你要杀死我,你就需要把“<目标>”替换成我的ID——Dahesor:
  1. /kill dahesor
复制代码

这条指令将会杀死我。
同理,如果你想杀死MysticNebula70(MInecraft Wiki 名人)你就需要输入:
  1. /kill MysticNebula70
复制代码

(咳,抱歉黑猫(这位的绰号))
这不难吧。
不过这时,我们有了一个问题:如何选择一个拥有不确定ID的玩家?
举个例子。你做了个迷宫,并准备坑玩家一把。一旦玩家找到出口,就在终点线前用/kill把他杀死。
现在问题来了。你将地图发布,并不知晓谁会来玩你的地图,也不知道他的ID会是什么。
现在,你如何杀死他?
你需要一种根据某种规则选择特定玩家的方法:
选择器

你知道么,在1.7.10以前使用/kill自杀是会出现一个彩蛋:"哎呦,这看起来很疼"(原句记不清了,但大致如此)

1.3 选择器

选择器(Selectors)为你提供了一种选择不明ID玩家的方法。
MInecraft命令共有5种*选择器:
@a   选择所有玩家
@p   选择最近玩家
@r   选择随机玩家
@s   选择执行者
@e   选择所有实体
这是,你只需要将“<目标>”替换为以上的一个选择器即可:

/kill @a 会杀死所有玩家——包括你自己
/kill @p 会杀死最近的玩家——也就是你自己——你执行的指令,离你自己最近的当然是你自己。
/kill @r 会随机挑一位玩家杀死——单人模式下还会杀死你自己。
/kill @s 会杀死执行者——你自己
/kill @e 会杀死所有实体,这包括了玩家,生物,掉落的物品与经验球,飞行中的箭矢或雪球,矿车,船,等等——这当然包括你自己。

你的问题,用选择器就得以解决。
你只需要当玩家走到迷宫终点时,运行/kill @p 就好了
等等,不对,还没完——
别人游玩你的地图时你不在场,无法执行指令。总不能放块告示牌让玩家自己执行吧。
你需要某种可以代替你执行命令的机关:
命令方块
*在教育版中,还有两种用于选择吉祥物的指令,在这里不予讨论。



1.4 命令方块
那么这些方块将可以通过红石信号控制来执行命令。只要使用恰当的命令,很多东西都能被编程。

——Jeb关于命令方块的宣告

如你所见,命令方块(Command Block)是一个方块,只要有红石信号激活就可以运行储存其中的指令。我默认所有阅读者理解红石及其原理——如果你不懂,请在论坛自行查找。

1.4.1获取
命令方块不存在于你的创造模式物品栏中——所以别翻你的背包了。你需要give指令来获取他。
你不需要知道它的原理,照打就好:
  1. /give @p command_block
复制代码

只要输入正确,你将获得命令方块(再次强调,游戏版本很重要!)
把它放在地上,他应该长这样:
file_1613768136000.jpg
(背景是随意用结构方块生成的“村庄入侵图”QAQ)
右键点击就可以打开它的UI:

file_1613767619000.jpg
好,先无视下面那三个复杂的按钮,只看上面的的输入框。这就是你要输入指令的地方。
简单地输入/kill @p,然后点击完成或敲一下”Enter“就可以了。(警告!取消或”Esc“不会保存,不要好不容易打好长一串指令然后条件反射按”Esc“!)
找个拉杆按上去,一拉——指令执行——你死了。
很简单。
所以,现在是时候看看下面复杂的部分了。

(注意!由于不再需要将命令与普通聊天区分,在命令方块中,你可以不输入指令前缀"/"!)

1.4.2 模式

首先,让我们看向左侧的按钮,对,就是那个写着”脉冲“的。
这是命令方块的运行模式。点击按钮就可以在全部三种模式中循环:
总共有三种模式:脉冲(Impulse),连锁(Chain),和循环(Repeat)
Untitled.png



在不同的模式下,命令方块呈现不同的颜色,以便区分。脉冲为橙色连锁为青色循环为紫色

file_1613768136000.jpg

脉冲模式,即默认的。激活一次命令方块,运行一次命令。若想再次运行,要先退出激活状态,然后再次激活。在前面的例子中,拉杆将会持续输出红石信号,但命令方块只会运行一次

循环模式下,只要保持激活,便会以一游戏刻一次(每秒20次)的速度执行指令。只要你拉起拉杆,你会在每秒被杀死20次!
但不止这么简单!
游戏刻(Game Tick)是我的世界的最小时间单位。每一游戏刻长50毫秒。没有任何新事情会在两个游戏可中间发生!
所以若你在一个循环命令方块上输入了一个清除玩家身上所有TNT的指令,没有人会有机会使用TNT,因为他会在出现在背包里的同一刻被清除!
你可能会发现,你的聊天框被指令输出(Command Block Output)填满,请用这条指令关闭它。
  1. /gamerule commandBlockOutput false
复制代码
(以后会讲啦)

连锁   在这种模式下,命令方块不受红石控制,而是会随指向它的命令方块一起运行。你可能注意到了一个新词:指向
看向你命令方块的材质吧,你会发现,他的一面是个正方形,对面是个圆形(或菱形),而四周全是箭头。圆形(或菱形)的那一面是“正面”,方形则是“背面”。四个箭头指向的,即是命令方块的指向(direction)。
file_1613883718000.jpg
若一个命令方块指向一个紧邻的连锁型命令方块,这个连锁型命令方块将会在它之前的命令方块执行后同紧跟着执行命令,在同一游戏刻。一个连锁型命令方块也可以带动另一个连锁型命令方块,所以你可以得到一长串的连锁型命令方块,只要第一个脉冲或循环型命令方块被激活,所有命令方块也会在同一游戏刻依次执行。

一排连锁型命令方块

一排连锁型命令方块

(一长串命令方块)

注意重点“依次”!即使所有命令方块在同一游戏刻执行,他们也是依次的!
举个例子,知道如何用雪球制作手榴弹吗?(不是火焰弹,是投掷的手榴弹)
你需要不断,依次执行以下几条命令:
1. 使用kill清除所有雪球碰到的隐形盔甲架
2. 在所有隐形盔甲架的位置召唤爆炸
3. 在所有飞行中的雪球的位置召唤一个隐形的盔甲
这三条命令会在每一游戏刻都依次执行一遍。首先,第一条命令会把上一游戏刻第三条命令留下来的盔甲架清除,导致第二条命令无法运行——找不到盔甲架。而第三条命令又会生成新的盔甲架。循环往复,直到雪球因撞到某物消失此时,第一条指令将无法执行——因为雪球消失了——于是轮到了第二条指令——轰!

你可以看到次序在上例中的重要性。如果连锁性命令方块不是依次执行的,这将无法实现。


注意:上面的方法并不完善,直接使用有严重BUG(会无限爆炸),只是教程为了简洁没写。


1.4.3 条件制约



现在,让我们看向第二个按钮:条件制约/不受制约。什么意思呢?这个选项只对连锁型命令方块有效,那就是:当选择条件制约时,只有前一个命令方块执行成功时,他才会紧跟着执行。
比如,你输入了一条错误的指令:/kiiiill @a
嗯,打错了。
或者: /kill Dahhhhesssor
嗯,没有一个叫”Dahhhesssor“的玩家
以上两种情况,指令都无法执行。
这时,被这个命令方块指向的连锁型命令方块,如果调成条件制约,也不会执行!
这是你遇到的第一个可以进行条件判断的方法。
(条件制约时,你的命令方块箭头材质的后方会出现一个豁口)

19_04.27.25.png

注意!条件制约只是“不会执行”而不会“阻止连锁”!

比如,下面这种情况:



y_04.27.25.png

假设,你只在第三号与第五号命令方块中填入了正确的指令,其他三个都是瞎写的关于邻居大嗓门大妈如何如何的抱怨。
即使最下方的一号脉冲型命令方块中输入的不是指令,也仍会触发连锁——只要被激活,无论是否执行,都会触发连锁
第三号命令方块除了拥有正常命令以外,还设定了条件制约,这导致它无法执行,因为第二号中填入的不是指令QAQ。
但连锁并不因此而断,五号命令方块仍可以执行他的指令,因为它不受制约:第四号命令方块无法执行也没关系。就像我说的:条件制约只是“不会执行”而不会“阻止连锁”!
连锁会一直进行下去!(直到默认的65535次连锁上限(真不敢相信我居然把这串数背下来了)


接下来,让我们看向最右侧的按钮:



1.4.4 保持开启

这个很简单:命令方块是受红石控制还是保持开启。
一般来说,我们只在循环型命令方块上打开此选项——这会让它“真”一刻不停的执行其中的指令。
这对连锁型命令方块不起作用,脉冲也用不上他——在你保存的那一刻,命令就会被执行,然后就没动静了(若想再次运行,要先退出激活状态,然后再次激活)。


1.4.5 输出结果


最后,看一下那个“叉”形按钮。
这是你的指令输出,比如使用/kill时,它会提示
  1. 清除了3个实体
复制代码
打开时,命令方块的UI如下:
file_1613768136000.jpg

这是除错用的。当你不需要时请将它关闭,这可以节省内存。

哦哦,等等,在结束今天的内容前还有一件事

帮助指令/ help


在游戏中,你总是可以使用指令:
  1. /help
复制代码

使用本指令可以查看所有可用的命令及其格式-
大概是这样

2021-04-19_05.11.33.png


你可能看不懂。
很正常。(必竟上面的信息根本都没给全……能理解就有鬼了。)
你在上面看到的所有,那一大滩的的命令-

我们都会在接下来的内容中讲到。
那,为各位,也为我自己——
加油啦



以上就是第一部分的全部内容啦
呼~这么多,终于结束了。嘛,这也是第一课有很多要说的缘故。
再见各位......有那里写错了,或者有要补充的,欢迎指正。
啊......忘了说Tab补全的事了......算了以后再说吧
下一次,就讲tp与三种坐标吧。
困了......这也是为什么后半段质量下降的缘故......过两天会改的,感觉对你有帮助的话就随便在下面回点什么吧......毕竟,读者的回复是对作者最大的鼓励之一啊。期待以后的话......点个收藏吧......新帖发了会提醒的。
我要去补觉了......修仙到现在QAQ


附录

本期命令列表:




#更新日志

Java 1.16.5/a  页面发布
Java 1.16.5/b  重新排版,修改错字
Java 1.16.5/c  添加了有关命令权限的内容
Java 1.16.5/d  感谢△@← 的纠正,改正了有关毫秒的错误。
Java 1.16.5/e  添加了关于/help指令的说明。

Java 1.17/a  1.17版本升级完成
Java 1.17.1/b  为避免误导,增加了一个注释。
Java 1.17.1/c  添加了涉及命令列表
暂无更新计划

上一篇:这是第一篇(^_^)

系列《命令教程“真”从零开始》
前往来自 麻瓜草稿簿系列教程索引

下一篇:
[教程] [命令] 命令教程“真”从零开始 (二) 命令tp与相对,局部坐标与朝向锚








评分

参与人数 6人气 +11 金粒 +100 收起 理由
思遥方 + 1 MCBBS有你更精彩~
mGHLy + 1 + 5 MCBBS有你更精彩~
sjjklh + 5 + 80 MCBBS有你更精彩~
△@← + 5 超级棒的命令教程!
振翮高飞 + 2 不要弃坑!期待execute
🐦💕🌸🌸 + 2 + 10 好,望需更√

查看全部评分

(=°ω°)丿 当前离线
积分
6391
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-8-25
查看详细资料
发表于 2021-2-21 15:03:16 | 显示全部楼层
我觉得第一步应该是教新手如何看 Wiki(
回复

使用道具 举报

⊙u⊙ 当前离线
积分
3232
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-5-16
查看详细资料
发表于 2021-2-21 17:00:13 | 显示全部楼层
喝,喝一壶
回复

使用道具 举报

振翮高飞 当前离线
积分
2576
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-4-30
查看详细资料
发表于 2021-2-21 20:22:15 来自手机 | 显示全部楼层
真·从零开始
终于弄懂连锁中的条件制约是啥了
回复

使用道具 举报

Dahesor 当前离线
积分
2094
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-2-5
查看详细资料
 楼主| 发表于 2021-2-22 12:26:33 | 显示全部楼层
(=°ω°)丿 发表于 2021-2-21 15:03
我觉得第一步应该是教新手如何看 Wiki(

咳,好主意......但是这个总不能我教吧......
现在看要讲到execute都要18,9帖开外了,啊......好长啊
回复

使用道具 举报

1147279433 当前离线
积分
267
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-1-31
查看详细资料
发表于 2021-2-22 12:50:34 | 显示全部楼层
太强了吧,受益匪浅啊兄弟

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

qa631094223 当前离线
积分
0
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-9-28
查看详细资料
头像被屏蔽
发表于 2021-2-22 15:08:28 | 显示全部楼层
666666666啊

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

deathworm19 当前离线
积分
626
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-5-13
查看详细资料
发表于 2021-2-22 21:15:33 | 显示全部楼层
感谢大佬教学!!!

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

磨砺 当前离线
积分
5592
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-3-13
查看详细资料
发表于 2021-2-27 14:55:37 | 显示全部楼层
非常非常地感谢楼主!
我是一个指令渣,只知道最基本的/give得部分使用方法,平时有什么需求的时候都会去问答版或者指令生成器或者搜,我之前也很少看见能用大白话,从零开始完整清晰地系统地讲解命令方块的使用基础。这种教程对我来说有很大帮助。期待楼主持续更新~支持!
回复

使用道具 举报

harry2716 当前离线
积分
46
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-2-9
查看详细资料
发表于 2021-3-27 13:52:22 | 显示全部楼层
常用的指令还好记,那些物品的英文名字太难记。
回复

使用道具 举报

不入关 当前离线
积分
2
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-1-9
查看详细资料
发表于 2021-3-28 13:21:59 | 显示全部楼层
感谢大佬教学!!!

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

Dahesor 当前离线
积分
2094
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-2-5
查看详细资料
 楼主| 发表于 2021-3-28 13:53:41 | 显示全部楼层
harry2716 发表于 2021-3-27 13:52
常用的指令还好记,那些物品的英文名字太难记。

常用的是还好。
难记?
简单按一下F3+H就好啦
这会在物品描述中给出它的Id
回复

使用道具 举报

Xiao2 当前离线
积分
6901
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-6-24
查看详细资料
发表于 2021-3-29 15:59:40 | 显示全部楼层
Dahesor 发表于 2021-2-22 12:26
咳,好主意......但是这个总不能我教吧......
现在看要讲到execute都要18,9帖开外了,啊......好长啊 ...

execute和data可以看沙发的教程,也很详细。
回复

使用道具 举报

七月的小宇灬 当前离线
积分
66
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-1-18
查看详细资料
发表于 2021-3-29 17:20:53 | 显示全部楼层
感谢大佬的知识传播,爱了爱了

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

零界Zero 当前离线
积分
78
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-7-13
查看详细资料
发表于 2021-4-2 22:09:08 | 显示全部楼层
woc!真正的新手教程!我真的是太需要了!(为了表示我不是为了纯回帖而回复,我将再回复另一个感想)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2021-9-28 10:04 , Processed in 0.086155 second(s), Total 40, Slave 33 queries, Release: Build.2021.09.22 1647, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表