[指令日记]零基础的mc1.13指令教程
spawnpoing指令用法:
/spawnpoint ---在当前位置设置自己的重生点
/spawnpoint (玩家) ---将该玩家当前的位置设置为该玩家的重生点
/spawnpoint (x) (y) (z) ---设置对应坐标为自己的重生点
/spawnpoint (玩家) (x) (y) (z) ---将指定位置设置为选定玩家的重生点
例:/spawnpoint @a 0 255 0 将所有玩家的出生点设置为0,255,0
注:在使用此指令时,要确保对应位置没有任何有碰撞体积的方块,否则将无法设置重生点
/spawnpoint ---在当前位置设置自己的重生点
/spawnpoint (玩家) ---将该玩家当前的位置设置为该玩家的重生点
/spawnpoint (x) (y) (z) ---设置对应坐标为自己的重生点
/spawnpoint (玩家) (x) (y) (z) ---将指定位置设置为选定玩家的重生点
例:/spawnpoint @a 0 255 0 将所有玩家的出生点设置为0,255,0
注:在使用此指令时,要确保对应位置没有任何有碰撞体积的方块,否则将无法设置重生点
最后是xp和experence
这两个指令完全等价,我不知道有什么意义。如果有人知道这两个指令有什么不同,欢迎补充
这两条指令用来增加经验等级
这里以xp举例
/xp add @s 1000
等级直接从0级变成了26级
这两个指令完全等价,我不知道有什么意义。如果有人知道这两个指令有什么不同,欢迎补充
这两条指令用来增加经验等级
这里以xp举例
/xp add @s 1000
等级直接从0级变成了26级
xp指令用法:()内必填,[]内可不填
/xp add (玩家) (数据,可为负) [levels/points] ---给选定玩家指定等级/指定经验值,不填则默认给予经验值
/xp query (一名玩家) (levels/points) ---查看指定玩家的经验等级/经验值
/xp set (玩家) (数据,可为负) [levels/points] ---设置选定玩家的等级/经验值,不填则默认设置经验值
例:
/xp add @a 5000 levels ---给予所有玩家5000经验值
/xp set @s 30 levels ---将自己的等级设置为30级
/xp add (玩家) (数据,可为负) [levels/points] ---给选定玩家指定等级/指定经验值,不填则默认给予经验值
/xp query (一名玩家) (levels/points) ---查看指定玩家的经验等级/经验值
/xp set (玩家) (数据,可为负) [levels/points] ---设置选定玩家的等级/经验值,不填则默认设置经验值
例:
/xp add @a 5000 levels ---给予所有玩家5000经验值
/xp set @s 30 levels ---将自己的等级设置为30级
give指令用法:()内必填,[]可不填
/give (玩家) (物品)[nbt标签] [数量]
注:物品与nbt标签之间没有空格,不填nbt标签则默认没有,不填数量则默认1个
关于什么是nbt标签,我会在以后介绍
例:
/give @s oak_log 64 ---给自己64个橡木原木
/give @a dragon_egg ---给每个人一个龙蛋
/give @s diamond_sword{Unbreakable:1} ---给自己一个无限耐久的钻石剑
注:Unbreakable为适用于所有物品的nbt标签(虽然只有在工具上有实际用途),此标签数值为1时,工具将不会消耗耐久
关于物品的名字,考虑到有查看的方法,此处便不一一列举
首先按下F3+H
可以看到左下角的提示
然后打开物品栏,把鼠标放到对应方块或物品上
可以看到下面多了一条灰色的字,这就是物品的名字了
/give (玩家) (物品)[nbt标签] [数量]
注:物品与nbt标签之间没有空格,不填nbt标签则默认没有,不填数量则默认1个
关于什么是nbt标签,我会在以后介绍
例:
/give @s oak_log 64 ---给自己64个橡木原木
/give @a dragon_egg ---给每个人一个龙蛋
/give @s diamond_sword{Unbreakable:1} ---给自己一个无限耐久的钻石剑
注:Unbreakable为适用于所有物品的nbt标签(虽然只有在工具上有实际用途),此标签数值为1时,工具将不会消耗耐久
关于物品的名字,考虑到有查看的方法,此处便不一一列举
首先按下F3+H
可以看到左下角的提示
然后打开物品栏,把鼠标放到对应方块或物品上
可以看到下面多了一条灰色的字,这就是物品的名字了
这里再列举一些创造模式物品栏里没有的方块。
barrier 屏障
command_block 命令方块
command_block_minecart 命令方块矿车
spawner 刷怪笼
structure_block 结构方块
structure_void 结构空位
关于这些方块,
屏障可以理解成一个完全隐形的基岩,无法通过,无法破坏
当在创造模式下拿着屏障靠近时,会显示红色的禁止通过标志
命令方块是本期的主题,也差不多是这一个系列的主题。
无法在生存模式中破坏
命令方块矿车不再过多解释,不过用处相对命令方块较小
刷怪笼。。。呃,算了
结构方块也是一个非常强大的方块,这个我也会在以后介绍
结构空位是为了配合结构方块使用的,单独使用没有意义,相当于空气
barrier 屏障
command_block 命令方块
command_block_minecart 命令方块矿车
spawner 刷怪笼
structure_block 结构方块
structure_void 结构空位
关于这些方块,
屏障可以理解成一个完全隐形的基岩,无法通过,无法破坏
当在创造模式下拿着屏障靠近时,会显示红色的禁止通过标志
命令方块是本期的主题,也差不多是这一个系列的主题。
无法在生存模式中破坏
命令方块矿车不再过多解释,不过用处相对命令方块较小
刷怪笼。。。呃,算了
结构方块也是一个非常强大的方块,这个我也会在以后介绍
结构空位是为了配合结构方块使用的,单独使用没有意义,相当于空气
现在我开始介绍命令方块
右键打开命令方块
然后我们就进入了这个界面
现在我们试试输入一个指令(注:在命令方块中,不需要再输入“/”符号)
其中@p指最近的玩家,不用@s因为命令方块不能给自己钻石
点击完成后,左下角给出提示
这个时候,我们只需要给这个命令方块一个红石信号,即可执行命令方块里的指令
右键打开命令方块
然后我们就进入了这个界面
现在我们试试输入一个指令(注:在命令方块中,不需要再输入“/”符号)
其中@p指最近的玩家,不用@s因为命令方块不能给自己钻石
点击完成后,左下角给出提示
这个时候,我们只需要给这个命令方块一个红石信号,即可执行命令方块里的指令
现在介绍一下三种命令方块的类型:脉冲、连锁、循环
切换这几种命令方块的方法是:打开命令方块后,点击下面的选项里左上角的那个,便可在三种类型里切换
命令方块默认为脉冲型,为橙色,连锁型命令方块为青色,循环型命令方块为紫色
脉冲型命令方块在一次激活时,只执行一次命令,比如我每按一次左边的按钮,我都可以获得一个钻石
连锁型命令方块不能单独激活,因此不管我怎么按中间的按钮,我都不会获得钻石
循环型命令方块只要处于被激活状态,就会每个游戏刻(0.05秒)执行一次里面的指令
因此,我只需要按一下右边的按钮,就会。。。
关于连锁型命令方块的激活方法
首先,我需要让两个命令方块指向同一个方向,并且连锁型命令方块为被指向方块
注:脉冲命令方块里为给予钻石,连锁命令方块里为给予钻石块
然后激活连锁型命令方块
再激活脉冲命令方块
如果我把脉冲型换成循环型
也就是每当同向指向连锁型命令方块中的命令执行时,连锁型命令方块的指令都会执行一次
切换这几种命令方块的方法是:打开命令方块后,点击下面的选项里左上角的那个,便可在三种类型里切换
命令方块默认为脉冲型,为橙色,连锁型命令方块为青色,循环型命令方块为紫色
脉冲型命令方块在一次激活时,只执行一次命令,比如我每按一次左边的按钮,我都可以获得一个钻石
连锁型命令方块不能单独激活,因此不管我怎么按中间的按钮,我都不会获得钻石
循环型命令方块只要处于被激活状态,就会每个游戏刻(0.05秒)执行一次里面的指令
因此,我只需要按一下右边的按钮,就会。。。
关于连锁型命令方块的激活方法
首先,我需要让两个命令方块指向同一个方向,并且连锁型命令方块为被指向方块
注:脉冲命令方块里为给予钻石,连锁命令方块里为给予钻石块
然后激活连锁型命令方块
再激活脉冲命令方块
如果我把脉冲型换成循环型
也就是每当同向指向连锁型命令方块中的命令执行时,连锁型命令方块的指令都会执行一次
吃完饭继续更
我们来看命令方块里的第二个选项,不受制约和条件制约
现在我把一个命令方块调成条件制约
我们会发现,它的外观相较之前有所变化(左侧为不受制约,右侧为条件制约)
并且,此时我激活它,我也不能获得钻石
给予这个条件的方法类似于连锁型命令方块,需要有一个命令方块同向指向它(左侧不受制约,给予钻石,右侧条件制约,给予钻石块)
此时激活右侧命令方块,还是没有效果
而如果先激活左侧命令方块,再激活右侧命令方块,此时右侧命令方块中的指令正常执行
并且这之后都可以正常执行
如果我修改左侧指令
注:其中的distance=..3表示距离命令方块3格以内的玩家
然后我在3格以外激活左侧命令方块,使其执行失败,
然后激活右侧命令方块
此时右侧命令方块无法执行命令
条件制约中,命令方块的制约条件是:同向指向该命令方块的命令方块的上一次指令是否执行成功,若执行成功,则条件满足,若执行失败或未执行,则条件不满足
我们来看命令方块里的第二个选项,不受制约和条件制约
现在我把一个命令方块调成条件制约
我们会发现,它的外观相较之前有所变化(左侧为不受制约,右侧为条件制约)
并且,此时我激活它,我也不能获得钻石
给予这个条件的方法类似于连锁型命令方块,需要有一个命令方块同向指向它(左侧不受制约,给予钻石,右侧条件制约,给予钻石块)
此时激活右侧命令方块,还是没有效果
而如果先激活左侧命令方块,再激活右侧命令方块,此时右侧命令方块中的指令正常执行
并且这之后都可以正常执行
如果我修改左侧指令
注:其中的distance=..3表示距离命令方块3格以内的玩家
然后我在3格以外激活左侧命令方块,使其执行失败,
然后激活右侧命令方块
此时右侧命令方块无法执行命令
条件制约中,命令方块的制约条件是:同向指向该命令方块的命令方块的上一次指令是否执行成功,若执行成功,则条件满足,若执行失败或未执行,则条件不满足
补上楼的图
右侧的命令方块不能执行指令
接下来是命令方块的最后一个参数了,红石控制/保持开启
这个比较简单
刚刚我们在激活命令方块时,需要给它一个红石信号,来激活它
如果我们将它设置为保持开启,那么不需要红石,它本身就处于激活状态
比如,我造了一堆命令方块
我希望左侧的命令方块执行时,右侧的连锁型命令方块自动激活
我就不需要在那些命令方块上放一堆红石块了,直接将其设置为保持开启即可
这样,我们只需要按一下按钮
右侧的命令方块不能执行指令
接下来是命令方块的最后一个参数了,红石控制/保持开启
这个比较简单
刚刚我们在激活命令方块时,需要给它一个红石信号,来激活它
如果我们将它设置为保持开启,那么不需要红石,它本身就处于激活状态
比如,我造了一堆命令方块
我希望左侧的命令方块执行时,右侧的连锁型命令方块自动激活
我就不需要在那些命令方块上放一堆红石块了,直接将其设置为保持开启即可
这样,我们只需要按一下按钮
我造了一个命令方块,希望我可以通过它来调整我的游戏模式
但是。。。这似乎没用。。。
实际上,我在最开始举出的gamemode指令,并不是完整的指令。gamemode指令的完整形式应该是
/gamemode (模式) [玩家]
在省略玩家时,默认是自己
而在命令方块中,命令方块不可能修改自己的游戏模式,因此指令没有明确的执行目标,指令就无法执行
这个时候,就需要目标选择器了
说到目标选择器,听起来很高大上,实际上,在之前的教程中也出现过。@a、@e、@p、@r、@s都是目标选择器。a是所有玩家,e是所有实体,p是最近玩家,r是随机玩家,s是自己
因此,在上述指令中添加@p即可使命令方块正常工作
但是。。。这似乎没用。。。
实际上,我在最开始举出的gamemode指令,并不是完整的指令。gamemode指令的完整形式应该是
/gamemode (模式) [玩家]
在省略玩家时,默认是自己
而在命令方块中,命令方块不可能修改自己的游戏模式,因此指令没有明确的执行目标,指令就无法执行
这个时候,就需要目标选择器了
说到目标选择器,听起来很高大上,实际上,在之前的教程中也出现过。@a、@e、@p、@r、@s都是目标选择器。a是所有玩家,e是所有实体,p是最近玩家,r是随机玩家,s是自己
因此,在上述指令中添加@p即可使命令方块正常工作
但是,在实际应用中,比如我想让一部分玩家得到一种效果,但是不想让所有玩家都获得这种效果,我们就要调整目标选择器的参数,增加选择的条件,来排除一部分玩家。
比如,我想让靠近那个信标的玩家持续不断地获得钻石
我就可以在命令方块中设置如下指令
give @a[x=9.5,y=56.5,z=40.5,distance=..1.5] diamond 并调整命令方块的选项
如此操作,即可持续不断的给靠近的玩家钻石
注意观察物品栏里钻石的形态
在第二张图里,钻石呈瘦高状,说明在不停的获得钻石;在第三张图里,钻石呈正常状态,此时没有获得钻石
比如,我想让靠近那个信标的玩家持续不断地获得钻石
我就可以在命令方块中设置如下指令
give @a[x=9.5,y=56.5,z=40.5,distance=..1.5] diamond 并调整命令方块的选项
如此操作,即可持续不断的给靠近的玩家钻石
注意观察物品栏里钻石的形态
在第二张图里,钻石呈瘦高状,说明在不停的获得钻石;在第三张图里,钻石呈正常状态,此时没有获得钻石
指令解析:
give @a[x=9.5,y=56.5,z=40.5,distance=..1.5] diamond
此处信标的坐标为9,56,40
注:所有方块的坐标都是向下取整的。比如这个信标的坐标为9,56,40,它实际占据的空间是9~10,56~57,40~41。同理,如果一个方块的坐标为-5,6,-7,那么它所占据的空间是-5~-4,6~7,-7~-6
x,y,z这三个参数不再过多解释
distance表示目标距指令执行点(如果使用x,y,z参数指定了另一个地点,则为该指定的地点)的距离
如distance=1将仅选中距离该点1格远的目标(必须为1,即使1.00001都不行)
如果要指定一个范围,比如在某个范围内,就需要用连续两个小数点
比如distance=1..2表示选中距离目标点1~2格远的目标
如果要指定的范围只有上限或只有下限,空出另外一侧即可
比如distance=..5 距离目标点5格以内的目标
distance=5.. 距离目标点5格以外的目标
例:
/kill @e[distance=100..] ---杀死所有距离指令执行地点100格以外的实体
/effect give @a[x=3.5,y=4,z=5.5,distance=10..20] levitation 10 ---给所有距离点(3.5,4,5.5)10~20格远的玩家10秒的漂浮效果
give @a[x=9.5,y=56.5,z=40.5,distance=..1.5] diamond
此处信标的坐标为9,56,40
注:所有方块的坐标都是向下取整的。比如这个信标的坐标为9,56,40,它实际占据的空间是9~10,56~57,40~41。同理,如果一个方块的坐标为-5,6,-7,那么它所占据的空间是-5~-4,6~7,-7~-6
x,y,z这三个参数不再过多解释
distance表示目标距指令执行点(如果使用x,y,z参数指定了另一个地点,则为该指定的地点)的距离
如distance=1将仅选中距离该点1格远的目标(必须为1,即使1.00001都不行)
如果要指定一个范围,比如在某个范围内,就需要用连续两个小数点
比如distance=1..2表示选中距离目标点1~2格远的目标
如果要指定的范围只有上限或只有下限,空出另外一侧即可
比如distance=..5 距离目标点5格以内的目标
distance=5.. 距离目标点5格以外的目标
例:
/kill @e[distance=100..] ---杀死所有距离指令执行地点100格以外的实体
/effect give @a[x=3.5,y=4,z=5.5,distance=10..20] levitation 10 ---给所有距离点(3.5,4,5.5)10~20格远的玩家10秒的漂浮效果
现在讨论另一种情况
使用distance指令指定选取范围时,使用的是圆形范围。
但有时候,我需要的是方形的范围(可能需要的不是正方形,而是长方形)
这是就需要用到另一种位置参数了,dx、dy、dz
现在我搭了一个场地
关于那块绿宝石块的作用,我一会儿会讲
在命令方块中输入指令如下
这时,我只要站在这块场地上,我就能获得钻石
使用distance指令指定选取范围时,使用的是圆形范围。
但有时候,我需要的是方形的范围(可能需要的不是正方形,而是长方形)
这是就需要用到另一种位置参数了,dx、dy、dz
现在我搭了一个场地
关于那块绿宝石块的作用,我一会儿会讲
在命令方块中输入指令如下
这时,我只要站在这块场地上,我就能获得钻石
指令解析:
/give @a[x=8,y=56,z=39,dx=2,dy=1,dz=6] diamond
其中,(8,56,39)为绿宝石块上面一格的坐标
dx、dy、dz表示以某一个方块为起点,沿x轴、y轴、z轴的正方向延伸一定长度,以此确定一个长方体,在这个长方体范围内拥有碰撞体积的实体都会被选为目标。
如果将参数设置为负,则会向坐标正方向的反方向延伸。
刚刚的实验中,绿宝石的x坐标与z坐标都是所有矿物块中最小的,因此选择它的坐标为起始坐标
当然,也可以选择其他的角为起始坐标,例如与该绿宝石块为对角线的方块(已替换为红石块)
获得其坐标为(10,55,45)
修改命令方块中的指令如下
give @a[x=10,y=56,z=45,dx=-2,dy=1,dz=-6] diamond
注意差别,此处dx与dz改为了负值
于是又可以愉快地玩耍了
/give @a[x=8,y=56,z=39,dx=2,dy=1,dz=6] diamond
其中,(8,56,39)为绿宝石块上面一格的坐标
dx、dy、dz表示以某一个方块为起点,沿x轴、y轴、z轴的正方向延伸一定长度,以此确定一个长方体,在这个长方体范围内拥有碰撞体积的实体都会被选为目标。
如果将参数设置为负,则会向坐标正方向的反方向延伸。
刚刚的实验中,绿宝石的x坐标与z坐标都是所有矿物块中最小的,因此选择它的坐标为起始坐标
当然,也可以选择其他的角为起始坐标,例如与该绿宝石块为对角线的方块(已替换为红石块)
获得其坐标为(10,55,45)
修改命令方块中的指令如下
give @a[x=10,y=56,z=45,dx=-2,dy=1,dz=-6] diamond
注意差别,此处dx与dz改为了负值
于是又可以愉快地玩耍了
讨论完这些与位置有关的参数后,我们开始介绍其他的参数
gamemode 模式
name 名字
nbt 实体的nbt标签
type 实体的种类
x_rotation 竖直俯角
y_rotation 水平旋转角
其中nbt暂时没有介绍到,这一节暂不做讨论
先举一个例子
我做了一个地图,我希望除了我以外的所有人进入后都为冒险模式,我就可以在命令方块中输入以下指令
gamemode adventure @a[name=!CHElover_C60,gamemode=!adventure]
其中CHElover_C60是我的名字
输入后我可以任意修改我的游戏模式,但是别人就只能用冒险模式
我把name标签的内容稍作修改后
即使我调整为别的模式,也会被自动设置为冒险
gamemode 模式
name 名字
nbt 实体的nbt标签
type 实体的种类
x_rotation 竖直俯角
y_rotation 水平旋转角
其中nbt暂时没有介绍到,这一节暂不做讨论
先举一个例子
我做了一个地图,我希望除了我以外的所有人进入后都为冒险模式,我就可以在命令方块中输入以下指令
gamemode adventure @a[name=!CHElover_C60,gamemode=!adventure]
其中CHElover_C60是我的名字
输入后我可以任意修改我的游戏模式,但是别人就只能用冒险模式
我把name标签的内容稍作修改后
即使我调整为别的模式,也会被自动设置为冒险