跳到主要内容

创建物品

webapp_banner.jpg

创建自定义物品

什么是自定义物品?

自定义物品是由 EliteMobs 通过配置文件定义的物品。你可以自定义这些物品的多个方面,例如物品的等级、附魔、名称、说明文字(lore)、纹理等等!

Webapp

你可以 在这里 轻松快捷地创建自定义战利品!

在开始之前

自定义物品放在哪里?

自定义物品文件放入配置文件夹 ~/plugins/EliteMobs/customitems

可以创建子文件夹,例如 ~/plugins/EliteMobs/customitems/myitems。建议这样做以保持井然有序。

文件以 .yml 文件格式存储,进行配置工作时推荐使用 Notepad++ 作为文件编辑软件。一个文件定义一个 Boss,不过同一个 Boss 也可以被生成多次,甚至可以为同一个 Boss 文件设置多个生成位置。

你可以使用 webapp 来快速轻松地创建自定义 Boss 等内容。

最小可能配置

请注意,自定义物品最小可能的配置文件是:

注意这只是一个空文件。它会默认使用一把名为 "Default name" 的木剑。本页面中的一切都是可选的!

示例物品

让我们来看一个物品文件长什么样的示例。

示例
isEnabled: true
material: WOODEN_AXE
name: '&4Test item'
lore:
- This is a cool item
- It has cool lore
enchantments:
- DAMAGE_ALL,4
- FLAMETHROWER,1
potionEffects:
- FAST_DIGGING,0,self,onHit
- POISON,0,target,onHit
- GLOWING,0,self,continuous
dropWeight: dynamic
scalability: scalable
itemType: custom

自定义物品设置

以下是你可以为自定义物品配置的所有项目的列表:


isEnabled

设置物品是否启用。不影响已经生成的物品。

默认值
isEnabledtrue / falsetrue
示例
isEnabled: true

material

设置物品的材质。

默认值
material从此列表中选择!WOODEN_SWORD
示例
material: DIAMOND_SWORD

level

设置物品的等级。

默认值
level整数0

把此项保持在默认值 0,会让 EliteMobs 根据材质推导等级,而不是使用一个固定值。

请注意,如果你将物品的 scalability 设置为 scalable,则此设置无关紧要,因为等级完全来自 Boss。如果你将其设置为 limited,那么这将是物品可能的最高等级。

盔甲材质本身还带有一个以等级表示的内置基础防御:皮革和金算作 3,锁链算作 5,铁算作 6,钻石算作 7,下界合金算作 8。你在这里设置的等级始终是存储在物品上并显示在其说明文字中的那个等级,但如果把它设得低于材质自身的数值,就完全得不到精英防御加成 —— 这件装备的表现就和普通的原版材质一样。

示例
level: 100

name

设置物品的显示名称。

默认值
name颜色代码字符串"Default name"
示例
name: "&2Cool item"

create_item_name.jpg


lore

设置物品的说明文字(lore)。

默认值
lore颜色代码列表
示例
lore:
- "&2This is the coolest sword"
- "&2of all time!"

create_item_lore.jpg


enchantments

设置物品上的附魔。

默认值
enchantmentsMinecraft 附魔EliteMobs 自定义附魔列表

请注意,这些条目遵循 enchantmentName,enchantmentLevel 的格式。请查看下面的示例!

示例
enchantments: 
- "DAMAGE_UNDEAD,8"
- "DURABILITY,4"
- "DAMAGE_ALL,7"
- "LOUD_STRIKES,3"

create_item_enchantments.jpg

另请注意,像锋利(sharpness)这样的附魔,一旦等级开始超过原版 Minecraft 的上限,就会默认变为精英锋利(elite sharpness)。

请注意,scalablelimited 物品在每一次掉落时都会重新打散它们的附魔等级。你配置的附魔等级总和会被保留,但会在你列出的各个附魔之间随机重新分配,因此同一件物品的两个副本可能得到不同的分配结果。只有 fixed 缩放方式的物品才始终使用文件中写明的确切等级。


potionEffects

设置物品将拥有的药水效果。这些效果可以施加到玩家身上,或施加到被玩家伤害的实体身上。

默认值
potionEffectsMinecraft 药水效果列表

此外,药水效果使用一种特定格式,允许管理员选择谁受到影响以及何时受到影响:

设置描述默认值
药水效果等级设置药水效果的等级。药水效果从 0 级开始整数
受影响的实体设置谁受到药水效果的影响。self(玩家)/ target(被击中的实体)
施加方式设置药水效果何时被施加。onHit / continuous(持续不断地重新施加)

药水效果的格式为 potionEffectName,potionEffectLevel,affectedEntity,applicationMethod。最后两个参数(affectedEntityapplicationMethod)是可选的,如果未指定,则默认为 selfcontinuous。请查看下面的示例!

药水效果持续时间:

  • 持续型效果会在物品被手持或装备期间每秒刷新一次(每次施加持续 2 秒,因此效果永不中断)
  • 夜视会获得 15 秒的特殊持续时间
  • 命中型效果使用基于服务器配置的持续时间

当查看一件带有 药水效果 的物品时,你会看到表明效果如何施加的图标:

  • ☠️ 骷髅 —— 以 敌人 为目标。
  • 🛡️ 盾牌 —— 以 使用者 / 玩家 为目标。
  • ⚔️ 双剑 —— 在 命中时 触发。
  • 🔄 循环圆环 —— 在物品被穿戴或手持期间 持续 施加。

EliteMobs 还提供作为护符(charm)的自定义物品。这些物品除了在被手持或装备到某个槽位时为玩家提供药水效果外,不做任何其他事情。

警告:使用 INSTANT_DAMAGE 药水效果会在命中时治疗亡灵怪物,因为这是原版 Minecraft 的默认机制。

不起作用的效果:

  • ABSORPTIONHEALTH_BOOST 会被物品药水效果系统完全跳过。无论你把它们设为 continuous 还是 onHit,它们都永远不会被施加。
  • onHit 方式施加到 target 上的 LEVITATIONSLOWNESSBLINDNESS,在你击中的实体是生命值倍率大于 1 的精英怪时会被忽略,而这基本涵盖了所有自定义 Boss。它们对普通精英怪和原版怪物仍然有效。
示例
potionEffects: 
- "POISON,0,target,onHit"
- "HEAL,1,self,onHit"
- "NIGHT_VISION,0,self,continuous"

create_item_potion_effects.jpg

使用这组药水效果时,将会发生以下情况:

命中时,中毒药水效果(1 级)会施加到被玩家击中的实体身上。此外,玩家会受到一个 2 级的瞬间治疗药水效果的影响。

持续地,玩家会被赋予夜视。这意味着只要玩家穿戴或手持该物品,就会一直拥有夜视。


scalability

设置物品的等级如何随掉落它的 Boss 的等级而增长。

默认值
scalabilityfixedlimitedscalable。请查看下文!scalable

查看此列表以了解不同选项的作用!

设置描述
fixed物品等级将始终为配置文件中设定的等级。
limited物品的最高等级将受限于配置文件中设定的等级或 Boss 的等级,以两者中较低者为准。
scalable物品的等级将完全基于掉落它的 Boss 的等级。

请注意,带有 dropWeight 的物品将始终采用 fixed 缩放方式。

示例
scalability: "scalable"

itemType

设置你可以从何处获得该物品。

默认值
itemTypecustomuniquedroppable。请查看下文!custom

共有三种物品类型:

设置描述
custom该物品将能够从任何可掉落战利品的 EliteMobs 怪物处掉落,并会出现在自定义商店中。
unique该物品不会被任何 Boss 掉落,也不会出现在自定义商店中。获得它的唯一方法是通过 Boss 的 uniqueLootList 配置一个自定义 Boss 来掉落它!
droppable该物品像 custom 一样进入随机精英掉落池,但被排除在商店之外——玩家可以将其作为普通精英掉落物找到,但永远无法直接购买。适用于那些应当让人感到是凭本事赢得、但又不需要锁定到特定 Boss 的物品。
示例
itemType: "unique"

dropWeight

设置物品将归入的战利品表。

默认值
dropWeightdynamic 或一个 双精度 值。dynamic

EliteMobs 为自定义物品提供了 5 种不同的战利品表,不包括那些直接配置的,比如自定义 Boss 上的 uniqueLootList

它们如下:

战利品表描述默认权重
程序生成物品基于服务器配置文件随机生成的物品90.0
加权物品权重不为 dynamic 的物品1.0
固定物品采用 fixed 缩放方式的物品10.0
受限物品采用 limited 缩放方式的物品3.0
可缩放物品采用 scalable 缩放方式的物品6.0

当一个 Boss 死亡时,会根据 ItemSettings.yml 配置文件从这些表中选取一件物品。各权重的默认值已列在上面的 默认权重 中。权重越高,物品掉落的可能性就越大。

加权物品默认权重 很小,意味着它们不会很常掉落。dropWeight 不为 dynamic 的物品意在做得稀有,并且仅用于 Boss 所掉落护符的默认设置中——这类物品不直接用于战斗,而是通过药水效果为玩家提供增益。

你在此设置的 dropWeight 设定的是某件特定 加权物品加权物品 列表中掉落的几率。它并不会增加 加权物品 整体的掉落几率。

如果你感到困惑,只是想制作武器和盔甲,那么跳过这个设置即可,因为它会正确地默认为 dynamic

加权物品 通常权重为 1.0。

请注意,设置一个数值型的 dropWeight 会强制该物品进入固定与加权掉落池,即使它的 itemTypeunique 也一样。如果你想要一件只由 Boss 掉落的物品,请把 dropWeight 保持为 dynamic

示例
dropWeight: "dynamic"

customModelID

注意: 此设置已被移除。它不再从配置文件中读取。请改用 customModelV2,自 Minecraft 1.21.4+(EliteMobs 9.1.13+)起,它是唯一被识别的模型 ID 设置。你配置文件中任何已有的 customModelID 条目都将被忽略。

设置物品的纹理。需要使用资源包中的有效纹理!

默认值
customModelID整数
示例(已不再可用)
material: DIAMOND_SWORD
customModelID: 1

此设置不再有效。请迁移到 customModelV2


customModelV2

从 Minecraft 1.21.4 版本(EM 9.1.13)起,这是配置自定义物品模型 ID 的新必需设置。 设置物品的纹理。需要使用资源包中的有效纹理!

默认值
customModelV2字符串

自动皮肤等阶: 如果你把此项和 equipmentModelID 都留空,EliteMobs 会应用它自己的、基于等级的皮肤(来自 EliteMobs 资源包)。等阶根据物品等级选取:

最低物品等级等阶
20bronze
40palladium
60corrupted
80living
100ultimatium

等级低于 20 的物品不会获得等阶皮肤。等阶只会应用到剑、斧、锄(渲染为镰刀)、弓、弩、头盔、胸甲、护腿和靴子上。三叉戟被刻意排除在外。

设置 customModelV2equipmentModelID 中的任意一个,都会让该物品退出这套自动系统:你设置的那个键会被原样使用,而你未设置的那个键则回退到该物品等级对应的等阶模型。使用自有模型键的物品还会跳过等阶系统所应用的原版属性缩放 —— 这只影响原版的攻击伤害、攻击速度、护甲、护甲韧性和击退抗性数值,不影响 EliteMobs 自身的伤害与防御数值。

示例
customModelV2: elitemobs:equipment/magmaguys_toothpick

此设置为物品指定一个特定的纹理。它的工作原理如下:

  • elitemobs: 是资源包 assets 文件夹中的主目录。
  • equipmentassets/elitemobs/models 内部的一个子目录。
  • magmaguys_toothpick 是位于资源包中 assets/elitemobs/models/equipment 的模型文件。

在此示例中,模型文件的完整路径为: \.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\models\equipment\magmaguys_toothpick.json

这将使用玩家所用 EliteMobs 资源包中的自定义纹理 magmaguys_toothpick。如果你想正确使用此功能,建议你将服务器设置为在玩家登录时给予他们资源包。


equipmentModelID

为物品在被装备或穿戴时设置一个单独的模型。需要使用资源包中的有效纹理!

默认值
equipmentModelID字符串

customModelV2 一样,设置这个键会让该物品退出自动的、基于等级的皮肤等阶系统。

示例
equipmentModelID: elitemobs:equipment/helmet_texture

这设置了物品被穿戴时所显示的特定纹理,与物品在物品栏中的外观分开。


scriptedItem

将物品链接到一个 FreeMinecraftModels 脚本化物品。设置后,物品会获得 FMM 的 3D 模型和 Lua 脚本行为,同时保留 EliteMobs 的全部名称、说明文字、附魔、等级和灵魂绑定系统。

这需要在服务器上安装 FreeMinecraftModels。如果未安装 FMM,此设置会被静默忽略,物品将正常运作,但没有模型或脚本。

该值是 FMM 物品 ID —— 即 FMM models 文件夹中模型 YML 配置的文件名,不含 .yml 扩展名。例如,如果 FMM 在 plugins/FreeMinecraftModels/models/flame_blade.yml 处有一个模型配置,其中 material: IRON_SWORDscripts: [flame_blade.lua],那么你会将其引用为 flame_blade

当设置了 scriptedItem 时,它的优先级高于 customModelV2equipmentModelID —— EliteMobs 会跳过它自己的模型系统,转而使用 FMM 的模型。

默认值
scriptedItem字符串(FMM 物品 ID)
示例
material: IRON_SWORD
name: "&cFlame Blade"
lore:
- "&7Burns with eternal fire"
enchantments:
- "FIRE_ASPECT,2"
- "DAMAGE_ALL,5"
scalability: scalable
scriptedItem: flame_blade

在这个示例中:

  • EliteMobs 控制物品名称、说明文字、附魔、等级缩放和灵魂绑定行为
  • FMM 提供 3D 物品模型并运行 flame_blade.lua 脚本(例如装备时的粒子效果、自定义攻击行为)
  • material: IRON_SWORD 被 EliteMobs 用作基础物品类型

showSource

注意: 此设置目前不起任何作用。这个键仍会被从配置文件中读取而不报错,但插件中没有任何部分会读取其结果值,因此把它设为 false 并不会隐藏物品的来源说明文字。

来源那一行是否显示,实际上由 ItemSettings.ymlitemLoreStructureV2 列表中的 $itemSource 占位符控制。移除该占位符即可从所有精英物品上去掉来源行。

默认值
showSource布尔值true

permission

设置获得该物品所需的权限。

默认值
permission字符串

你需要一个权限管理插件来给玩家分配权限。

该权限只在物品为玩家生成或掉落的那一刻被检查。之后没有任何机制会重新检查这个权限节点,因此交易或丢弃物品仍然可能把它转移给没有该权限的玩家。保持 soulbound 启用,是防止这种情况的实用做法。

示例
permission: "elitemobs.cool.permission"

通过此设置,只有拥有权限 elitemobs.cool.permission 的玩家才能获得此物品。


soulbound

设置物品在掉落时是否应灵魂绑定。

默认值
soulbound布尔值true
示例
soulbound: true

测试你的物品

有两条管理员命令可以按需生成一件已配置好的物品,省得你每次调整文件都要去刷 Boss:

命令作用
/em loot give <player> <filename>按物品配置文件中写明的等级给予该物品。
/em loot reward <player> <filename>按目标玩家的战斗等级缩放后给予该物品。

两者都需要 elitemobs.loot.admin 权限。