跳到主要内容

为 EliteMobs 建造

以下 wiki 页面将帮助你理解创建 EliteMobs 地下城和竞技场所需的流程。

术语:

  • “Boss” —— 大型遭遇战,意在供大量玩家共同挑战
  • “Miniboss”(小 Boss) —— 较小的遭遇战,通常单个玩家即可击杀
  • “Fodder”(杂兵) —— 相对容易击杀的怪物

理解 EliteMobs 的地下城分类

Lairs(巢穴)

最小的尺寸类别

巢穴通常约为 50x50 的单体建筑,以世界的形式分发,通常包含一场大型 Boss 遭遇战,不过有些也可能包含一个小 Boss 和一些杂兵。

Minidungeons(小型地下城)

中等尺寸类别

小型地下城通常约为 100x100 或 150x150 的建筑,往往由多个建筑或包含多个区段的建筑组成。它们有 1 个 Boss,通常至少有 3 个或更多小 Boss。它们还有大量杂兵。

Adventures(冒险)

冒险是完整的冒险地图,通常不以方块来衡量。它们有城市那么大,甚至更大。它们有 1 个 Boss 和 10 个以上的小 Boss,以及数十种独特的杂兵,在地图中通常总计达到数百乃至数千个。

Arenas(竞技场)

竞技场是 EliteMobs 中基于波次的生存竞技挑战。它们通常约为 100x100,不过根据角点坐标配置,任何尺寸都是可行的。它们可以有任意数量的波次,但出于性能考虑,通常不建议超过 50 波。

竞技场配置选项

  • 竞技场形状:可以使用 cylindricalArena 设置将竞技场配置为矩形或圆柱形
  • 玩家数量限制:设置参与竞技场的最少和最多玩家数
  • 访问控制:使用权限要求来限制竞技场访问
  • 自定义奖励:为完成竞技场波次配置特定奖励
  • 波次自定义:为每一波自定义波次间歇和 Boss 组成

Instanced Dungeons(实例地下城)

实例地下城与小型地下城类似,区别在于它们是实例化的。也就是说,每当一名玩家或一组玩家想要前往实例地下城时,都会专门为他们生成一个新世界。

实例地下城为每名玩家或每个队伍提供个性化的地下城体验。当玩家进入实例地下城时:

  • 会专门为该队伍创建一个新世界
  • Boss 的生命值会根据玩家人数缩放(约每名玩家 0.75 倍,最低相当于 2 名玩家的生命值)
  • Boss 等级可以适配玩家所选的难度
  • 可以配置玩家锁定计时器,以防止在一定时间范围内反复尝试

附魔挑战地下城:实例地下城也可以配置为附魔挑战,玩家仅在物品附魔尝试触发挑战时才能进入这类地下城。这创造了一个独特的玩法循环——为强力物品附魔需要完成地下城内容。

Raids(团队副本)

实例化内容——即将推出

地下城配置选项

在创建地下城时,管理员可以使用若干配置选项:

环境设置

  • 世界环境:通过 environment 字段将地下城配置为使用普通世界、下界或末地世界环境
  • 爆炸控制:使用 allowExplosionBlockDamage 标志启用或禁用地下城内的爆炸方块破坏(默认为 false
  • 液体流动控制:使用 allowLiquidFlow 标志控制液体是否能在地下城内流动(默认为 true
  • 鞘翅控制:使用 allowElytra 标志允许或禁止在地下城内进行鞘翅飞行(默认为 false

玩家管理

  • 锁定计时器:设置 dungeonLockoutMinutes 来控制玩家在重新进入地下城前必须等待多久(默认为 4320 分钟 / 72 小时;设为 0 可禁用锁定)
  • 玩家数量:为实例化内容设置 minPlayerCount(默认 1)和 maxPlayerCount(默认 5
  • 区域消息:配置 regionEnterMessageregionLeaveMessage 以提供自定义玩家通知
  • 权限要求:将地下城访问限制为拥有特定权限的玩家

建造方式

  • 基于原理图的建造:可以使用 schematicNameanchorPoint 配置从原理图文件构建地下城
  • 包版本管理:使用 dungeonVersion 来追踪内容更新并管理地下城版本
  • 传送列表显示:使用 listedInTeleports(默认为 true)来控制地下城是否显示在地下城传送员菜单中
  • 背景音乐:设置 song 在玩家处于地下城内时播放自定义曲目

主题设计

任何 EliteMobs 建筑最重要的部分就是主题。主题会影响建筑的设计、内容、传说以及 Boss。

举个例子,你可以看看 这里的北极主题。它的构思是把与圣诞相关的 Boss 放进一个雪花玻璃球里,造就了一个视觉上引人注目、机制上又很有趣的地点。

这里是另一个例子,绿洲。它的核心创意是打造一个被亡灵和木乃伊占据的古埃及地点,是 EliteMobs 中最受欢迎的建筑之一。

战斗地点

战斗地点应避免营造容易被利用的地形。这意味着要避免制造玩家可以爬上去躲避危险的柱子、可以用来骗过 AI 的装饰物,以及其他类似的障碍。某些漏洞总会被找到,这并不太要紧,但 Boss 所在地点应当尽量不易受到这些漏洞的影响。

理想的 Boss 战斗区域应相对平坦、无遮挡、半径约 30 格,可以包含一些柱子或其他地图元素,玩家必须躲在其后才能应对某些 Boss 机制。

如果走廊中打算放置增援怪物,那么走廊应至少 5 格宽。小 Boss 的竞技场半径可以约为 15 格,具体取决于它们所拥有的技能 / 主题。

请注意,这些只是最小尺寸。超过这些尺寸其实并没有什么问题。

请记住,你可以使用 EliteScript过渡方块 来封闭区域或改变环境方块。这是确保玩家只有在击败某只怪物后才能继续前进的好办法。

EliteMobs 包含反漏洞系统和战斗标记功能,可防止玩家利用 Boss 机制,与精心设计的战斗地点相辅相成。

为 EliteMobs 进行设计

你越了解 EliteMobs,为它制作的内容就越出色。以下是一些有助于你为地下城构思有趣点子的 EliteMobs 功能列表:

  • 区域 Boss —— 地下城中的每个生物都是区域 Boss,意味着它们有牵引(leash,如果它们离开一定距离就会被拉回出生点)并会按计时器重生。
  • 创建 Boss —— 这将向你展示一个 Boss 能做什么、能成为什么,比如伪装、生命值倍率、能否移动以及以何种速度移动、嘲讽等等!
  • EliteScript —— 当谈到打造令人难忘、只受你想象力限制的遭遇战时,EliteScript 是你手中最强大的工具。EliteMobs 内置 50 多种技能,包括元素攻击、弹射物变体、Boss 专属机制以及实用技能。
  • 宝箱 —— 它们可以装有物品,甚至能变成敌人(拟态怪 / mimic)
  • Boss 阶段 —— Boss 可以拥有多个阶段。这个系统非常强大,因为 Boss 在阶段之间可以变成任何东西,包括不同的实体类型、不同的伪装、不同的自定义模型等等。还可以配置阶段专属的音乐来增强氛围。
  • 过渡方块 —— 这些方块会在 Boss 生成或死亡时放置。它们还可以在 Boss 切换阶段时被生成和清除!它们可以用来打造非常有趣的动态竞技场。
  • 虫洞 —— 可以把玩家传送到其他位置的炫酷传送门。支持多种视觉样式(CRYSTAL、ICOSAHEDRON、CUBE),可自定义粒子效果和 RGB 颜色。

额外的 Boss 功能

  • Boss 坐骑:Boss 可以骑乘其他实体,并使用自定义模型的坐骑挂点来实现独特的视觉效果
  • Boss 拖尾:配置随 Boss 移动而跟随其后的视觉粒子拖尾
  • Boss 嘲讽:设置多条 Boss 可以使用的随机战斗消息(造成伤害时和受到伤害时的消息)
  • Boss 逃脱机制:配置 Boss 可以从战斗中逃脱的条件

遭遇战设计

在设计战斗区域时,遭遇战设计应当是优先考虑的事项。理想情况下,你应当先有一个想用哪些技能的构思,或者至少明确这些技能的主题——比如火、闪电、冰、增援,或任何契合 EliteMobs 技能的元素。一旦明确了你想要的技能,就可以据此设计战斗区域。

如果 Boss 拥有需要玩家逃离它的技能,那么区域就必须足够大以容纳这种行为。如果有一种技能要求玩家躲在障碍物后面,那么建筑就需要这类障碍物。建造这些竞技场可以涉及大量细节,你考虑得越周全,遭遇战就会越出色。

修改 EliteMobs 资源包

从 Minecraft 1.21.4 版本和 EliteMobs 9.1.13 版本起,EliteMobs 资源包已更新,以契合 Minecraft 使用自定义模型的新方式。

更新后的 EliteMobs 资源包结构如下:

elitemobs_resource_pack

  • assets
    • elitemobs
      • items
        • 该目录包含定义 Minecraft 可以使用哪些自定义模型的 JSON 文件。实际的模型存储在 models 文件夹中。
        • 子目录:
          • coins
          • equipment
          • primis_map
          • ui
      • models
        • 该文件夹包含作为 JSON 文件的实际模型文件。
        • 子目录:
          • coins
          • equipment
          • primis_map
          • ui
      • textures
        • 该文件夹存储所有纹理,包括模型所使用的纹理。
        • 子目录:
          • blocks
          • gui
          • items(模型专属的纹理存储在这里)
          • primis_map
          • ui
    • minecraft
      • atlases
      • font
      • models
        • items(包含指定 Minecraft 中哪些物品应使用自定义模型的 JSON 文件)
      • sounds
        • custom(存储自定义声音文件)

让我们来剖析一下 *.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\items\coins* 文件夹中的一个 JSON 文件是如何构成的,以及它的作用:

{
"model": {
"type": "minecraft:model",
"model": "elitemobs:coins/coin1"
}
}

用途: 这个 JSON 文件告诉 Minecraft 这是一个模型,指定模型的类型,并指明模型文件的位置。

关键字段:

type: minecraft:model 这指定该文件代表一个模型类型。 model: elitemobs:coins/coin1 这指向资源包内模型的位置。

路径详解:

elitemobs: 指示 Minecraft 在 assets 目录下的 elitemobs 文件夹中查找。 coins/coin1 指定子文件夹和模型文件名。

所引用模型文件的完整路径为: *.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\models\coins\coin1.json


测试你的自定义模型是否正常工作的一个好方法,是使用以下命令:

/minecraft:give @p apple[item_model="elitemobs:coins/coin1"]

工作原理: 这条命令会给你一个使用 elitemobs:coins/coin1 模型的苹果。如果资源包设置正确,你应当能看到自定义硬币模型被应用到苹果物品上。

测试你自己的自定义模型: 如果你已经将自己的自定义模型添加到资源包中,请按照以下步骤进行测试:

  1. 创建模型 JSON: 将你的 JSON 文件放入 items 目录下相应的子文件夹中。 例如: assets/elitemobs/items/mymodel/myawesomemodel.json

  2. 添加模型文件: 将对应的模型文件(myawesomemodel.json)添加到同一子文件夹下的 models 文件夹中。 例如: assets/elitemobs/models/mymodel/myawesomemodel.json

  3. 添加纹理: 将模型的纹理文件添加到 textures 文件夹中。 例如: assets/elitemobs/textures/items/myawesomemodel.png


一切设置完成后,使用下面的命令来测试你的模型:

/minecraft:give @p apple[item_model="elitemobs:mymodel/myawesomemodel"]

如果一切操作正确,你的手中会收到一个苹果,它会显示你的自定义模型,而非默认的苹果模型。

有疑问?

随时在 Discord 上提问!