我的世界命令
在大多数游戏中,游戏规则是不能被修改的,否则就是作弊了。而我的世界就有很高的自由度,可以自行选择一个世界的运行规则,实现的方式就是命令。
命令可通过聊天框或命令方块等方式执行,不同命令对应不同的 权限等级 ,从几个简单的指令练起,慢慢就会很多命令了。
我的世界由方块和实体组成。
方块组成了这个世间,各式各样的生物、物体让这个世界丰富多彩。
指令的修改也就针对于这两大内容。
我本打算从头讲起,后来发现太枯燥了,我给删了,就举例子讲吧。
方块
方块的状态非常简单,就是什么坐标有什么。
最常用的就是在某个点放什么方块的命令,也就是 setblock
,如果要从哪到哪的范围,可以用 fill
指令。
setblock & fill
接下来将讲解命令的基本格式,不用担心,我会讲清楚。
比如这个:/setblock 0 100 0 stone
就是在 0 100 0 处,放一个石头
/
是命令必须加的声明,如果不加,就是直接发消息到聊天框
setblock 的标准格式是 /setblock <pos> <block> [destroy|keep|replace]
很容易理解,<pos>
是坐标的意思,<block>
是方块的意思,尖括号是必选的参数,而中括号是可选参数,后续再讲解。
那比如这个 fill 指令 /fill 0 100 0 9 109 9 dirt
就是把 0 100 0 到 9 119 29 的 10×20×30 区域给填充 600 个石头
这里涉及到起点为 0 的情况,学过编程的同学,应该对数组(列表)的序号表示,记忆犹新吧。
类似的,fill 指令的标准格式是 fill <from> <to> <block> [destroy|hollow|keep|outline|replace]
也容易理解,<from>
和 <to>
分别是起点坐标、终点坐标。
接下来讲一下后面的参数是什么意思,觉得不需要的可以跳到下一部分
这几个参数是可选的,也只能选一个,我把每个参数都讲一遍。
destory
会产生原位置方块的掉落物,流体方块和剪刀剪的方块不会掉hollow
填充时,最外层方块填充目标方块,里面填空气outline
填充时,最外层方块填充目标方块,里面不变keep
只会对没有方块的地方操作,有方块就会保持原样replace
只替换 replace 选择的方块- 比如
/fill 0 0 0 100 100 100 air replace water
就只把这个 101×101×101 范围的水替换为空气
- 比如
还有一个小技巧,如果刚才跳过了就亏了哦。
你鼠标对准的方块,会在填坐标时自动补全,按下 tap 即可
坐标
我的世界 坐标 和是用坐标系定义的。
我的世界的坐标是
x
y
z
x\ y\ z
x y z ,在面向北方的情况下,
x
x
x 正方向是右(东),
y
y
y 正方向为上,
z
z
z 正方向为后(南)。
如果俯瞰大地,就像看地球仪一样,从西北方向为基点,向东南为正方向,一个
x
z
xz
xz 坐标系表示了我的世界表面。
在我的世界中,方块的边长为 1 m 1m 1m ,坐标范围是方块的「上面的西北角」到「下面的东南角」,表示为 x 0 y 0 z 0 x_0\ y_0\ z_0 x0 y0 z0 到 x 0 + 1 y 0 − 1 z 0 + 1 x_0+1\ y_0-1\ z_0+1 x0+1 y0−1 z0+1 ,为了方便,直接取方块「上表面西北角坐标」为方块坐标。
游戏实体
对游戏实体的常见操作有添加、减少、修改。
添加是 「summon 生成」,减少是「kill 清除」,
修改就包罗万象了,实体具有很多参数,比如位置、速度、状态效果
Summon & Kill
先看例子
/summon iron_golem
:生成一只铁傀儡
/kill @a
:干碎所有玩家
有了前面指令基础,我们就可以直接看标准格式了: /summon <entity> [pos] [nbt]
, /kill <targets>
我们能猜到,这个指令很简单,生成就是选择实体,然后可选位置,和看不懂的 nbt ,后面的 targets 是目标的意思,应该和实体entity差不多。
没错,如果你能想到这些,你就很强了,虽然接下来的一些参数比较复杂,但你仍然具备简单使用指令的能力了。
entity
即 实体 ,包括玩家、生物、投掷物、掉落物等。
targets
即目标,也包括上述事物,不同的是,对已有的目标需要加参数来定向选择
实体建议看一下 Wiki 百科,学会自学,我平时也是通过这个方式学很多知识的
实体 - Minecraft Wiki_BWIKI_哔哩哔哩 (biligame.com)
targets 有 @s @a @p @r @e
这五种,分别是自己、所有玩家、最近玩家、随机玩家、所有实体,前四个是玩家,最后一个是操作实体
targets 的参数写在一起的,形式为 targets[参数]
,参数有坐标、朝向、实体种类、玩家数据等。
以上内容容易头大,我举个例子
/kill dao
是干碎 dao/gamemode @a creative
是让所有玩家变创造/kill @e[type=item]
是清理所有掉落物/kill @e[type=!player]
是清除所有非玩家实体,编程的同学一竿子到底=!
是取否的意思
修改实体状态
有了前面的基础,接下来的很多指令就很好讲述了。
传送是最广泛的指令,比如这个:/tp @e[type=player] @s
是传送所有玩家到自己
标准格式是:/tp [targets] <location|destination>
<location>
的格式叫
v
e
c
3
vec3
vec3 ,你该学会自己查了:参数类型#vec3 、命令#相对坐标和局部坐标
<destination>
/execute at @a run setworldspawn ~ ~ ~
/execute at @e run summon minecraft:tnt_minecart
加个循环命令方块,一键崩服
坐标:绝对坐标直接指向地图坐标;相对坐标 ~<n>
表示 玩家脚部坐标 + n
/execute as @s in minecraft:the_end run teleport 0 100 0
状态效果
/effect give <targets> <effect> <seconds> <amplifier> <hideParticles>
effect
见 状态效果
seconds
60为一分钟,3,600为一小时,86,400为一天,31,536,000为一年
amplifier
为倍率(等级+1)
其他
经验:/xp set @s 100 levels
/gamerule commandBlockOutput false
数据标签
这里是进阶内容
数据标签 (Name Binary Tag)
格式为JSON格式,每部分是 标签名:数值
,多个标签逗号 ,
隔开,用花括号 {}
包裹。
比如物品
/give @s diamond_sword{Enchantments:[{id:“minecraft:sharpness”,lvl:10}]}
/give @s diamond_sword{Unbreakable:1b}
比如召唤
/summon slime ~ ~ ~ {Size:10}
/summon fireball ~ ~1 ~ {direction:[0.0,-1.0,0.0],ExplosionPower:10}
/summon creeper ~ ~ ~ {ExplosionRadius:10}
手持物
{HandItems:[{id:“diamond_sword”,Count:1}]}
{HandItems:[{id:“diamond_sword”,Count:1,tag:{Enchantments:[{id:“sharpness”,lvl:100}]}}]}
血量
{Attributes:[{Name:“generic.max_health”,Base:1000f}],Health:1000f}(第一个是最大生命值,第二个是当前生命值)
游戏规则
/gamerule <类型>
可修改 游戏规则
常见类型可参考 MC wiki
这里举一些例子
/summon minecraft:wither_skeleton ~ ~10 ~10 {HandItems:[{id:“diamond_sword”,Count:1,tag:{Enchantments:[{id:“sharpness”,lvl:100}]}}],{Attributes:[{Name:“generic.max_health”,Base:1000f}],Health:1000f}}
/effect give @e[type=minecraft:iron_golem] minecraft:speed 1000 10
/summon minecraft:enderman ~ ~ ~ {Attributes:[{Name:“generic.max_health”,Base:1000f}],Health:1000f}
/kill @e[type=!minecraft:player]
/execute at @a[name=Carefree_Melody] run summon minecraft:lightning_bolt ~ ~ ~
execute as @s in minecraft:the_end run teleport 0 100 0
计分板
常用积分板
/scoreboard objectives add §e登分 dummy “分 §b在线时间”
/scoreboard objectives add §e登秒 dummy §e登秒
/scoreboard objectives setdisplay belowname §e登分
/scoreboard players set §e秒除 §e登分 60
/scoreboard players add @a §e登秒 1
/execute @a ~ ~ ~ /scoreboard players operation @s §e登分 = @s §e登秒
/scoreboard players operation @a §e登分 /= §e秒除 §e登分