跳到主要内容

自定义战利品表

通用战利品格式。EliteMobs 在多个不同的地方都会使用它。

请注意,这是最新的格式,也是推荐使用的格式,但仍存在一些其他的旧格式。

注意: 仍然支持使用冒号分隔语法的旧格式:filename.yml:chance:permission。不过,对于新配置,推荐使用下面所示的现代格式。

在这种旧语法中,几率是必填的。只写一个光秃秃的 filename.yml 后面什么都不加,物品依然会以 100% 的几率掉落,但每次启动都会记录一条 Failed to parse entry ... due to invalid: chance 警告,所以请优先使用 filename.yml:1.0 或现代格式。

在添加任何设置之前,请务必让你的战利品表以 uniqueLootList: 开头,否则 .yml 配置会报错。

掉落精英物品:

KeyDetailsValuesDefault
filename设置要使用的自定义物品的文件名。Filenamenone
示例
uniqueLootList:
- filename: magmaguys_toothpick.yml

这会让怪物以 100% 的掉落几率掉落 1 个 MagmaGuy's Toothpick

通用设置:

KeyDetailsValuesDefault
chance设置该战利品掉落的几率,其中 1.0 表示 100%。Double1.0
amount设置该战利品条目掉落的数量。货币条目会忽略它——那种情况请改用 currencyAmountInteger1
permission设置玩家获得该战利品所需的权限节点。精英物品、货币和命令条目都支持它。原版物品条目在两种格式下都不会读取它。Stringnone
示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare

这会让怪物以 50% 的掉落几率掉落 10 个 MagmaGuy's Toothpick,但仅对拥有 elitemobs.loot.rare 权限的玩家有效。

掉落精英金币:

KeyDetailsValuesDefault
currencyAmount设置将掉落的金币数量。Integernone

请注意,共用的 amount 键对货币条目不起任何作用——金币的发放数量完全取决于 currencyAmount。仅在冒号分隔的字符串格式下,最终 currencyAmount0 的条目会被拒绝并给出警告,而不会被注册。

示例
uniqueLootList:
- currencyAmount: 344
chance: 0.5

这会让怪物以 50% 的掉落几率掉落 344 个 精英金币(Elite Coins)

掉落原版物品:

KeyDetailsValuesDefault
material设置所掉落物品的材质。接受 Minecraft 材质名称(不区分大小写)。你也可以用 type 代替 materialMaterialnone
示例
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5

这会让怪物以 30% 的掉落几率掉落 5 个 苹果(Apples)

在战利品掉落时执行命令:

你可以在战利品掉落时执行控制台命令。这对于与其他插件集成或提供自定义奖励很有用。命令条目仅使用冒号分隔的字符串格式。

KeyDetailsValuesDefault
command设置要执行的控制台命令。使用 %player% 作为玩家名称的占位符。Stringnone

命令本身不能包含 :,也不能包含第二个 =,因为解析该条目时会按这两个字符进行拆分。

chance 对命令条目的实际行为

命令条目会对 chance 掷判两次,而且第二次掷判是取反的,所以命令实际的执行概率是 chance × (1 - chance)

  • chance=1.0(省略时的默认值)意味着命令永远不会执行
  • chance=0.5 给出可达到的最高概率,即 25%。
  • chance=0.9 只有 9%。

请始终在命令条目上显式设置一个低于 1.0chance,并且要预料到实际触发率会低于你写下的数值。

示例
uniqueLootList:
- command=give %player% diamond 1:chance=0.5:amount=1:permission=elitemobs.loot.command

这会在怪物被击杀时从控制台执行命令 give <player> diamond 1,大约有 25% 的几率(参见上面的警告)。%player% 占位符会被替换为实际的玩家名称。只有拥有 elitemobs.loot.command 权限的玩家才会触发此命令。

竞技场奖励:

在制作竞技场战利品表时,请务必让你的战利品表以 rawArenaReward: 开头,而不是 uniqueLootList:

KeyDetailsValuesDefault
wave设置该战利品条目将在第几波次掉落。仅供竞技场使用。原版物品条目支持映射格式,但精英物品(filename)条目仅支持字符串格式。Integer-1
itemLevel设置战利品掉落的等级。仅供竞技场使用,并且只有精英物品(filename)条目才会读取它。仅在字符串格式中可用,不支持映射格式。Integer1
这两个键都有坑
  • 只有 wave1 或更大的条目才会被注册为波次奖励。没有 wave 的竞技场奖励条目虽然能被解析并接受,但永远不会有任何波次把它发出去。
  • itemLevel 的默认值是 1,而不是竞技场或玩家的等级。因此,竞技场在没有显式指定 itemLevel 的情况下发放的 scalable 精英物品会以 1 级物品的形式掉落。
示例
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2

当玩家击败第一波时,这会让竞技场以 50% 的掉落几率掉落 10 个 面包(Bread),并以 100% 的掉落几率掉落 1 个 2 级的 MagmaGuy's Toothpick

请注意,这里的精英物品(filename)条目使用了字符串格式,因为 waveitemLevel 仅在字符串格式中才会针对精英物品条目进行解析。原版物品条目(例如上面的 material: BREAD)则接受映射格式中的 wave

实例化地下城:

KeyDetailsValuesDefault
difficultyID设置该战利品将在哪个实例化地下城难度下掉落。仅供实例化地下城使用。Stringnone

difficultyID 只会在以下面所示映射格式书写的精英物品(filename)条目上被读取。它在冒号分隔的字符串格式中不会被解析,对原版物品、货币或命令条目也不会被读取。

它还只对自定义 Boss 的战利品生效。宝箱、任务和竞技场战利品都不会对它进行判断。

在实例化地下城内部,该条目的行为如下:

  • 地下城难度与 difficultyID 匹配:物品会被放入该 Boss 的共享队伍战利品表,而不是直接交给击杀者,因此整支队伍都可以从中领取。
  • 地下城难度不匹配:该条目会被跳过。
  • 玩家根本不在实例化地下城中:difficultyID 会被忽略,物品照常掉落。
示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1

如果玩家在难度 1 下击败了 Boss,这会让怪物以 50% 的掉落几率掉落 1 个 MagmaGuy's Toothpick