为何?待会你就明白了。
其实score不光是name和objevctive这两个子元素,还有一个子元素:value。
这个value填不填都没关系,反正填了之后,这个objective就失效了,值就固定显示这个value的值。神奇的是,这个value竟然支持数字(不带引号)和字符串。
至于Mojang为什么要添加这个元素,可能是因为方便后期编辑吧。
对了,注意一下,一个对象里只能有一个内容元素,所以你不可能在一个对象里同时写上两个text,不然游戏只会显示其中一个元素。
我们知道,游戏内是可以选择语言的,因为各个地方的语言都是不一样的。Minecraft也不例外,里面有很多可选的语言,起码可以满足全球大部分人了。
既然游戏都要这样,那么出名的Minecraft服务器也要这样,就算不支持那些奇怪的语言,起码也要支持英文和中文繁体。
那么我们自己开的服务器该怎么翻译?
很简单:使用JSON里的translate元素就可以了。
translate元素也是属于内容元素,但它和其他元素不一样的是,它并不是完全固定的,而是会根据玩家选择的语言来自动翻译。
看到这你可能会说:Minecraft还可以翻译英文中文?
其实并不是这样的,实际上Minecraft没有内置的翻译软件,所以translate你只能填翻译标识符。
什么是翻译标识符?
翻译标识符可以指定游戏里的一个特定物品,比如“石头”,它的标识符是:
block.minecraft.stone
其中,block是它的类别,minecraft是它的命名空间,stone是它的id。
把它放进translate里:
{“translate“:“block.minecraft.stone“}
运行。
唉,输出了一个石头!
这时候把游戏语言换成英文,再运行一次。
唉,输出了一个Stone!
你也可以改成其他的语言再尝试一遍,或者是把stone换成其他方块的id也可以,比如红石块(redstone_block)
这章没有结束,请点击下一页继续阅读!
你也可以尝试把block改成item,然后把id改成一个没有方块状态的物品,比如弓(bow)。
为什么要没有方块状态的物品?
很简单,方块物品id都一样,那就节省节省,只在block里写就行了,item就不用写了。
除了item,你还可以尝试改成其他的东西,比如entity(实体)什么的。
但是如果标识符乱写会怎么样?