B站最全最新最良心MC命令方块指令教程之一【基础篇】【基岩版Java都有】【持续
九问韶华
2024年02月28日 21:23

目录

获取命令方块

/say指令

脉冲、循环、连锁

保持开启,红石控制

有条件的、无条件的、执行第一个已选项

权限等级

gamerule游戏规则

time与刻

基础选择器

坐标机制

tp指令

选择器参数r与rm

distance选择器

xyz与dxdydz选择器

fill、setblock指令

clone指令

give指令

clear指令与name选择器

summon指令与type选择器

testfor指令与testblock(s)指令

tag指令与tag选择器

获取命令方块

【基岩】/give @s command_block

【JAVA】/give @s minecraft:command_block

1秒=20刻

<>必填 []选填

/say指令

通过聊天框向所有玩家发送消息

【通用】say <消息>

(消息内容不需要引号包围,可包含空格和目标选择器)

脉冲、循坏和连锁

脉冲型命令方块会在刚激活时尝试执行命令一次

循环型命令方块将会在每个游戏刻都尝试执行一次命令直到不再被激活为止

连锁型命令方块将在指向它的命令方块执行命令后才会执行命令

保持开启与红石控制

保持开启时:

1.连锁型命令方块将在感应后执行命令

2.循环性命令方块将在每一游戏刻执行一次命令

3.脉冲型命令方块在设置完毕后将立即激活,且此后将无法再次执行

有无条件与执行第一个已选项

不受制约(无条件的):无论背后的命令方块是否成功执行命令,该方块都会正常执行命令

条件制约(有条件的):只有当背后的命令方块成功执行命令时才会执行命令

(“背后”的意思是该命令方块上箭头指向的反方向,无视连锁方向)

执行第一个已选项:

开启:激活-执行-延迟-执行……

关闭:激活-延迟-执行-延迟-执行……

【基岩】权限等级

是用于控制执行命令的玩家、命令方块、命令方块矿车和服务器控制台可以执行哪些命令

分为4、3、2、1、0,权限向下兼容

命令方块或命令方块矿车为1

服务器控制台权限为4

函数和附加包中的脚本为1

/execute执行的子命令为1

【Java】权限等级

命令方块或命令方块矿车为2

/execute run 执行的子命令为2

/function 函数包为2(可通过文件修改)

数据包及其指令为(只能是)2

修改权限:

我的世界>game-moon>server.properties(打开方式:记事本),寻找<对象>-permission-lever=<数字>

function-permission-lever=2(函数包权限等级为2)

进入游戏允许作弊时,玩家权限为4,反之为0(创建局域网时依据此开关状态为所有玩家赋予权限)

修改玩家权限:

我的世界>game-moon>op.json(打开方式:记事本)

gamerule

设置或查询游戏规则

【基岩】权限等级1(需启用作弊)

gamerule <规则:字符串> [值:布尔值]

gamerule <规则:字符串> [值:整数]

【Java】权限等级2

gamerule <规则> [值]

游戏规则查询:

https://zh.minecraft.wiki/w/%E6%B8%B8%E6%88%8F%E8%A7%84%E5%88%99

time和刻的讲解

每秒20周期/每游戏刻0.05秒

游戏中的一天等于24000刻等于20分钟

游戏刻-红石刻-区块遍历-执行计划刻-随机刻

time

更改或查询世界的游戏时间

【基岩】权限等级1(需启用作弊)

time add <时间值:整数>

世界时间增加时间数值(整数指游戏刻)

time query <时间:字符串>

daytime-查询自当天日出后流逝的游戏刻数

gametime-查询世界总共流逝的游戏刻数

day-查询已流逝的游戏天数

time set <时间值:整数>或者<时间:字符串>

设置时间值:day=1000、noon=6000、night=13000、midnight=18000、【基岩】sunset=12000、【基岩】sunrise=0

【Java】权限等级2

time(add/query/set) <时间>

基础选择器

@p 距离最近的玩家(多人距离相同时选择最晚进入服务器的玩家)

@r 随机玩家

@a 所有玩家

@e 所有实体(不包括死的)

@s 命令的执行者(必须是实体)

【基岩】@initiator 与NPC交互的玩家

在Java版中,只有@e不能选中死亡玩家

在基岩版中,只有@a和@s可以选中死亡的玩家

坐标机制

右手坐标系 拇指x东 食指y上 中指z南

海平面为62

方块坐标为西北下角点坐标,小数向下取整

【基岩】gamerule showCoordinates ture

相对坐标与局部坐标(重点)

世界坐标被视为绝对坐标。很多命令可以使用波浪号(~)来指定相对坐标,使用插入符(^)来指定局部坐标(也有人称本地坐标),在波浪号和插入符后可以跟一个数字,表示相对基准点的偏移量。基准点由命令本身决定。举例来说,常见的基准点包括命令的执行位置和命令指定的其他坐标。局部坐标的基准点默认为是脚部。

相对坐标依据世界的绝对坐标作偏移量,数字的正负号表示向坐标轴正或负方向偏移。

局部坐标以执行者的头部为基准点,并在包括头部的倾斜角度下分别指向左、上、前方为坐标轴xyz的正方向。

telepport(tp)

传送实体到指定的地点,并修改其旋转角度

tp <目标> [是否检查阻挡]

tp <传送者> <目标> [是否检查阻挡]

<传送者>必须是一个玩家名或目标选择器

<目标>必须是一个玩家名、目标选择器。目标选择器只允许一个实体。

e.g.

tp AA 传送到AA那里

tp AA true 如果没有阻挡,传送到AA那里

tp AA @s 把AA传送过来

tp [传送者] <目标坐标> [水平旋转]右正左负 [垂直旋转]下正上负 [面对]某物某实体某坐标 [是否检查阻挡]true或false

[面对]:1.facing <目标选择器> 2.facing <坐标>

e.g.

tp @s 0 4 0 

将自己传送到0 4 0

tp @s 0 4 0 ~ 90 

将自己传送到0 4 0并低头向下90°

tp @s 0 4 0 facing 100 0 100 

将自己传送到0 4 0并面向0 100 0方向

【基岩】选择器参数:r和rm

在使用目标选择器之后,你可以用参数来限定所要选择的群组

当使用@a或@e时,待选目标从全体筛选称特定的少数。

当使用@p或@r时,参数将从完整的待选列表缩小到被筛选后的待选列表。

当使用@s时,命令执行者只有在所有参数都满足是才会被选择,否则命令执行失败。

在目标选择器变量之后附加键值对构成的逗号分隔,并包含在方括号中

@<变量>[<参数>=<值>,<参数>=<值>,...]

[r=R]-只选择所有小于R个方块的目标执行命令(圆心为脚底)

[rm=R]-只选择所有大于R个方块的目标执行命令

【Java】distance选择器参数

[distance=R]-选择距离为R的目标

[distance=..M]-选择距离小于M的目标

[distance=m..]-选择距离大于m的目标

[distance=m..M]-选择距离为m到M之间的目标

选择器参数:坐标

[x=<x>,y=<y>,z=<z>]

在世界中定义一个位置。

这个位置将成为目标选择器执行位置(不修改命令执行位置),这意味着@p所选择的目标可能发生改变。(类似于修改基准点)

可用于distance参数或dx、dy和dz参数,以平移选择范围。

坐标可以是整数或像12.34这样的小数(具体为双精度浮点数)且不会进行中心矫正(center-corrected),这意味着x=0不再自动更正为x=0.5。【基岩】波浪号可用于此参数。

[dx=<x>,dy=<y>,dz=<z>]

基于已定义坐标,增加对应距离定义新坐标。

e.g.

[x=x1,y=y1,z=z1,dx=a,dy=b,dz=c]

选定由(x1,y1,z1),(x1+a,y1+b,z1+c)所框定的范围

say @e[c=1,x=2,y=-60,z=2]

输出离(1,-60,2)最近的1个实体的名字

say @e[x=2,y=-60,z=2,dx=-3,dy=3,dz=-3]

输出(2,-60,2)至(2-3,-60+3,2-3)范围内实体的名字

fill:用铁定方块填充一个区域的全部或部分。

setblock:将指定位置的方块更改为另一个方块。

【Java】

fill <对角坐标> <方块名> [模式]

setblock <一个坐标> <方块名> [模式]

【基岩】

fill <对角坐标> <方块名> [数据值] [模式]

fill <对角坐标> <方块名> [方块状态] [模式]

setblock <一个坐标> <方块名> [模式]

e.g.

fill 0 0 0 1 1 1 air 将(0,0,0)至(1,1,1)范围内填充为空气

数据值

指定新方块的方块数据。如果指定的数据无效,或未指定,默认为0。

setblock ~ ~ ~ wool 1-橙色羊毛

方块状态

指定新方块的方块状态。

必须是一个格式为["<状态1>":<值1>,"<状态2>":<值2>,...]的方块状态。

setblock ~ ~ ~ bed["direction":3]-朝南的床

fill-[模式]

hollow-仅用指定方块替换填充区域外层的方块,内部方块被替换为空气方块。

outline-仅用指定方块替换区域外层的方块,内部方块不受影响。

destroy-用指定方块替换填充区域内所有方块(包括空气),方块掉落物会掉落。

keep-仅用指定方块填充区域内的空气方块。

replace-用指定方块替换填充区域内所有方块(包括空气),而不以实体形式掉落被替换的方块和方块内容物。可指定方块ID和数据值,用于限制被替换的方块类型。

fill 0 0 0 5 5 5 air replace wool 把区域内羊毛替换成空气

clone

【Java】

clone <起始坐标> <结束坐标> <目标坐标> [replace|masked] [force|move|normal]

replace-复制所有方块(未定义时默认)

masked-复制非空气方块

force-强制复制,即使源区域与目标区域有重叠

move-移动源区域

normal-不执行force与move

默认为normal

clone <起始坐标> <结束坐标> <目标坐标> filtered <方块ID> [force|move|normal]

只复制指定种类的方块

【基岩】

clone <起始坐标> <结束坐标> <目标坐标> [maskMode:MaskMode] [cloneMode:CloneMode]

clone <起始坐标> <结束坐标> <目标坐标> filtered <cloneMode:CloneMode> <tileName:Block> <blockStates:block states>

clone <起始坐标> <结束坐标> <目标坐标> filtered <cloneMode:CloneMode> <tileName:Block> <tileData:int>

目标坐标指目标区域西北方向的点的坐标(各轴上坐标值最小)。可以使用相对坐标和局部坐标来指定命令执行地的相对距离。

give

方块-fill、setblock

物品-give、clear

实体-summon、kill

【Java】

give <target> <item>[<count>]

{Damage:1}耐久损耗1

【基岩】

give <player:target> <itemName:Item>[amount:int][data:int]*[compononts:json]

give <选择器> <物品> [数量] *[数据值]

*指定所给予物品的数据值。必须为一个[0,32767]之间的整数,但是当数据值对于指定的物品ID无效时,会被重置为0。若未指定,默认为0。

clear以及name选择器

【Java】

clear [<targets>][<item>][<maxCount>]

【基岩】

caear [player:target][itemName:Item][data:int][maxCount:int]

clear [选择器] [物品] *[数据值] [最大数目]

[选择器]指定要被清除物品的玩家。如果未指定,默认为命令执行者。

[物品]指定要被清除的物品。如果未指定,默认为所有物品。

*[数据值]指定要被清除物品的数据值。如果未指定或为-1,则不考虑物品的数据值;如果指定数据值对该物品无效,默认为0。

[最大数目]指定要被清除物品的最大值。如果未指定或为-1[仅基岩版],则默认清除所有符合其他要求的物品;如果为0,则没有物品将被清除,同时返回指定物品的数量。

summon指令以及type选择器

【基岩】

summon <实体>[名字][位置]

summon <实体>[位置][事件][名字]

【Java】

summon <实体>[位置][nbt]

type选择器

[type=<实体类型>]

【基岩】testfor和testforblock(s)

testfor <选择器>

检测并统计符合指定条件的实体(玩家、生物、物品等)。

testforblock <坐标> <比较方块>[数据值/状态]

检测坐标方块与目标方块是否相同。

testforblocks <坐标1> <坐标2> <目标坐标>[模式]

如果参数未正确指定,或源区域和目标区域不匹配,则失败。

成功时,返回匹配方块的总数量(all模式下所有方块的数量,或masked模式下的源区域非空气方块的数量)。

指定测试模式。必须为下列其中之一:

all — 两个区域的所有方块必须完全相同。

masked — 源区域的空气方块可匹配目标区域的任意方块。(不把空气方块作比较)

若未指定,默认为all。

tag以及tag选择器

tag <选择器> add <标签名>

为目标添加一个标签。

tag <选择器> remove <标签名>

移除目标的一个标签。

tag <选择器> list

列出目标所拥有的所有标签。

tag选择器

[tag=<标签名>]

选择所有有标签“标签名”的目标。

[tag=!<标签名>]

选择所有没有标签“标签名”的目标。

[tag=]

选择所有有标签的目标。

[tag=!]

选择所有没有的目标。