17173有料社区

查看: 718|回复: 0

[互助技巧] 彩色字体,做一把有颜色的武器 元旦快乐!

[复制链接]

380

主题

961

帖子

3219

积分

正式版主

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

绝地求生版面勋章绝地求生国服先遣队勋章

发表于 2018-1-7 15:58:21 | 显示全部楼层 |阅读模式
在1.8出现之前,我们可以在游戏中愉快的打出彩色字体,也就是MC中的彩色符号"§"。不过,在1.8出来之后,惊奇的发现,竟然无法打出符号"§"了!不过,我们可以从告示牌json转换后获取到这个符号,详细方法如下。原理适用于1.8以上全版本。

undefined提示:若发现执行代码后有误,请在此查阅 戳我前去
提示:复制代码框下方白色小字可以防止出错           

5a198f8324723.gif

代码:
首先执行这个代码以获取一个告示牌:
  • /give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{"text":"右键戳我=w=","clickEvent":{"action":"run_command","value":"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\"say \u00a72\u00a7lwww.Ganxiaozhe.com!\\"}"}}"}}

[color=rgb(51, 102, 153) !important]复制代码

/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"text\":\"右键戳我=w=\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\\"say \u00a72\u00a7lwww.Ganxiaozhe.com!\\\"}\"}}"}}

然后将其放在地上,并右键,该告示牌处就会出现一个命令方块,点开一看,呀,你就会看见彩色字体俨然在里面了~

我们将这个指令拆开来看,告示牌无非就是放置一个具有{Command:""}数据值的命令方块。受数据值影响,被放置的命令方块中包含了指令say \u00a72\u00a7lwww.Ganxiaozhe.com!(此处\u00a72\u00a7l已经被转换为了§2§l)。若将这个指令直接执行,可以看到其显示的是\u00a72\u00a7lwww.Ganxiaozhe.com!而不是有色颜色字体(其\u00a72\u00a7l未被转换)。

之所以同样的指令会出现两种截然不同的效果,其实就是json代码没被转换啦。想要让它被转换,就得要让它在json格式中。例如/tellraw @a [{"text":"\u00a72\u00a7lGanxiaozhe"}],执行后发现其输出为有色字体,则成功转换啦。利用这个特性,我们只需要在tellraw加上点击事件"clickEvent",其中代码为放置一个有Command:""的命令方块,则就能借助json的转换来打出颜色代码啦。

如果你不知道颜色对于的转义码,下面这张颜色对照表没准能帮到你


colorinfo.png
该颜色代码适用于所有指令,不限于say,tellraw,title,give的display,summon的customName...

注意:
按照上述结构,执行下方指令应可得到一把金色加粗名字的木剑
  • /give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{"text":"右键戳我=w=","clickEvent":{"action":"run_command","value":"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\"give @p wooden_sword 1 0 {display:{Name:"\u00a76\u00a7l轻剑"}}\\"}"}}"}}

[color=rgb(51, 102, 153) !important]复制代码

/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"text\":\"右键戳我=w=\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\\"give @p wooden_sword 1 0 {display:{Name:"\u00a76\u00a7l轻剑"}}\\\"}\"}}"}}
可将它激活,却出现了这样的反馈信息数据标签分析失败:Unexpected token '\' at: \u00a76\u00a7l轻剑"}}\\\"}\"}}"。我们分析一下value中的内容,不难知道其是放置一个有指令也就是有Command数据标签的命令方块。而其格式为Command:"",是通过引号来划分哪些是属于数据标签Command的"管辖"范围。这样一来,很明显在上面指令中Name后面的引号将Command数据标签结束了。变为了/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:"give @p wooden_sword 1 0 {display:{Name:"}\u00a76\u00a7l轻剑"}}。同样的,上面Command:数据标签后面加"\\\"的原因是为了区分value和Command的结束位置。我们也给Name加上斜杠来区分它与Command的结束位置,指令如下
  • /give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{"text":"右键戳我=w=","clickEvent":{"action":"run_command","value":"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\"give @p wooden_sword 1 0 {display:{Name:\\\\\\"\u00a76\u00a7l轻剑\\\\\\"}}\\"}"}}"}}

[color=rgb(51, 102, 153) !important]复制代码

/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"text\":\"右键戳我=w=\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\\\"give @p wooden_sword 1 0 {display:{Name:\\\\\\\"\u00a76\u00a7l轻剑\\\\\\\"}}\\\"}\"}}"}}

当引号太多时,你也许会感到十分烦恼,为了优化代码数量,在这里可以不为其添加引号,指令如下
  • /give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{"text":"右键戳我=w=","clickEvent":{"action":"run_command","value":"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:give @p wooden_sword 1 0 {display:{Name:\u00a76\u00a7l轻剑}}}"}}"}}

[color=rgb(51, 102, 153) !important]复制代码

/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"text\":\"右键戳我=w=\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:give @p wooden_sword 1 0 {display:{Name:\u00a76\u00a7l轻剑}}}\"}}"}}

执行上述代码,你会得到一个与添加了斜杠所获取的完全一样的物品。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击这里给我发消息 点击链接加入【17173社区玩家群1】