跳到主要内容

customdrops.yml


## 自定义掉落配置

LevelledMobs的`customdrops.yml`文件允许您使用许多不同的配置选项来构建自定义掉落物,以创建独特的材料和自定义命令,以添加或替换实体的掉落物。

[查看最新默认文件](https://github.com/ArcanePlugins/LevelledMobs/blob/master/src/main/resources/customdrops.yml)

***

## 默认值:

这些配置选项将应用于在CustomDrops中构建的所有掉落物,除非您已修改掉落物的个别属性以覆盖这些默认设置。每个选项都必须有一个值,以便LM的CD能够正常运行,但一旦在此处设置,如果值不会更改,您无需在个别掉落物中设置它。这些默认值适用于CD文件中的所有系统,包括**掉落表**。

> #### 对于任何列为_百分比_的值,请使用以下方法确定要使用的值:
>
> 0.0 = 0% | 0.1 = 10% | 0.25 = 25% | 0.5 = 50% | 0.75 = 75% | 1.0 = 100%
>
> 0.01 = 1% | 0.05 = 5% | 0.001 = 0.1% | 0.005 = 0.5% | 0.00001 = 0.001%

```yaml
defaults:
chance: 0.2
chance-formula: ''
use-chunk-kill-max: true
amount: 1
amount-formula: ''
minLevel: -1
maxLevel: -1
damage: 0
custommodeldata: -1
min-player-level: -1
max-player-level: -1
player-level-variable: ''
player-level-match-value: ''
nomultiplier: true
nospawner: false
equipped: 1.0
equip-offhand: true
equip-on-helmet: false
override: false
maxdropgroup: 1
group-limits:
cap-select: -1
cap-per-item: -1
cap-total: -1
cap-equipped: -1
retries: 0
priority: 0
player-caused: true
item-flags: ''
groupid: ''
overall-chance: 0.0
overall-chance-formula: ''
nbt-data: ''
only-drop-if-equipped: false
mob-scale: 0.0
name: ''
lore:
- ''
- ''
enchantments:
ENCHANTMENT: X
enchantments:
ENCHANTMENT:
shuffle: false
default: 1
X: 0.5
overall-permission: ['']
permission: ['']
cause-of-death: ['']
run-on-spawn: false
run-on-death: true
delay: 0
配置行选项描述
chance:chance-formula:这表示单个CD掉落的百分比几率。chance支持滑动值。chance-formula将覆盖任何其他指定的chance。这允许通过数学公式而不是静态量来处理几率。
use-chunk-kill-max:如果在rules.yml中启用了区块击杀计数系统,则将其设置为true将导致自定义掉落物在达到阈值后不会掉落,直到冷却时间结束。
amount:amount-formula:这表示掉落的单个CD的数量。这可能是范围值,例如1-3,其中从最小/最大值之间随机选择一个值。amount-formula将覆盖任何其他指定的amount。这允许通过数学公式而不是静态或范围量来处理数量。
minLevel: maxLevel:这表示实体在掉落单个CD之前所需的最低和最高等级。替换为-1以禁用特定等级检查。
damage:物品将受到的伤害量。可以使用数字或数字范围。值越高,物品损坏越严重。
custommodeldata:这是一个高级配置选项;这表示应用于材料CD的自定义模型。
nomultiplier:这表示检查CD是否会根据被杀实体的item-drop:值进行乘法。
nospawner:这表示检查CD是否适用于由生成器方块生成的实体。
equipped:这表示如果实体能够装备,单个CD被装备的百分比几率。它将首先尝试放置在手中,然后是头部,否则如果实体通常无法装备物品(如银鱼),则会忽略。支持滑动值。
equip-offhand:如果equipped:成功,并且此设置为true,则它将装备物品到副手而不是主手(如果副手未被占用)。
equip-on-helmet:当设置为true时,如果物品成功装备到生物,该生物将尝试将物品装备到其头盔槽。
name:这表示应用于材料掉落物的名称,当它用于MATERIALPLAYER_HEAD掉落物时。当用于customCommand时,它仅是一个调试值。您可以使用Minecraft的颜色代码,或者如果您的服务器软件支持,可以使用HEX颜色。
lore:此配置选项结构允许您设置多行描述以应用于MATERIALPLAYER_HEAD掉落物。您可以使用Minecraft的颜色代码,或者如果您的服务器软件支持,可以使用HEX颜色。
enchantments:ENCHANTMENT: XENCHANTMENT: X: 0.5shuffle: default:此配置选项结构允许您将附魔应用于物品。将ENCHANTMENT:替换为附魔名称,并将X替换为该附魔的强度。例如,UNBREAKING: 2。您还可以通过使用X: 0.5ENCHANTMENT:下指定附魔级别应用于物品的几率;X表示附魔的强度,而0.5表示该附魔级别被应用的几率。在此部分中,您可以指定shuffle: false,这将按顺序而不是随机处理附魔级别几率。设置default: X将在没有任何附魔级别几率成功时使用指定的级别。
override:这将确定LM是否会与原始掉落物一起处理CD,或者完全替换它们。
maxdropgroup: groupid:在相同EntityTypedrop-table:下的多个项目中使用groupid:将把这些CD组合到它们自己单独处理的组中。maxdropgroup:对从相同groupid中选择的项目数量进行限制以进行处理。
group-limits:cap-select:cap-per-item:cap-total:cap-equipped:retries:group-limits:设置包括多个上限检查,以应用于相同groupid:中的项目。如果设置了group-limits:中的任何设置,则maxdropgroup:的任何值将被忽略。cap-select:功能与当前的maxdropgroup:设置相同;对从相同groupid中选择的项目数量进行限制以进行掉落处理。例如,如果三个项目共享相同的groupid:,并且我设置了cap-select: 1,则只会选择其中一个项目进行潜在的掉落处理。cap-per-item:作为每个项目的amount:上限。这在retries:被使用时非常有用,您不希望玩家获得大量相同的物品。cap-total:作为所有来源组合在一起的总数量上限,适用于相同groupid:中的项目。cap-equipped:作为实体可以成功装备的相同groupid:中物品的总数量上限。retries:作为重新掷骰的能力,告诉LM在第一次尝试后重新处理相同groupid:中的项目X次。这提供了多次处理一组项目的能力,以增加掉落或装备事件的几率。
priority:默认情况下,CD处理掉落物的方式与LM处理规则树的方式类似。通过在单个CD上设置priority:,您可以优先处理某些项目。
player-caused:这表示检查实体的死亡是否由玩家引起,或者是否由环境引起。建议您不要将其从true更改为false,因为将其设置为false将导致任何死亡的等级实体可能掉落您自定义的特殊掉落物。
overall-chance:overall-chance-formula:这表示EntityType的CD被处理的百分比机会。这只需要为EntityType设置一次,如果机会失败,该EntityType的所有CD都不会被处理。支持滑动值。overall-chance-formula将覆盖任何其他指定的overall-chance。这允许通过数学公式而不是静态量来处理从0.01.0的整体机会。
nbt-data:这允许您指定要应用于材料掉落的任何NBT数据。注意:这需要软依赖NBT-API
item-flags:这允许您指定Minecraft提供的各种ITEM_FLAGS以应用于材料。HIDE_ATTRIBUTES - 将隐藏属性,如伤害。HIDE_DESTROYS - 将隐藏物品可以破坏的内容。HIDE_DYES - 将隐藏应用于物品的染料颜色。HIDE_ENCHANTS - 将隐藏物品上的附魔。HIDE_PLACED_ON - 将隐藏物品可以放置的位置。HIDE_POTION_EFFECTS - 将隐藏物品上的药水效果。HIDE_UNBREAKABLE - 将隐藏物品的不可破坏状态。
only-drop-if-equipped:这表示一个检查,如果实体成功equipped:了物品,是否应用chance:掉落。如果设置为true,则只有在物品成功装备时才会尝试掉落。如果设置为false,则无论物品是否装备,都会尝试掉落。
overall-permission: permission:一个MODALLIST配置选项;这表示对实体最近的玩家或杀死实体的玩家的检查,取决于其实现。所有权限都注册为levelledmobs.permission.<node>,其中<node>表示此配置的值。例如,如果您的权限是levelledmobs.permission.vip,您可以这样配置:permission: ['vip']。使用overall_permission:将应用于集合中的所有物品,而permission:应用于每个单独的物品。
cause-of-death:一个MODALLIST配置选项;这表示对实体如何被杀死的检查。这只考虑最后一击,并且会忽略player-caused: true,因为死亡原因通常不涉及玩家互动('火'造成伤害,而不是玩家)。
mob-scale:一个配置值,然后乘以怪物的当前等级,以从%mob-scale%占位符标签生成最终输出。
min-player-level: max-player-level:这表示在单个CD掉落之前,玩家所需的最低和最高Minecraft等级。用-1替换以禁用此特定等级检查。
player-level-variable如果设置了此配置选项,上述min-player-level:max-player-level:将引用此变量而不是玩家的Minecraft等级。您可以在此处使用任何PAPI占位符标签,类似于Player Levelling策略使用变量生成等级的方式。
player-level-match-value如果设置了此配置选项,您可以改为从PAPI占位符标签中检查基于文本的值。这仍然可以引用上述min-player-level:max-player-level:。您可以在此处使用任何PAPI占位符标签,类似于Player Levelling策略使用变量生成等级的方式。标签将与player-level-variable:进行检查。此配置选项包括通配符功能,以从player-level-variable:中提取部分输出。您可以添加*作为前缀、后缀或两者以搜索部分匹配。例如,如果变量输出是Lvl 5 Zombie- S0hp,我可以搜索Zombie*Zombie以成功匹配,因为单词Zombie部分匹配作为通配符检查。在此示例下,搜索Zombie将无法匹配,因为输出中的单词显示为Zombie-,而搜索参数是精确匹配。
external-amount当与LM Items官方插件一起使用时,这将内部数量设置为指定的插件
type当与LM Items官方插件一起使用时,这将设置物品类型(目前仅支持MMOItems)
run-on-spawn仅适用于自定义命令,确定是否在怪物生成时执行
run-on-death仅适用于自定义命令,确定是否在怪物死亡时执行
delay仅适用于自定义命令,这是命令执行前经过的滴答数

通用组:

LM包括几个实体组,它们以方便的格式捆绑在一起。每个组都作为自己的EntityType,同时应用于多个实体。您可以参考EntityType通用组了解不同类型!

指定怪物:

LM已在CD文件中列出了截至Minecraft 1.20的所有原版实体。您应该找到您希望修改的实体,而不是在配置的其他位置添加额外的实体,因为它们很可能不会按预期处理。您可以选择删除任何不使用的实体,因为您可以随时再次添加它们。

公式处理

对于某些选项,如chanceoverall-chanceamount,您可以改为指定其对应的-formula变体。例如,chance-formula:
这将允许您指定一个数学公式来计算此值,而不是可用的静态或轻微范围选项。您可以利用许多可用的占位符来调整值。
下面是一个如何实现新机制的示例,通过使同一物品在低级别时成功的机会大大降低,但在高级别时成功的机会大大提高。

chance-formula: '(%level%/(%max_level%+10))'

# 这将为以下系列级别处理如下:
#级别1:(1/(25+10)) = 0.02 机会
#级别5:(5/(25+10)) = 0.14 机会
#级别15:(15/(25+10)) = 0.42 机会
#级别25:(25/(25+10)) = 0.71 机会

滑动值

有三个选项支持滑动值:chanceequippedoverall_chance。你可以使用小数表示百分比,或者分配代表等级范围和分配范围的层级。语法如下:

chance:
lvl-lvl: X-Y

在左侧,你放置层级可以匹配的最小和最大等级,然后在右侧放置这些等级范围将使用的最小和最大几率;分配的数值将根据分配的等级值滑动。如果怪物等级在最小和最大之间,则将使用分配的最小和最大分配值。例如:

- IRON_SWORD:
chance:
1-10: 0.2-0.8
11-20: 1.0

在上面的例子中,等级1的怪物将有20%的几率。等级10的怪物将有80%的几率,而介于两者之间的怪物等级将按比例缩放。对于等级11到20的怪物,它们将有100%的几率。任何没有分配的怪物等级将有0%的几率,例如上面例子中的等级21+。

掉落表

CD 包含掉落表系统,允许你构建材料组或自定义命令,这些可以附加到任何 EntityType 作为单个项目,使用 usedroptable: tableName,有助于减少覆盖多个实体的重复掉落实例。这也可以用于制作“分层”掉落。

PUT_ENTITY_TYPE_HERE:
- usedroptable: 'putTableNameHere'

在使用掉落表构建掉落时,你可以复制用于任何其他掉落的相同格式,将 EntityType 替换为 tableName

注意: 强烈建议你使用 Rules 文件来实现任何掉落表。它将提供更准确的条件,以确定何时以及如何应用掉落表。

LM 物品 - 外部插件支持

如果你想使用来自外部插件的自定义物品,请查看 LM 物品。
这个插件弥合了差距,使你可以原生使用第三方物品。
https://www.spigotmc.org/resources/lm-items.102081/ 下载

LM 物品如何改善你的服务器的一个例子:将玩家头颅添加到怪物中!

以下是如何使用 - HeadDatabase: LM 物品类型的示例。

# 需要 LM_Items 官方插件
- HeadDatabase:61942:
amount: 1
chance: 1.0

你提供来自 Minecraft Heads 的头颅 ID 号,该 ID 号在你选择的头颅的 URL 中提供,并将其附加到 HeadDatabase: 物品类型,如上所示。
例如,URL https://minecraft-heads.com/custom-heads/humanoid/61942-demon-helmet 的 ID 为 61942

材料、命令和特殊物品

- MATERIAL:

- ENCHANTED_BOOK:
enchantments:
ENCHANTMENT: X

- customCommand:
command: ''
command: ['', '']
ranged_A: ''
ranged_B: ''
name: ''

MATERIAL: 掉落从上面列出的默认部分获取其配置选项。列出的任何配置选项都可以在任何 MATERIAL:customCommand 掉落中使用。

customCommand: 告诉 CD 你希望设置一个命令来处理,就像任何其他掉落一样。
为了使此功能正常工作,至少需要 command: 配置选项,并带有有效的控制台格式命令。
你也可以通过列出多个命令来同时使用它们,如上所示。
一个有效命令的示例可能是 effect give %player% strength %ranged_a% %ranged_b%
带有 ranged_ 前缀的标签是唯一的。这些允许你构建一个随机数生成器,用作命令中的占位符。上面的示例配置展示了如何使用 ranged 配置选项,将 A/B/C/D 等附加到 ranged_ 末尾创建标签,而值表示可以应用于单个命令掉落中存在的占位符标签的潜在值范围。使用前面的示例命令,ranged_A: 1-2ranged_B: 3-5,则第一个标签将是1-2之间的任何值,而第二个标签将是3-5之间的任何值,当在激活的命令中使用时。

ENCHANTED_BOOK 是一种特殊的 MATERIAL 掉落,它将通过使用 enchantments: 配置选项启用可用于铁砧的附魔书。