本帖最后由 贰逼 于 2016-7-30 18:24 编辑

声明:

本教程适用于1.8+的全版本,包括样式代码禁用的版本。

本教程主要针对于非Json的所有指令中,不需要样式代码(§)和color等Json标签。

更改彩色字符的对象可以为指令或任意文字,包括Name_Tag、NBT_Tag以及各种字符标签

本教程非转载,为原创。

适用于1.9版本的彩字



引言:

不少玩家可能早已得知了禁用样式代码(§)的事情。【在此后本文中出现的'样式代码'会用符号'§'代替】
其实§并非为玩家本身就能输入的代码,而是Unicode(万国码)的副产品,曾经不少模组(例如Nihongo Mod)以此开发。
如今§禁用只是为了配合文本输入中的Json标签。
但是除了Json外,不少项目为了美观可能需要央视代码的帮助。


在曾经版本中,输入(单引号与加号不用输入,其间没有空格)
  1. '§'+'颜色值'
复制代码

可以达到更改一行后全部(除非找到了另一个'§')文字的颜色。
(有关颜色值和样式代码,Wiki有详解:Wiki样式代码
§的输入方法
"Key.Alt"+"Num.0"+"Num.1"+"Num.6"+"Num.7"

但是在MC中不能直接输入(原因是MC禁用了输入万国码,除了英文字符其他特殊字符都无法输入)
但是感谢万国码在计算机中的强大的兼容性,复制(Ctrl+c)+粘贴(Ctrl+v)还是有效的。


到后来,Mojang声明了禁用后,上面CV大法也无法工作,而事情正好发展在指令快速发展的时期;
为了配合研究,大部分玩家也许放弃了样式代码,也许有些玩家依旧通过 内置NBT(CustomNBT Mod) 或者 外置NBT(NBTExplorer)修改
但是结果是麻烦。


其实原版是存在方法的,因为万国码的强大的兼容性,通过外置或者内置NBT都能达到修改效果,
所以虽然禁用了输入,但是依然能调用万国码中§的源码:
  1. \\\u00a7
复制代码
通过实验发现源码直接被文本禁用,得出游戏旨在文本中进行禁用;
然而又因为第三方的强制更改成功,说明样式代码其实是能够通过第三方修改的。
所以自然我们想到了游戏中第三方修改的指令——' /blockdata ' ' /entitydata '


为了避免指令强制修改中指令被禁用,可以通过Json的' runcommand '代替实施
所以最后便出现了本贴将介绍的牌子强更法(牌子指令强行更改)


教程实例:


1.如何利用上面的方法得到彩色字符

首先通过执行以下指令,召唤一个掉落沙形态的指令方块
  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~1 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a79fucker},}\\"}}"}}}
复制代码
主要指令:
  1. summon ArmorStand ~ ~1 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a79fucker}
复制代码
首先生成了牌子

通过牌子的run_command运行blockdata更改了指令
指令中存在Unicode

于是就生成了彩色字符


(对于上述效果scoreboard的team也可以实现)

关于颜色值;
  1. '§'+'颜色值'
复制代码
查看Wiki样式代码有详解。
其中只需要把§更改为\\\u00a7即可
  1. '\\\u00a7'+'颜色值'
复制代码
引号与加号可省略,这其间没有空格。
后面可以直接写字符,当然是可以带空格的。



2.多重样式代码,转义符,引号



  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:give @p minecraft:potato 1 0 {display:{Name:\\\u00a74PotatoMaster101,Lore:[\\\u00a75PotatoMaster101]}},}\\"}}"}}}
复制代码
是一条拓展指令,也是通过上述方法得到。
主要部分:
  1. give @p minecraft:potato 1 0 {display:{Name:\\\u00a74PotatoMaster101,Lore:[\\\u00a75PotatoMaster101]}}
复制代码
首先一条文本可以多重样式代码毋庸置疑。(后文中转义符用'\'表示)
而我们也可以发现指令内部没有"",
这是因为指令在run_command中,而""表示一个类或字符,run_command中含有""后无法判断,造成指令无法读取
其中转义符应当注意配对,保证Unicode前面3个'\'
所以应当格外注意""和\。



3.样式代码与行



  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:/replaceitem entity @p slot.hotbar.8 minecraft:diamond 1 0 {display:{Name:\\\u00a7bCBL,Lore:[0:\\\u00a73CommandBlockLogic,1:\\\u00a7eis A,2:\\\u00a72Great Team]}},}\\"}}"}}}
复制代码
主要部分:
  1. /replaceitem entity @p slot.hotbar.8 minecraft:diamond 1 0 {display:{Name:\\\u00a7bCBL,Lore:[0:\\\u00a73CommandBlockLogic,1:\\\u00a7eis A,2:\\\u00a72Great Team]}}
复制代码
其中一个特殊的部分便是所有列表所自带的行
一般我们如此使用:
a:["1","2","3"……"n"]

但是由于引号无法调用字符,所以我们不得不使用逗号隔开文本,或者使用行的序列号
  1. a:[1,2,3……n]
复制代码
  1. a:[0:"1",1:"2",2:"3"……n:"n+1"]
复制代码
个人推荐序列号,更有条理,也能将整个文本调用。




4.样式代码与其他万国码,列表



  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:setblock ~ ~1 ~ minecraft:dropper 0 keep {CustomName:\\\u00a76lol,Items:[{Slot:4b,id:minecraft:iron_sword,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a77Sword,Lore:[1:\\\u00a7c中国制造]}}}]},}\\"}}"}}}
复制代码
主要部分:
  1. setblock ~ ~1 ~ minecraft:dropper 0 keep {CustomName:\\\u00a76lol,Items:[{Slot:4b,id:minecraft:iron_sword,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a77Sword,Lore:[1:\\\u00a7c中国制造]}}}]}
复制代码
通过
\\\u00a7c中国制造

可以得知样式代码兼容万国码。
而前面的列表与3.差不多,需注意转义符即可
但是列表中千万不要用\n代替逗号或者行的序列号,
因为\n适用于文本,具体表现在Json中,这里使用\n会造成错误。



5.综合样式代码





  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon Villager ~ ~1 ~ {NoAI:1b,Equipment:[{},{},{},{},{id:skull,Damage:3,Count:1,tag:{SkullOwner:songfeitong}}],CustomName:\\\u00a7b\\\u00a7lSOFT,Profession:1,Willing:1,Silent:1b,Offers:{Recipes:[{maxUses:2147483647,uses:0,buy:{id:minecraft:potato,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a74PotatoMaster101,Lore:[\\\u00a75PotatoMaster101]}}},buyB:{id:minecraft:diamond,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a7bCBL,Lore:[0:\\\u00a73CommandBlockLogic,1:\\\u00a7eis A,2:\\\u00a72Great Team]}}},sell:{id:minecraft:sign,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a73\\\u00a7l\\\u00a7nCBL,Lore:[0:\\\u00a7c?\\\u00a7c?\\\u00a7c?\\\u00a7c? \\\u00a79?\\\u00a79?\\\u00a79?   \\\u00a72?,1:\\\u00a7c?       \\\u00a79?    \\\u00a79? \\\u00a72?,2:\\\u00a7c?       \\\u00a79?\\\u00a79?\\\u00a79?   \\\u00a72?,3:\\\u00a7c?       \\\u00a79?    \\\u00a79? \\\u00a72?,4:\\\u00a7c?\\\u00a7c?\\\u00a7c?\\\u00a7c? \\\u00a79?\\\u00a79?\\\u00a79?   \\\u00a72?\\\u00a72?\\\u00a72?\\\u00a72?,]}}}}]}},}\\"}}"}}}
复制代码
主要部分:
  1. summon Villager ~ ~1 ~ {NoAI:1b,Equipment:[{},{},{},{},{id:skull,Damage:3,Count:1,tag:{SkullOwner:songfeitong}}],CustomName:\\\u00a7b\\\u00a7lSOFT,Profession:1,Willing:1,Silent:1b,Offers:{Recipes:[{maxUses:2147483647,uses:0,buy:{id:minecraft:potato,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a74PotatoMaster101,Lore:[\\\u00a75PotatoMaster101]}}},buyB:{id:minecraft:diamond,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a7bCBL,Lore:[0:\\\u00a73CommandBlockLogic,1:\\\u00a7eis A,2:\\\u00a72Great Team]}}},sell:{id:minecraft:sign,Count:1b,Damage:0s,tag:{display:{Name:\\\u00a73\\\u00a7l\\\u00a7nCBL,Lore:[0:\\\u00a7c?\\\u00a7c?\\\u00a7c?\\\u00a7c? \\\u00a79?\\\u00a79?\\\u00a79? \\\u00a72?,1:\\\u00a7c? \\\u00a79? \\\u00a79? \\\u00a72?,2:\\\u00a7c? \\\u00a79?\\\u00a79?\\\u00a79? \\\u00a72?,3:\\\u00a7c? \\\u00a79? \\\u00a79? \\\u00a72?,4:\\\u00a7c?\\\u00a7c?\\\u00a7c?\\\u00a7c? \\\u00a79?\\\u00a79?\\\u00a79? \\\u00a72?\\\u00a72?\\\u00a72?\\\u00a72?,]}}}}]}}
复制代码
转义符可以叠加使用:(主要为颜色+体)
例如:Wiki样式代码的例子:
§cX§nY (§c X §n Y)
其结果将会显示为: XY。然而,

§nX§cY (§n X §c Y)

则会显示为:XY

改为:
\\\u00a7cX\\\u00a7nY (\\\u00a7c X \\\u00a7n Y)
其结果将会显示为: XY。然而,

\\\u00a7nX\\\u00a7cY (\\\u00a7n X \\\u00a7c Y)

则会显示为:XY

同时样式代码对任何字符都有效果



上文全部为blockdata
entitydata指令也是可以的,学习后可以通过实例试试




总结:

首先需要学习牌子强行更改发,基本格式为
  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{
  2. Command:/setblock ~1 ~ ~ wall_sign 5 replace {
  3. Text1:"{text:\\"Click\\",clickEvent:{
  4. action:\\"run_command\\",value:\\"
  5. blockdata ~-1 ~ ~ {Command:指令},
  6. }\\"
  7. }}"
  8. }}}
复制代码
其中指令便是需要修改的指令,添加样式代码,注意上面2~5点事项即可。

再就是最终修改的指令

修改后的指令可以直接通过复制进入文本框。
Soft仅为彩蛋,并未给予出场费。



彩蛋:
如果你看到这里,那就给你一个

' 贰 ':
  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-7.53 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a75?\\\u00a70?\\\u00a72?\\\u00a70?\\\u00a70?\\\u00a70?\\\u00a76?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-6.3 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a70?\\\u00a75?\\\u00a70?\\\u00a70?\\\u00a70?\\\u00a76?\\\u00a7e?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-5.08 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a79?\\\u00a75?\\\u00a79?\\\u00a70?\\\u00a76?\\\u00a70?\\\u00a7e?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-3.85 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a79?\\\u00a75?\\\u00a79?\\\u00a70?\\\u00a76?\\\u00a70?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-2.65 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a70?\\\u00a76?\\\u00a70?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-1.42 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a7a?\\\u00a7a?\\\u00a7a?\\\u00a70?\\\u00a76?\\\u00a70?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-0.2 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a71?\\\u00a71?\\\u00a71?\\\u00a71?\\\u00a71?\\\u00a76?\\\u00a71?\\\u00a71?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~1 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a74?\\\u00a74?\\\u00a74?\\\u00a70?\\\u00a76?\\\u00a70?\\\u00a7b?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:fill ~1 ~ ~ ~1 ~8 ~ redstone_block}}}}}}}}}}
复制代码

' 逼 ':
  1. summon FallingSand ~ ~1 ~ {Block:command_block,Time:1,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-7.53 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a74?\\\u00a7d?\\\u00a7d?\\\u00a7d?\\\u00a7d?\\\u00a7d?\\\u00a7d?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-6.3 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a74?\\\u00a70?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-5.08 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a74?\\\u00a79?\\\u00a70?\\\u00a79?\\\u00a70?\\\u00a79?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-3.85 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a74?\\\u00a74?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a79?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-2.65 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a74?\\\u00a79?\\\u00a70?\\\u00a79?\\\u00a70?\\\u00a79?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-1.42 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a74?\\\u00a74?\\\u00a79?\\\u00a78?\\\u00a78?\\\u00a78?\\\u00a79?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~-0.2 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a70?\\\u00a70?\\\u00a70?\\\u00a78?\\\u00a70?\\\u00a78?\\\u00a70?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:/setblock ~1 ~ ~ wall_sign 5 replace {Text1:"{text:\\"Click\\",clickEvent:{action:\\"run_command\\",value:\\"blockdata ~-1 ~ ~ {Command:summon ArmorStand ~ ~1 ~ {Marker:1,NoGravity:1,Invisible:1,CustomNameVisible:1,CustomName:\\\u00a76?\\\u00a70?\\\u00a77?\\\u00a77?\\\u00a77?\\\u00a77?\\\u00a77?\\\u00a70?},}\\"}}"}},Riding:{id:FallingSand,Time:1,Block:command_block,TileEntityData:{Command:fill ~1 ~ ~ ~1 ~8 ~ redstone_block}}}}}}}}}}
复制代码


相关链接
Wiki样式代码
CP自定义头颅网站
Labs的8*8像素画
我的索引贴

依照此方法的编辑器:在线编辑器
软件下载:http://www.mcbbs.net/thread-443447-1-1.html
作者:空白(id:kongbaiyo)
使用方法:http://www.mcbbs.net/thread-443447-1-1.html
地址:http://www.mcbbs.net/thread-443447-1-1.html

指令复制编辑器
彩字最简单的生成器.rar (69.38 KB, 下载次数: 1894)    
作者:本人
使用方法:



CBL at大法
@kongbaiyo @PotatoMaster101 @乾.坤 @pca006132 @songfeitong @sylqiuyifeng @C-青皮君




[groupid=546]Command Block Logic[/groupid]