这些特性曾存在于游戏中,但已被移除。
Classic世界格式(Classic Level Format)用于各种MinecraftClassic。它使用gzip压缩,并包含一个后跟序列化的Java对象的短标题。单人游戏地图的扩展名为“.mine”。Classic Creative服务器使用的地图名为“server_level.dat”。可以备份该文件以保存内容,这有助于保护构造免受恶意破坏者或使用该文件进行地图编辑。
因为这个世界格式取决于Java序列化对象的方式,所以使用它的最简单方法是通过Classic服务器本身,minecraft-server.jar。提供了示例代码以说明如何在minecraft-server.jar之上构建编辑器。
文件格式[]
解压缩后,文件格式如下:
位置 | 大小(字节) | 名称 | 说明 |
---|---|---|---|
0 | 4 | Magic ID | 魔数ID是用于标识Minecraft文件格式的常数。当前值为0x271bb788。 |
4 | 1 | Version Number | 版本号表示用于保存地图的当前格式。当前值为2。 |
5 | 可变的 | 序列化的Javacom.mojang.minecraft.level.Level类 | 有关Java使用的序列化格式的更多信息,请参见手册,但是编辑文件的最简单方法是使用此处提供的类和官方的minecraft-server.jar文件。 |
访问字节数组[]
地图中最有趣的部分是方块数组。该数组中的每个字节定义了世界上相应位置的方块类型。通常有两个用于访问方块字节数组的选项:
你可以将压缩的.dat文件直接反序列化回Java内部的Level
对象的实例,从而可以完全像Minecraft服务器那样访问Level对象的实例。这将允许你通过调用实例化的Level对象上的方法直接设置方块、维度、生成点和其他地图的方面。加载前不需要手动解压缩,因为Java可以动态压缩和解压缩gzip压缩文件。要将数据文件加载回Level
类的实例,你需要Level
类的类定义。这包含在minecraft-server.jar文件中。可以在创建和保存类中看到此示例。
其他人只需访问数据文件文件中的原始字节数组就可以读取和修改地图的数据。为此你将解压缩它,更改存储字节数组的字节,然后再次压缩它。由于你正在编辑它,因此必须保持第一个344(HEE中的14E)字节不变。接下来的256x256x64字节是存储字节数组的位置。此外,如果你知道要查找的位置,也可以通过这种方式更改生成位置坐标:从字节284开始有3个整数值,因此覆盖接下来的12个字节(3个整数)将允许你更改生成位置。
(免责声明:这可能会随着Java的变化发生变化)
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |
语言