跳到主要内容

如何创建自定义EternalTD地图

为你的地图创建level.yml文件

按照以下简单步骤创建关卡配置文件来开始你的地图:

  1. 首先创建一个新的文本文档,并给它起一个名字,比如 your_level_name.yml(将"your_level_name"替换为你实际的关卡/地图名称)。

  2. 在你喜欢的文本编辑器中打开文件。

  3. 让我们从有趣的部分开始!使用此设置添加你的关卡名称:

levelName: "&aMy Awesome Level"

随意使用一些Minecraft颜色或其他文本修饰符来增添趣味。

  1. 现在,用一个很酷的描述给你的关卡一些特色:
levelDescription:
- "&aMy level is pretty cool."
- "&aHope you enjoy!"

你可以在描述中添加更多行,但保持简洁是个好主意。

  1. 该设置波次了!指定你的关卡应该使用哪些EternalTD波次:
wavesConfigFile: my_waves.yml

只要记得使用你的波次文件的实际名称。每个关卡一个波次!

  1. 设置你的关卡将使用的世界(建筑):
worldName: my_world_folder_name

使用EternalTD的 worlds 文件夹中找到的实际世界名称。

  1. 最后但同样重要的是,为你的关卡设置选择完美的环境:
environment: NORMAL

你可以在NORMAL、NETHER或THE_END之间选择。自己选吧。

你的关卡配置文件已经设置好了!文件的其余部分将由我们在接下来的步骤中使用的EternalTD命令填写,当我们映射建筑时。

准备你的建筑

在映射你的建筑以用于EternalTD之前,必须按以下方式设置它:

  • 将它设置在虚空世界中。如果使用multiverse,你可以使用命令:
    /mvcreate yourworldnamehere NORMAL -g VoidGen:.
  • 在建筑周围设置一个紧密的世界边界。
  • 在建筑下方几个方块处创建一个屏障圆柱体,高度为一个方块,半径足够大以到达世界边界(建议200方块半径)。使用WorldEdit,你可以执行:
    //cyl barrier 200 1
  • 将出生点设置在建筑中心的安全位置。
  • 应用以下规则:
    • /gamerule doWeatherCycle false
    • /gamerule doDaylightCycle false
    • /gamerule doMobSpawning false
    • /gamerule doFireTick false
    • /gamerule fireDamage false
    • /gamerule mobGriefing false
    • /gamerule disableRaids true
    • /gamerule announceAdvancements false
  • 地图的游戏区域需要在相同的Y层。当我们开始映射过程时,任何更高或更低的东西都会被忽略。

映射建筑以用于EternalTD

要映射你的建筑的游戏区域以用于EternalTD,请按照以下步骤操作:

  1. 手动测量建筑,确保只包括游戏区域,其他什么都不包括。在测量时记下坐标。
    游戏区域应包括地图的起始(怪物生成)和结束部分。起始通常使用绿色方块建造,结束使用红色方块。

  2. 首先测量建筑的X、Y和Z轴。站在地图游戏区域X轴的一个角落,写下报告的坐标(你可以使用方块坐标)。移动到X轴的另一侧并写下该坐标。

  3. 对于Y轴,站在游戏区域上并写下报告的坐标。

  4. 重复与X轴相同的过程来测量Z轴。你可以看看这个示例图像,帮助你理解我们在这里试图完成什么: Mapping Example 注意我们只测量我们想要游戏区域所在位置的坐标,忽略其余部分。如示例所示,请确保在测量游戏区域时包括起始和结束。
    如果你正在测量的游戏区域一端较宽而另一端较窄,你应该测量最宽的部分。

  5. 完成测量后,你应该有类似这样的东西:

    X axis: -57, 56
    Y axis: 65
    Z axis: 34, -34
  6. 将这些数字从最高到最低重新排列,以获得两组完整的XYZ坐标:

    56 65 34 (highest XYZ values)
    -57 65 -34 (lowest XYZ values)
  7. 使用以下命令选择坐标:

    /etd selectfloorcoordinate Xhigh Y Zhigh Xlow Y Zlow
    Example: /etd selectfloorcoordinate 56 65 34 -57 65 -34
  8. 坐标现在已被选择并存储在内存中。如果你收到错误,那么你的测量不正确或游戏区域没有正确建造。要检查我们是否正确映射了游戏区域,请运行以下命令:

    /etd register your_level_name.yml test

    将"your_level_name"替换为你正在尝试创建的实际关卡/地图名称。如果一切都做对了,你应该看到屏障标记游戏区域中的每一个方块。

  9. 检查游戏区域并确保一切看起来正常,然后再次运行命令,但这次不要在末尾加上 test

    /etd register your_level_name.yml

    这现在将把游戏区域保存到你的关卡文件中,你的关卡文件现在应该可以使用了。

精简世界文件夹

你的世界文件夹中有几个文件和文件夹可以丢弃,因为EternalTD不使用所有这些。这将减小你的世界的大小并使其更容易分发。

对于NORMAL环境:

要准备你的世界,请保留以下文件和文件夹:

  1. region 文件夹

  2. data 文件夹中的 raids.dat(确保复制时它在 data 文件夹内)

  3. level.dat 文件

你可以安全地删除世界文件夹中的所有其他文件和文件夹。这将为NORMAL环境正确设置你的世界。

对于NETHER和THE_END环境:

要准备你的世界,请保留以下文件和文件夹:

  1. DIM-1 文件夹内的 region 文件夹(确保复制时它在 DIM-1 文件夹内)

  2. data 文件夹中的 raids.dat(确保复制时它在 data 文件夹内)

  3. level.dat 文件

你可以安全地删除世界文件夹中的所有其他文件和文件夹。这将为NETHER和THE_END环境正确设置你的世界。