跳到主要内容

修改现有迷你地下城

应大众要求,本页介绍修改现有迷你地下城的基础知识。这不是一份分步指南,而是从更宏观的角度审视各系统需要如何被修改。为了修改那些数值,你将需要阅读关于自定义 Boss 和自定义物品 的 Wiki 页面。

前置要求​

在修改迷你地下城之前,你应当:

  • 对 YAML 语法和文件格式有基本的了解
  • 在进行修改之前务必备份你的地下城文件
  • 知道你需要在修改后重启服务器或使用 /em reload

地下城文件结构​

迷你地下城由分布在不同文件夹中的多种文件类型组成:

  • content_packages/[package_file].yml - 主地下城包配置文件(包文件直接位于 content_packages 中,也可以放在子文件夹内以便组织)
  • custombosses/[dungeon_name]/ - Boss 配置文件
  • customitems/[dungeon_name]/ - 自定义物品定义
  • customtreasurechests/[dungeon_name]/ - 宝箱配置
  • npcs/[dungeon_name]/ - NPC 定义
  • Minecraft 世界本身 - 用于开放/世界地下城的实时世界文件夹,或为实例地下城放置在 world_blueprints/[dungeonConfigFolderName]/ 中的副本

在修改地下城时,根据你想要更改的内容,你可能需要编辑跨多个文件夹的文件。

理解迷你地下城的组成部分​

迷你地下城由多个相互关联的组成部分构成:

  • 地下城包配置 - 主配置文件,控制地下城层级的设置,如难度、队伍规模、传送和保护
  • 自定义 Boss - 存储在 custombosses/ 文件夹中的各个 Boss 配置
  • 自定义物品 - customitems/ 文件夹中的战利品和装备定义
  • 宝箱 - 在 customtreasurechests/ 文件夹中配置的额外战利品来源
  • NPC - 用于任务或氛围的非玩家角色
  • 世界文件 - 地下城的地形和建筑。EliteMobs 9.0 已移除基于结构文件的地下城;所有地下城都使用世界

修改地下城包设置​

定位地下城配置文件​

迷你地下城通过位于 content_packages/ 文件夹中的包文件进行配置。每个地下城都有一个主配置文件(通常以地下城命名),控制地下城层级的设置。

修改基础地下城设置​

你可能想要修改的地下城包数值示例:

contentLevel: 20
dungeonSizeCategory: DUNGEON
minPlayerCount: 1
maxPlayerCount: 5
dungeonLockoutMinutes: 60
protect: true
  • contentLevel:实例地下城中显示的内容等级和相对等级同步的基准。动态地下城会忽略它,改用玩家所选的等级;预制动态地下城将其设为 -1。单独修改它不会改变 Boss 文件中的固定等级
  • dungeonSizeCategory:规模分类(LAIR、SANCTUM、MINIDUNGEON、DUNGEON、RAID、ADVENTURE、ARENA、REALM、OTHER)
  • minPlayerCount/maxPlayerCount:队伍人数限制,默认 1 和 5
  • dungeonLockoutMinutes:以分钟为单位的战利品锁定。实例 Boss 死亡时,对攻击者及符合条件、共享击杀归属的队友应用。首次符合条件的击杀开始计时;锁定期间再次击杀,该玩家不会获得 Boss 战利品或技能经验。默认 4320(72 小时),0 禁用。它不会阻止再次入场。
  • protect:启用 EliteMobs 的地下城世界保护,不需要区域插件

修改实例建筑时,应编辑 world_blueprints/<dungeonConfigFolderName>/<worldName>/ 中的原始世界,而非带数字实例后缀的临时世界。导入更新可能替换内容包文件,请先备份自己的修改。

修改地下城难度设置​

对于实例地下城,你可以配置多个难度等级:

difficulties:
- name: normal
id: 0
levelSync: 60
- name: hard
id: 1
levelSync: 50
- name: mythic
id: 2
levelSync: 40

玩家可以在入场时选择难度。levelSync 限制缓存的玩家物品处理路径所用的等级,不会改写身上的物品。当前近战、护甲和投射物计算仍读取原始物品等级,装备附魔的贡献也不受此上限限制。因此,降低数值不能保证战斗更难或装备差距被消除。还应调整各难度的能力、Boss 属性和奖励。详见实例地下城难度。

修改地下城保护与机制​

保护设置​

控制地下城环境的行为方式:

protect: true
allowExplosionBlockDamage: false
allowLiquidFlow: true
  • protect:启用 EliteMobs 对地下城世界的保护功能
  • allowExplosionBlockDamage:允许爆炸破坏受保护世界中的方块,默认 false。只有被追踪的精英爆炸使用 EliteMobs 的方块恢复;原版破坏可能永久保留
  • allowLiquidFlow:允许水和熔岩流动,默认 true
  • allowElytra:允许玩家在地下城世界使用鞘翅滑翔,默认 false

修改地下城进入与传送​

传送配置​

控制玩家在何处生成:

teleportLocation: world_name,100,64,100,0,0

格式为:world,x,y,z,yaw,pitch

权限要求​

限制对地下城的访问:

permission: elitemobs.dungeon.mydungeon

进入实例地下城需要此权限。它不是开放世界内容包的通用访问限制。

修改 Boss 难度​

有几种方法可以修改地下城 Boss 的难度:

修改 Boss 的伤害/生命值倍率​

这是最容易进行的修改。如果你觉得 Boss 造成的伤害太少或太多,或者它们的生命值太少或太多,你可以修改 custombosses 文件夹中 Boss 文件里与这些修饰符相关联的数值。

你会想要修改的数值示例:

healthMultiplier: 0.5
damageMultiplier: 0.5

关于 Boss 属性的更多内容请见此处。

请记住,许多能力具有固定的伤害值或基于百分比的伤害,它们会无视 damageMultiplier 设置。要修改能力伤害,你可能需要编辑能力配置文件本身,或选择不同的能力。

修改 Boss 的能力​

EliteMobs 的主要难度在于应对 Boss 可能拥有的各种能力。高等级 Boss 往往拥有更多、更难的能力,而低等级 Boss 往往拥有更少、更易的能力。某些能力组合在同一个 Boss 上会让战斗更轻松,而另一些能力组合在一起则会让战斗显著更难。

你会想要修改的数值示例:

powers:
- invulnerability_fire.lua
- invulnerability_arrow.lua

关于 Boss 能力的更多内容请见此处。

预制能力现在以 Lua 文件的形式发布。较旧的地下城仍然以 .yml 扩展名引用它们,这依然可以正常工作:.yml 能力引用会先被自动解析为同名的 .lua 能力,然后才回退到字面匹配。你不必重写已有的 Boss 文件,但新内容应当使用 .lua。

EliteMobs 提供横跨多个类别的 71 种能力(68 种 Lua,3 种仍为 YAML)——完整列表见内容创建指南。以下是部分示例:

防御性能力:

  • invulnerability_arrow.lua
  • invulnerability_fall_damage.lua
  • invulnerability_fire.lua
  • invulnerability_fireworks.lua
  • invulnerability_knockback.lua
  • channel_healing.lua
  • shield_wall.lua

攻击性能力:

  • arrow_fireworks.lua
  • arrow_rain.lua
  • attack_fireball.lua
  • attack_lightning.lua
  • bullet_hell.lua
  • meteor_shower.lua
  • firestorm.lua
  • flamethrower.lua

召唤性能力:

  • zombie_friends.lua
  • zombie_parents.lua
  • summon_embers.lua

由于能力组合太多,无法在此一一列出,你将不得不去了解这些能力如何运作,并对你的遭遇进行实战测试,以找到你认为既不太难也不太易的最佳平衡点。

修改 Boss 的等级​

这是最常被问到的问题,虽然这是可以做到的,但要确保你恰当地向上或向下缩放你的 Boss,需要经过几个步骤。

你会想要修改的数值示例:

level: 21

关于 Boss 等级的更多内容请见此处。

这需要结合前面关于伤害/生命值倍率所述的内容,因为更低/更高等级的 Boss 可能需要略有不同的生命值和伤害倍率,才能让战斗手感恰到好处。

然而,在此最需要考虑的方面是 Boss 身上的能力。低等级和高等级的 Boss 往往根据战斗的难度而拥有相当不同的能力组合。对一个 10 级 Boss 和一个 200 级 Boss 使用相同的能力组合,通常会导致难度感受截然不同的战斗。同样,真正找到最佳平衡点的唯一方法就是去了解插件的能力如何运作,并对它们进行实战测试。

修改 Boss 行为​

除了能力之外,Boss 还有影响其行动方式的行为标志:

frozen: false
neutral: false
  • frozen:将移动速度设为零,并在受伤时及下一 tick 清除速度向量。不会禁用 AI、能力或脚本传送。
  • neutral:跳过 EliteMobs 对通常中立生物的强制攻击行为,以及自定义行为实体的创建。原生行为仍会生效;天生敌对的生物不会因此变为被动生物。

修改 Boss 装备​

更改 Boss 穿戴的护甲和武器:

helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS:1A8F3C
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE:1001
offHand: SHIELD

这些字段接受的是 Minecraft 材质名称,而不是自定义物品的文件名。另外还接受三种写法:

  • MATERIAL:number 设定非皮革装备的自定义模型数据(配合资源包使用),例如 GOLDEN_AXE:1001
  • LEATHER_*:RRGGBB 用十六进制颜色为皮革护甲染色,例如 LEATHER_LEGGINGS:1A8F3C
  • 使用符合所接受标准格式的小写玩家 UUID,可生成带该玩家皮肤的 PLAYER_HEAD

材质名称应使用大写。旧前缀 GOLD_ 和 CHAIN_ 会自动转换为 GOLDEN_ 和 CHAINMAIL_。装备直接应用到生物身上;这些字段不会读取 customitems/ 中的物品定义或属性。

修改 Boss 战利品​

你也可以调整自定义战利品。EliteMobs 的多数 Boss 都有专属掉落;修改 Boss 等级时,也应检查掉落内容是否合适。

战利品配置选项示例:

uniqueLootList:
- filename: mob_drop_boots.yml
chance: 0.05
amount: 1
  • filename:物品配置文件
  • chance:掉落概率(0.0 到 1.0,其中 1.0 = 100%)
  • amount:掉落数量(可选,默认为 1)

关于战利品掉落的更多内容请见此处。

宝箱修改​

更改 Boss 等级时,还应检查自动职业战利品和自定义掉落的难度筛选。物品等级与奖励品质是独立的设置。

迷你地下城可以包含带有自定义战利品表的宝箱。箱子配置存储在 customtreasurechests/ 文件夹中,每个箱子一个文件,而每个箱子文件都在 location 键中携带自己的位置(对于出现在多个位置的箱子则使用 locations)。要移动某个箱子或修改它的 lootList,请编辑那些文件 —— 地下城包文件并不保存箱子位置。

署名 / 发布修改后的内容​

在 EliteMobs 下,你可以自由地将你创作的地下城发布到合适的渠道(Discord)。然而,如果你的作品只是对现有地下城的修改,你的提交可能会被移除,尤其是在它只是一处小改动,或者它包含或衍生自付费内容的情况下(原因显而易见)。

你可以自由且欢迎修改任何你已购买或以其他方式下载的内容,以将其调整为适合你服务器需求、在你自己的网络内使用,然而出于显而易见的原因,这并不赋予你再分发的权利。

我们保留出于任何原因、在任何时间下架社区提交内容的权利,尽管我们也实在不愿真的那么做。

更多信息​

如果你认为本页应当进一步扩充,请在 Discord 上留下建议,说明应当添加什么内容。本页提到的各种系统的更多信息,都存在于其他 Wiki 页面中。