本站文本內容除另有聲明外,均在知識共享 署名-非商業性使用-相同方式共享 3.0 協議下提供。(詳細信息…

世界格式

来自Minecraft Wiki
跳转至: 导航搜索

Minecraft 1.0中,每一个世界都有自己的文件夹。在每一个世界的存档文件夹中通常需要靠level.dat文件和存储地图和区域的子文件夹才能鉴别对应的世界。

在世界文件夹中永远会包含的信息以粗体的形式显示,有时会显示的信息则以斜体的形式显示。

相对路径 名称 描述
/level.dat 见下文 存储关于世界的全局信息。
/level.dat_mcr - level.dat文件在转换为MCRegionAnvil文件前的备份文件。
/level.dat_old - level.dat文件在从Alpha世界格式转换为MCRegionAnvil文件前的备份文件。
/session.lock 见下文 用于获取最后执行的程序修改这一文件以及访问的权限。
/players/<player>.dat Player.dat格式 存储这一世界内玩家所有的个人信息。
/data/idcounts.dat
/data/map_<#>.dat
地图物品格式 存储可合成地图这一物品所包括的地图数据。
/data/villages.dat Villages.dat格式 存储世界中村民的信息。
/region/ - 包含主世界中的区域信息。
/DIM-1/ - 包含下界中的区域信息。
/DIM1/ - 包含末路之地中的区域信息。
/region/r.<#>.<#>.mca
/DIM-1/r.<#>.<#>.mca
/DIM1/r.<#>.<#>.mca
Anvil文件格式 独立区域信息
/region/r.<#>.<#>.mcr
/DIM-1/r.<#>.<#>.mcr
/DIM1/r.<#>.<#>.mcr
Region文件格式 用于存储区域文件在从Region文件格式转换为Anvil之前的备份文件。
/<#>/<#>/c.<#>.<#>.dat Alpha世界格式 用于存储区块文件在转换从Alpha世界格式转换为MCRegion之前的备份文件。

level.dat 格式[编辑 | 编辑源代码]

level.dat文件包含了世界的全局信息,如时间,单人游戏玩家,所使用的世界类型以及地图种子等。为NBT文件,其格式如下:


  • 根标签

    •  Data: 此标签包含所有的世界数据。

      •  version: NBT的版本,为19133。

      •  initialized: 1 或 0 (真/假) - 通常情况下,当世界在正常方式创造之后为真。如果初始化模拟被某种情况所中断,此处为假,世界将会在下一次载入时重新初始化。

      •  LevelName: 世界的名字

      •  generatorName: 世界类型:"default"(默认)、"flat"(超平坦)、"largeBiomes"(巨型生物群系)、"amplified"(放大化)、"debug_all_block_states"(调试模式)。不区分大小写。

      •  generatorVersion: 世界类型的版本。修改此处的作用未知,但是从观察到的情况下非零。

      •  generatorOptions: 生成器的控制方式,当前只针对超平坦世界。其格式为许多以逗号相隔的方块ID,这些ID的排列顺序为从地底依次排列。这些ID可以在其前面添加'x和其层数。不支持小ID。[1]

      •  RandomSeed: 随机世界种子用于生成固定的地形。

      •  MapFeatures: 1 或 0 (真/假) - 如果在世界类型中选择允许生成如村落、要塞、矿井这些结构则为真。

      •  LastPlayed: 世界最后被加载时的Unix时间戳。

      •  SizeOnDisk: 世界所预估的所占字节的大小。当前在Minecraft中无法进行修改,但是之前是可以的。

      •  allowCommands: 1 或 0 (真/假) - 如果允许作弊则为真。

      •  hardcore: 1 或 0 (真/假) - 如果玩家在单人游戏中死亡后删除世界则为真。在三个模式中均有效。

      •  GameType: 在单人游戏玩家生成或重生时的默认游戏模式。0为生存模式,1为创造模式,2为冒险模式。提示:单人游戏玩家不要将此处设置成当前所在的游戏模式。

      •  Time: 世界自开始时所经历的刻数。

      •  DayTime: 游戏中的时间。0为日出,6000为正午,12000黄昏,18000为午夜,24000为次日零时。这一数据会超过24000而不重置至0。

      •  SpawnX: 出生点的X坐标。

      •  SpawnY: 出生点的Y坐标。

      •  SpawnZ: 出生点的Z坐标。

      •  raining: 1 或 0 (真/假) - 如果世界此时正在下雨、下雪或阴云密布则为真。

      •  rainTime: 在“下雨”被触发前所经历的刻数,一旦被触发则会重置为另一随机数。

      •  thundering: 1 或 0 (真/假) - 如果下雨/下雪/阴云密布并且出现闪电,天空太过阴暗以至于怪物可以在白天进行刷新时则为真。

      •  thunderTime: 在“闪电”被触发前所经历的刻数,一旦被触发则会重置为另一随机数。

      •  Player: 单人游戏玩家的状态。此处如果玩家与<player>.dat中玩家名字相同的话会覆盖<player>.dat文件。如果在服务器中已经存在这一文件则会被保存,否则不会保存服务器世界。参见Player.dat 格式

      •  BorderCenterX

      •  BorderCenterZ

      •  BorderDamagePerBlock

      •  BorderSafeZone

      •  BorderSize

      •  BorderSizeLerpTarget

      •  BorderWarningBlocks

      •  BorderWarningTime: 都见世界边界

      •  GameRules: 游戏规则。每一规则为非"真"即"假"的字符串。

        •  commandBlockOutput: 是否将命令方块的行为显示到聊天窗口中,默认为真。

        •  doFireTick: 是否开启火焰蔓延和消失,默认为真。

        •  doMobLoot: 生物在被杀死后是否掉落物品,默认为真。

        •  doMobSpawning: 生物在自然环境下是否会生成,默认为真。

        •  doTileDrops: 在破坏方块后是否会掉落对应方块物品,默认为真。

        •  keepInventory: 玩家在死后是否会保留物品,默认为假。

        •  mobGriefing: 生物是否会破坏方块(如爬行者的爆炸,僵尸的破坏等),默认为真。

        •  doEntityDrops: 生物是否会掉落方块,默认为真。

        •  logAdminCommands: 未知作用,默认为真。

        •  naturalRegeneration: 在玩家饥饿值足够高时是否恢复生命,默认为真。

        •  randomTickSpeed: 方块刻到来的时间,可以让植物生长或树叶枯萎,默认为3,这是唯一一个不适用真、假赋值的规则。

        •  reducedDebugInfo: 显示调试信息,默认为假。

        •  sendCommandFeedBack: 返回命令方块的信息,默认为真。

        •  showDeathMessages: 显示玩家死亡信息,默认为真。

session.lock 格式[编辑 | 编辑源代码]

此文件包含了该世界最后一次进入时的时间戳。文件为一64字节以大端字节序格式的整值数据,为自1970年(标准时区)开始的以百为单位的毫秒数。

与典型的lock文件不同,这一文件确保了最后访问这一世界的程序有读取和修改的权限。该过程通常如下所示:

  1. 程序打开 session.lock
  2. 程序在session.lock写入当前时间戳
  3. 程序对session.lock的变化进行监控
  4. 如果session.lock内容发生变化,则程序中断并锁定世界。

即使在玩家开始这一世界之后Minecraft有时也会冻结这一世界。这通常会带来未知的后果。推荐在您需要获取修改世界的权限之前完全关闭Minecraft程序。

参考[编辑 | 编辑源代码]

  1. https://www.reddit.com/r/Minecraft/comments/ywjbk/superflat_customization/c5zusxl