【我的世界命令教程】13告示牌

您所在的位置:网站首页 中国金字塔是什么时候建的 【我的世界命令教程】13告示牌

【我的世界命令教程】13告示牌

2024-04-04 06:25| 来源: 网络整理| 查看: 265

*所有内容均为原创内容,未经允许禁止转载或摘编

MC小知识:在PC版,玩家可以按下Ctrl + 鼠标中键复制一个已放置的告示牌,放置它后,告示牌的文本会和原来显示的一样。

告示牌

告示牌被用作显示文本。可以使用JSON文本创建,以此法创建的告示牌允许复杂的格式(颜色、加粗、斜体等),鼠标悬停和点击事件,以及把计分板值合并到文本里。

可以使用 /setblock 命令来创建JSON告示牌,或使用 /blockdata 来修改JSON告示牌。

/setblock可以将一个方块更改为另一个方块。详解见07期。

/blockdata可以修改一个方块的数据标签。

格式是:/blockdata

;指定要修改的方块的坐标。可以使用波浪号指定相对坐标。

;指定要添加或修改的方块数据标签元素。必须是NBT标签组合。

告示牌的ID

告示牌的ID由其是附着在方块上还是站立决定:

告示牌ID表

告示牌的朝向

首先获得一个命令方块(/give @p minecraft:command_block)。因为聊天栏中命令长度限制比较短,所以放置告示牌的命令建议在命令方块中执行。

先放一个空的告示牌: /setblock ~ ~1 ~ minecraft:standing_sign 0,这个命令会在命令方块的上方放置告示牌。最后的数字0就是这个告示牌的数据值,数据值决定了告示牌的朝向。

站立的告示牌有16个朝向:

站立的告示牌的数据值表

依附在方块上的告示牌有4个朝向:

依附在方块上的告示牌的数据值表

传送告示牌

右击一个告示牌就传送到某个地方我们经常在服务器中看到。所用到的还是JSON文本组件(详解见10期)。JSON格式如何写入创建告示牌的命令中呢?以/setblock命令为例:因为告示牌只能写四行内容,所以格式是:/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"第一行",Text2:"第二行",...,Text4:"第四行"}

每行内容的写法同上期成书的写法。

例如第一行写内容:Text1:"{"text":"右击我传送到...","color":"green"}"

注:同成书一样,写完后要把所有JSON内容中的 " 前加 \ :

Text1:"{\"text\":\"右击我传送到...\",\"color\":\"green\"}"

简单内容

告示牌也可以附加JSON点击事件,但是由于告示牌最多只能写四条JSON内容,所以最多只能写四条命令。

添加一条右击传送命令:Text1:"{\"text\":\"右击我传送到...\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"tp @p ~ ~2 ~\"}}"

注:run_command定义后面value中的值为要执行的命令,所以value值中的命令前不加 / 。

坏掉的告示牌

我们现在知道右击告示牌可以执行一条命令,那么我们能不能利用执行的命令更改这个告示牌的内容呢?当然可以!

原理就是将当前告示牌替换为新的告示牌:

原告示牌

这个技巧可以应用在解密等地图上。

右击后的告示牌

当然你也可以做更多的内容。

先写两个告示牌的内容:

第一个:/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"{\"text\":\"右击我传送到...\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"替换牌子的命令\"}}"}

第二个:/setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:"{\"text\":\"传送牌年久失修\"}",Text2:"{\"text\":\"看来是用不成了\"}"}

注:第二个牌子要覆盖掉之前的牌子,所以写~ ~ ~不可更改。

把创建第二个牌子的命令套入第一个的右击命令中:

/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"{\"text\":\"右击我传送到...\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:"{\"text\":\"传送牌年久失修\"}",Text2:"{\"text\":\"看来是用不成了\"}"}\"}}"}

你以为这样就好了吗?笑话!Mojang没有那么简单 = = !

上一条命令中的红色是嵌套的。由于某些代码上的限制,需要将红色部分的命令做一些修改。

使用中的熔炉贴图

先把每个特殊字符前都加 \ 进行转义。就是把 " 前加 \ ,把 \" 改为 \\\" 。如果不懂照做就行:

setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:\"{\\\"text\\\":\\\"传送牌年久失修\\\"}\",Text2:\"{\\\"text\\\":\\\"看来是用不成了\\\"}\"}

然后将这条命令中每个特殊字符前再加一次 \ 。也就是把 \" 改为 \\\" ,把 \\\" 改为 \\\\\\\" 。

修改后的是这样:

setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:\\\"{\\\\\\\"text\\\\\\\":\\\\\\\"传送牌年久失修\\\\\\\"}\\\",Text2:\\\"{\\\\\\\"text\\\\\\\":\\\\\\\"看来是用不成了\\\\\\\"}\\\"}

每嵌套一层就将嵌套的内容这样操作一次。当嵌套到第三层最长转义的地方就会是:\\\\\\\\\\\\\\\" 有15个\ ............

Mojang恐怖不恐怖~!

现在来最终完成的命令变成什么样了:

/setblock ~ ~1 ~ minecraft:standing_sign 0 replace {Text1:"{\"text\":\"右击我传送到...\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:\\\"{\\\\\\\"text\\\\\\\":\\\\\\\"传送牌年久失修\\\\\\\"}\\\",Text2:\\\"{\\\\\\\"text\\\\\\\":\\\\\\\"看来是用不成了\\\\\\\"}\\\"}\"}}"}

利用嵌套甚至可以写出剧情来!而且我记得告示牌多了游戏也会卡是吧?更多的玩法由你们想喽~~

~~~~~~~神奇的分割线~~~~~~~

注:有想知道的代码或者好的想法可以在评论区写出来,我会考虑优先出教程哒^_^ 看到有不懂的地方欢迎在评论区提问 ~~

我学习的网站(部分内容出处):

https://minecraft-zh.gamepedia.com/%E5%91%BD%E4%BB%A4

告示牌生成器(网页版):

http://minecraft.tools/en/sign.php

谢谢大家的支持!

各位读者大大们觉得喜欢就点一下推荐,也可以关注我看更多Minecraft中的命令 ^_^~~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3