目录

新人手册

UUID

介绍

minecraft中,所有的实体和实体的属性修饰都带有UUID。
UUID是Universally Unique Identifier的简写。这里用来区分各个实体(,或者是属性修饰符)。
UUID在游戏里可以用两个long标签接起来表示。其中前面的那个被叫做UUIDMost,后面的是UUIDLeast。其中long标签有 64bit, 能表示-(2^63)到(2^63 - 1),也就是-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
也可以用一个字符串表示。因为UUID是128位的,他要是写成16进制就有32位。把这32位按照8-4-4-4-12分开,表示成这个样子
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
其中x表示0到f中的一个。

在游戏里,实体的UUID由NBT中的UUIDLeast和UUIDMost存储。在命令里可以用实体的UUID的字符串的那种表示的方法代表这个实体。记分板中非玩家实体的记分板名字就是使用的它的UUID。

不过 这两种方法怎么转化呢?
虽然在这里,UUIDLeast和Most被当成没有符号的0~2^64-1,可是,nbt的int都是带有符号的.......
也就是说,虽然这个在用的时候是被视作是一个没有符号的数,可是在我们写指令,或者是探测它之类的时候,都要把他当成带有符号的来写。
这就有些尴尬了。然而不难解决。

这里带有正负号的数是如何转变成没有正负号的数的呢?
对于正数和0来说都不变,而负数都加上2^64。
也就是说,就把-(2^63)到(2^63 - 1)变成了0到(2^63 - 1)和(2^63)到(2^64- 1)
反过来当然也很好解决 只要让(2^63)到(2^64- 1)的数都减去2^64就好了。

这样以来就很容易了。

于是UUIDLeast: -1,UUIDMost: 0就代表
00000000-0000-0000-ffff-ffffffffffff
而UUIDLeast: 1,UUIDMost: 0就代表
00000000-0000-0000-0000-000000000001

小型生成器

没来得及做输入正确性的检查 请不要输入包括+在内的符号 也不要留空任意一个文本框

在游戏中出现的地方

不全面。
此处列表只是列举典型的位置和用途作为示例。

level.dat中存储这个世界的龙的UUID。
记分板中非玩家实体的记分板名字就是使用的它的UUID。
实体的UUID由NBT中的UUIDLeast和UUIDMost存储。
羊驼口水 药水云 唤魔者的尖牙 可驯服动物......的主人。
生物属性的修饰符
注 部分药水效果是通过添加属性修饰符起效的。这些修饰符(还有一些其他的)的uuid是固定的(为了在药效结束的时候去掉这个而不是去掉其他的)。比如速度药水建立的属性修饰符的uuid是91AEAA56-376B-4498-935B-2F7F68070635。