通过


基础游戏版本控制

基础游戏版本控制是一种防止原版《我的世界》基岩版中的更改导致您的世界文件发生意外更改的方法。 这将允许您将世界模板锁定到特定的《我的世界》版本,确保未来的游戏更改不会影响您的 .mcworld 文件。 基础游戏版本控制不会影响您的材质包或皮肤包。

例如,假设您的世界模板依赖于某些实体的行为,甚至它们的生成机制,如果您在更新《我的世界》时改变了这些行为的方式,世界模板可能会以意想不到的方式破坏。 例如,如果您正在运行 1.18 版本的客户端,但世界模板的 base_game_version 设置为 1.15,它将加载 1.15 之前的所有版本的资源,跳过 1.16 到 1.18 中实现的任何新资源。

重要

基础游戏版本控制是在 1.13 中引入的,因此这是该系统支持的最早游戏版本。 不要尝试将 base_game_version 设置为低于 1.13 的任何值。

注意

在为基础版本控制设置内容时,请注意您的内容将只能访问与所用版本相关的内容。 例如,如果您设置了 "base_game_version": [1, 16, 0],则无法在您的附加内容中使用 [1, 17, 0] 中引入的任何《洞穴及悬崖》内容。

在本教程中,您将学习以下内容:

  • 如何应用基础游戏版本控制来限制您的《我的世界》基岩版世界模板可以使用的版本。
  • 如何更新已发布到市场的现有世界模板。
  • 将世界模板更新到 1.18 时如何处理潜在问题。

要求

在开始本教程之前,建议完成以下内容。

设置

在世界模板清单文件的 header 部分,您需要指定所创建的世界模板针对的《我的世界》版本。 这是通过一个名为 base_game_version 的字段完成的。

如果您的内容与版本无关(例如,一个简单的生存生成,它不太可能影响未来的更新),您可以使用“通配符”忽略该内容的版本锁定:"base_game_version": "*"

示例

下面是使用 [1, 13, 0]base_game_version 的世界模板的示例 manifest.json。 如果使用,请记住更新 header 和 module 的 UUID。

{
    "format_version": 2,
    "header": {
        "name": "pack.name",
        "description": "pack.description",
        "version": [ 1, 0, 0],
        "lock_template_options": true,
        "base_game_version": [ 1, 13, 0],
        "uuid": "<FIRST GENERATED UUID>"
    },
    "modules": [
        {
        "version": [ 1, 0, 0],
        "type": "world_template",
        "uuid": "<SECOND GENERATED UUID>"
        }
    ],
    "metadata": {
        "authors": ["Author Name"]
    }
}

通过指定您的世界针对哪个版本进行验证,可显著降低其在未来版本的《我的世界》中被破坏的可能性。 基础游戏版本控制并不能取代对内容的日常测试和维护,但它确实让您可以将更多时间专注于创造很酷的新事物而不是修复旧内容。

在《我的世界》市场中更新世界模板的基础游戏版本

现在,创作者可以随时提交对其世界模板的更新。 这些更新可能包括将其世界模板的基础游戏版本修订为更新版本。

当世界模板在《我的世界》市场中更新时:

  1. 模板中所有新创建的世界都将遵循最新的可用状态。
  2. 从模板实例化的所有世界也将收到更新。

这种行为使市场创作者能够随时更新他们的产品,以解决漏洞和其他生产中的问题。

将世界模板的基础游戏版本更新到 1.18

随着《洞穴及悬崖》第 2 部即将发布 1.18 版本,我们正在对世界生成进行重大更改。 使用现有模板时,内容有可能会中断。

为确保内容继续按预期运行,《我的世界》市场创作者将无法在客户端 v1.18 发布后将其内容的基础游戏版本更新至 v1.18+。 这是一项临时措施,目的是确保在此次大型更新后内容继续按设计运行。

社区中的创作者应该意识到一个潜在的场景:

  1. 一名创作者创建了一个名为 TemplateA 的世界模板,并将 base_game_version 设置为 [1, 17, 0]
  2. 玩家打开《我的世界》基岩版 v1.18,并下载 TemplateA
  3. 创作者使用 TemplateA 实例化一个新世界并将其称为 WorldA
  4. 创作者将 TemplateAbase_game_version 更新为 [1, 18, 0]
  5. 玩家打开 WorldA

在这种情况下,创作者为未使用更新的世界高度变化的《我的世界》版本创建并发布世界模板。 如果创作者将现有模板更新为 [1, 18, 0](确实使用了新的世界高度),那么玩家使用该模板生成的世界将自动更新为新的世界高度。 这可能会改变世界的布局并破坏现有的内容。

为了防止任何信息丢失,建议创建一个现有模板的副本,即我们场景中的 TemplateB,将 base_game_version 设置为 [1, 18, 0],并使用此新模板分发给玩家。

  1. 创作者创建一个名为 TemplateA 的模板并将 base_game_version 设置为 [1.17.4] 或以前的版本。
  2. 玩家打开《我的世界》基岩版 1.18 之前的版本,并下载 TemplateA
  3. 创作者使用 TemplateA 实例化一个新世界并将其称为 WorldA
  4. 《我的世界》基岩版客户端已更新至 v1.18+。
  5. 创作者复制 TemplateA 并创建一个将 base_game_version 设置为 [1, 18, 0]TemplateB
  6. 创作者在发布前测试并验证 TemplateB
  7. 玩家下载 TemplateB 并创建一个新世界 WorldB