此特性为Java版独有。
随机序列(Random Sequences)是用于生成战利品表和计算/random
命令的随机数发生器序列。
NBT结构[]
随机序列信息存储于每个存档的/data/random_sequences.dat中,它是一个以GZip压缩的NBT文件。
应用[]
随机序列影响所有未指定种子的战利品表生成。世界生成的容器内的战利品不受随机序列影响(但受到世界种子的直接影响),而其他战利品表则受到随机序列影响,例如破坏方块时的掉落物、杀死实体时的掉落物、钓鱼时可以钓上的物品和猪灵的以物易物。
当第一次使用一个随机序列或随机序列被/return reset
重置时,它会被初始化:
- 设置初始值为 salt的值。
- 如果 include_world_seed为true,则值与世界种子进行异或。如果为false,则代表随机序列与世界种子无关。
- 将值扩展为128位,其中低64位是值与
0x6a09e667f3bcc909
进行异或,高64位是低64位与0x61c8864680b583eb
相加。 - 如果 include_sequence_id为true,将值与随机序列命名空间ID的MD5值进行异或。如果为false,则对于世界中的每个随机序列都会初始化为同一个种子。
- 对值低64位和高64位分别进行如下计算,计算后的值即为随机数发生器的种子。
public static long mixStafford13(long v) {
v = (v ^ v >>> 30) * 0xbf58476d1ce4e5b9L;
v = (v ^ v >>> 27) * 0x94d049bb133111ebL;
return v ^ v >>> 31;
}
随机序列使用Xoroshiro128++随机数发生器。
历史[]
关于“随机序列格式”的历史,请见各版本页面。
关于“随机序列格式”的历史,请见各版本页面。
关于“随机序列格式”的历史,请见各版本页面。
关于“随机序列格式”的历史,请见各版本页面。
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |