Cold-Pot
康康你发现了什么东西

高级命令教学 (1)

新人发帖 不喜勿喷

Minecraft最精髓的东西就是命令和红石

我今天为大家带来命令的教学。



1. NBT结构

会以下编程语言的请直接跳过:

Python LUA Javascript Json

NBT的结构是以{开头,以}结尾的

{ }中的格式是 键:键值的格式

举个例子:

  1. {key:value}
复制代码
键是一个字符串(暂时不解释)

值可以是数组、以上的数据格式、数、字符串

nbt中的标签为

这个是无序,解析时会自动排序


那么数组又是什么呢

数组以[开头,以]结尾

举个例子:

  1. [0,1,2,3,4,5]
  2. ["a","b","c","d","e"]
  3. [<font color="#00ff00">{"text":"a","color":"green"}</font>,<font color="#00ffff">{"text":"b","color":"aqua"}</font>]
复制代码
注意:数组的第一项为0,第二项为1


转义符号

字符串用双引号为识别符,但是如果要在双引号内识别出双引号,就需要使用 \ 符号转义

以下是mc所支持的转义

符号
意义
\\ 输出 \
\"
输出 "
\u + 中文Unicode编码 (例如: \u0020) 输出Unicode码对应的字符
\n 换行
另外,在mc中存在在字符串中有列表、字典的数据,其中转义符号的应用很广泛,

我整理以后,得出

" 为1级引号

\" 为2级引号

\\\" 为3级引号

\\\\\\\" 为4级引号

\\\\\\\\\\\\\\\" 为5级引号


2. nbt的用处

nbt主要是生物、物品和方块的数据

所以它们一般出现在/give /summon /setblock /fill /data指令中

在/tellraw与/title中,格式虽然相同,但是它只是原始json文本不是nbt

但是它们的格式相同



2021.12 数据,可能有更多内容康康你发现了什么东西
高级命令教学 (1)
新人发帖 不喜勿喷
Minecraft最精髓的东西就是命令和红石
我今天为大家带来命令的教学。


1. NBT结构
会以下编程语言的请直接跳过:
Python LUA Javascript Json
NBT的结构是以{开头,以}结尾的
{ }中的格式是 键:键值的格式
举个例子:

代码:

  1. {key:value}
键是一个字符串(暂时不解释)
值可以是数组、以上的数据格式、数、字符串
nbt中的标签为
这个是无序,解析时会自动排序


那么数组又是什么呢
数组以[开头,以]结尾
举个例子:

代码:

  1. [0,1,2,3,4,5]
  2. ["a","b","c","d","e"]
  3. [<font color="#00ff00">{"text":"a","color":"green"}</font>,<font color="#00ffff">{"text":"b","color":"aqua"}</font>]
注意:数组的第一项为0,第二项为1


转义符号
字符串用双引号为识别符,但是如果要在双引号内识别出双引号,就需要使用 \ 符号转义
以下是mc所支持的转义
符号
意义
\\
输出 \
\&quot;
输出 &quot;
\u + 中文Unicode编码 (例如: \u0020)
输出Unicode码对应的字符
\n
换行
另外,在mc中存在在字符串中有列表、字典的数据,其中转义符号的应用很广泛,
我整理以后,得出
&quot; 为1级引号
\&quot; 为2级引号
\\\&quot; 为3级引号
\\\\\\\&quot; 为4级引号
\\\\\\\\\\\\\\\&quot; 为5级引号


2. nbt的用处
nbt主要是生物、物品和方块的数据
所以它们一般出现在/give /summon /setblock /fill /data指令中
在/tellraw与/title中,格式虽然相同,但是它只是原始json文本不是nbt
但是它们的格式相同





第二部分
1. /give的常用nbt
/give中物品的nbt格式如下
/give target 物品{nbt} 数量
举个例子

代码:

  1. /give @s diamond{AttributeModifiers:[{Slot:"mainhand",UUIDLeast:1,UUIDMost:1,AttributeName:"generic.attackDamage",Name:"attackDamage",Operation:1,Amount:50.0}],Enchantments:[{id:"fire_aspect",lvl:2}]} 1
注意:请注意尽量在/give的物品id前加上命名空间如minecraft:diamond、modname:moditem
如果要给物品命名,你需要使用display标签
display的值是一个字典(python叫法)
里面的标签可以是
Name
Lore
Color
(如有遗漏请补充)
Name的值是一个带有json文本的字符串,字符串内的内容需要转义
关于json文本请自行wiki (太多内容)
举个例子

代码:

  1. /give @s diamond{display:{Name:""水晶""}}
  2. /give @s diamond{display:{Name:"{"text":"水晶","italic":false}"}}
  3. /give @s diamond{display:{Name:"[{"text":"水","italic":false,"color":"red"},{"text":"水","italic":false,"color":"reset"}]"}}
以上输出的名字分别是


水晶
水晶



那么Lore同理,是一个列表,列表中每一个都是json文本的字符串,字符串内的内容需要转义
列表中不同项为不同行
举个简单的例子

代码:

  1. /give @s diamond{display:{Lore:[""0"",""1""]}}
那么它的整个物品信息显示为


钻石
0
1


使用italic:false在这里同样有效
注意:1.13扁平化之前Lore和Name中的内容不会识别为json文本!
color用于设置可染色物品的颜色
键值是十进制
比如白色FFFFFF就是16777215
这个可以打开计算器,
Windows XP使用“科学”模式
Windows 7+使用“程序员”模式


今天的指令教学就到这儿辣



Cold-Pot
这个……
MCBBS的插入代码直接把\"识别成了转义后的",明天我重发一下give部分

Cold-Pot
我重发了一个新的教学,大家可以去看看https://www.mcbbs.net/thread-964393-1-1.html
对于有命令基础的人来说这玩意简单的要死,我是写给萌新的
下一期我的内容就会复杂一些了

sjx
在/tellraw与/title中,格式虽然相同,但是它只是原始json文本不是nbt
但是它们的格式相同

JSONSNBT 并没有联系,格式也是不同的。

第一页 上一页 下一页 最后一页