为 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) - 区域消息:配置
regionEnterMessage和regionLeaveMessage以提供自定义玩家通知 - 权限要求:将地下城访问限制为拥有特定权限的玩家
建造方式:
- 基于原理图的建造:可以使用
schematicName和anchorPoint配置从原理图文件构建地下城 - 包版本管理:使用
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
- 该目录包含定义 Minecraft 可以使用哪些自定义模型的 JSON 文件。实际的模型存储在
- models
- 该文件夹包含作为 JSON 文件的实际模型文件。
- 子目录:
- coins
- equipment
- primis_map
- ui
- textures
- 该文件夹存储所有纹理,包括模型所使用的纹理。
- 子目录:
- blocks
- gui
- items(模型专属的纹理存储在这里)
- primis_map
- ui
- items
- minecraft
- atlases
- font
- models
- items(包含指定 Minecraft 中哪些物品应使用自定义模型的 JSON 文件)
- sounds
- custom(存储自定义声音文件)
- elitemobs
让我们来剖析一下 *.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 模型的苹果。如果资源包设置正确,你应当能看到自定义硬币模型被应用到苹果物品上。
测试你自己的自定义模型: 如果你已经将自己的自定义模型添加到资源包中,请按照以下步骤进行测试:
-
创建模型 JSON: 将你的 JSON 文件放入
items目录下相应的子文件夹中。 例如:assets/elitemobs/items/mymodel/myawesomemodel.json -
添加模型文件: 将对应的模型文件(
myawesomemodel.json)添加到同一子文件夹下的models文件夹中。 例如:assets/elitemobs/models/mymodel/myawesomemodel.json -
添加纹理: 将模型的纹理文件添加到
textures文件夹中。 例如:assets/elitemobs/textures/items/myawesomemodel.png
一切设置完成后,使用下面的命令来测试你的模型:
/minecraft:give @p apple[item_model="elitemobs:mymodel/myawesomemodel"]
如果一切操作正确,你的手中会收到一个苹果,它会显示你的自定义模型,而非默认的苹果模型。