跳到主要内容

自定义战利品表

这一共用格式为 Boss、宝箱、任务和竞技场定义自定义物品、原版物品、货币及命令。每个条目各自进行概率判定,并非整张表只抽出一个获奖条目。

要自动覆盖各职业和难度的装备,请参阅自动职业战利品。它的独立基础抽取可与 uniqueLootList 同时运行。手工设计的遗物、脚本装备及其他特殊奖励仍保留在此表中。引用 itemType: CLASS_LOOT 物品的条目是职业战利品候选,不参与普通 Boss 死亡抽取;其他条目继续独立抽取。

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

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

在这种旧语法中,几率和权限都是可选的,因此只写一个 filename.yml 时,物品会以 100% 的几率掉落。冒号分隔部分超过三个的旧格式条目会被拒绝。

每个条目都会在其文件加载时接受检查。未知或重复的键、没有值的键、不是有限数字的 chance、不是整数的 amount、currencyAmount、wave 或 itemLevel,或无效的材质,都会让该条目被拒绝,并给出 Failed to parse entry ... due to invalid: <reason> 警告,表中其余条目仍会正常加载。键不区分大小写。

使用对应功能的键:Boss 用 uniqueLootList,宝箱用 lootList,任务用 customRewards,竞技场用 rawArenaReward。任务的 customRewards 接受字符串,应使用冒号分隔的 filename=...:chance=...,而不是 YAML 映射。

按战利品来源发放

自定义 Boss 的 uniqueLootList 支持全部四类条目。普通自定义条目的发放取决于 putLootDirectlyIntoPlayerInventory:

条目类型putLootDirectlyIntoPlayerInventory: false(默认)putLootDirectlyIntoPlayerInventory: true
精英物品(filename)个人地面掉落或共享装备投票个人背包发放或共享装备投票
原版物品(material)地面掉落放入背包;溢出物品掉在玩家脚边
精英金币(currencyAmount)可拾取的金币雨直接增加货币
命令(command=)由控制台执行由控制台执行

Boss 奖励对每个已记录的伤害贡献者分别抽取,排除已被该实例 Boss 锁定奖励的玩家。这条自定义战利品流程没有额外的 10% 伤害门槛。附近队员若未造成伤害、仅获得共享参与资格,通过此流程只会得到非装备精英物品条目,不会得到原版物品、货币或命令条目。触发反利用保护会阻止这类死亡战利品。

通过 EliteMobs 实例 Boss API 在其他插件的实例中生成的 Boss 会忽略 putLootDirectlyIntoPlayerInventory,也从不发起队伍或团队投票。它们的战利品总是像 false 一列那样掉落在 Boss 所在位置的地面上,精英物品作为个人掉落,因此战利品会留在该实例的世界中。

宝箱使用相同的地面/背包设置;任务和竞技场直接发放。四种来源均支持下述类型;任务只接受字符串条目。Boss 命令战利品对每次成功的贡献者抽取执行。独立的 Boss 死亡命令语法见 onDeathCommands。

掉落精英物品:​

键说明值默认值
filename设置要使用的自定义物品的文件名。Filenamenone
示例
uniqueLootList:
- filename: magmaguys_toothpick.yml

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

通用设置:​

键说明值默认值
chance每条目的独立一次判定,1.0 为 100%。使用 0.0 到 1.0 的值。Double1.0
amount判定成功后生成的物品份数或命令执行次数。不乘算货币,金额请用 currencyAmount。Integer1
permission设置玩家获得该战利品所需的权限节点。精英物品、货币和命令条目都支持它。原版物品条目在两种格式下都不会读取它。Stringnone

amount <= 0 或 chance <= 0 时不抽取;非数字或非有限值的 chance 会让条目在文件加载时被拒绝。大于 1.0 的 chance 总会通过;它不是 50 这样的百分数。判定成功后不会为每份物品重新抽取。任务预览自行进行概率判定,并不预留最终奖励。

示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare

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

掉落精英金币:​

键说明值默认值
currencyAmount设置将掉落的金币数量。Integernone

currencyAmount 必须是整数,且必须为正才会发放货币。正数 amount 不会乘算金额,但 amount <= 0 会禁用条目。为零或负数的 currencyAmount 在两种格式下都能加载,但不发放任何奖励。

直接货币奖励经由经济处理器,优先偿还赌债。地面发放使用可拾取的金币雨,可以获得 Harvester 技能加成;货币条目的直接发放不应用该加成。金币雨在拾取时入账,而不是概率判定通过时。

示例
uniqueLootList:
- currencyAmount: 344
chance: 0.5

这让每个符合资格的 Boss 贡献者有 50% 的概率获得基础奖励 344 精英金币(Elite Coins)。在宝箱中使用同一条目时改用 lootList。

掉落原版物品:​

键说明值默认值
material物品材质。两种格式中的材质名都不区分大小写。type 可作为别名使用;同时设置 material 和 type 会导致条目被拒绝。Materialnone
示例
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5

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

地面掉落与直接背包发放都只对条目抽取一次。此例中成功就发放全部 5 个苹果。直接发放支持 Boss、宝箱、任务和竞技场,背包装不下的物品掉在玩家位置。AIR 材质及非正数量不发放物品。原版条目不检查 permission。

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

你可以在战利品掉落时执行控制台命令。这对于与其他插件集成或提供自定义奖励很有用。命令条目接受冒号分隔的字符串格式,除任务的 customRewards 外也接受 YAML 映射。

键说明值默认值
command设置要执行的控制台命令。使用 %player% 作为玩家名称的占位符。Stringnone

在字符串格式中,命令不能包含 :,因为条目会按该字符拆分。命令中包含 = 没有问题。命令需要冒号时,请使用 YAML 映射。

命令概率与重复次数

命令条目和其他条目一样,只判定一次 chance。成功后执行命令 amount 次,没有第二次判定或取反判定:

  • chance=1.0(默认)总会通过。
  • chance=0.5 有 50% 的概率通过。
  • amount=3 在这一次判定通过后执行三次。

玩家必须满足 permission,命令也不能为空。命令自身的要求仍然生效。命令以控制台身份运行,请用 %player% 指定奖励接收者。

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

此任务奖励在交任务时有 50% 的概率从控制台执行 give <player> diamond 1。%player% 替换为玩家名,玩家需要 elitemobs.loot.command。同一字符串也可用于 Boss 的 uniqueLootList,为每位符合资格的贡献者分别抽取。

竞技场奖励:​

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

键说明值默认值
wave完成哪一波竞技场后发放该条目。所有条目类型在两种格式中都接受此字段。Integer-1
itemLevel设置战利品掉落的等级。仅由竞技场使用,并且只对精英物品(filename)条目有意义。两种格式均接受。Integer1
这两个键都有坑
  • 只有 wave 为 1 或更大的条目才会被注册为波次奖励。没有 wave 的竞技场奖励条目虽然能被解析并接受,但永远不会有任何波次把它发出去。
  • itemLevel 的默认值是 1,而不是竞技场或玩家的等级。因此,竞技场在没有显式指定 itemLevel 的情况下发放的 scalable 精英物品会以 1 级物品的形式掉落。
示例
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2

完成第 1 波后,面包条目进行一次 50% 判定。成功则发放 10 个面包,溢出部分掉在地上。自定义物品条目的概率为 100%,请求一个物品等级为 2 的 MagmaGuy's Toothpick;生成等级仍受物品定义的缩放规则控制。竞技场在这些奖励之前先检查玩家资格和等级差。

这两个条目使用不同格式只是为了同时展示两者;wave 和 itemLevel 在两种格式中都可使用。

实例化地下城:​

键说明值默认值
difficultyID按接收者当前所在地下城的难度筛选精英物品条目;YAML 映射也接受 ID 列表。字符串、数字或列表none

精英物品(filename)的 YAML 映射和冒号分隔字符串都会读取 difficultyID。映射还支持 difficultyID: [normal, hard] 这样的列表。原版物品、货币及命令条目会将它视为未知键而拒绝该条目。ID 和名称遵循地下城的难度解析器:0/1/2、Normal/Hard/Mythic 或内容包的 Easy/Medium/Hard 规则。未知 ID 保留精确匹配。空列表或空白 ID 会让条目在文件加载时被拒绝。

Boss、宝箱、任务及竞技场的精英物品奖励都会检查该条件,但仅在接收者当前处于地下城实例内时产生限制,在外部则忽略。通过实例 Boss API 在其他插件实例中生成的 Boss,按该插件为其分配的难度进行筛选。普通竞技场实例不属于地下城实例。宝箱、任务和竞技场奖励仍为个人奖励,不进入共享装备投票。

对于 Boss 发放,条目的行为如下:

  • 地下城难度匹配 difficultyID:装备进入 Boss 的共享队伍战利品表,非装备仍为个人发放。符合资格的战斗贡献者可领取共享装备;已被该 Boss 锁定奖励的玩家会在投票前排除。
  • 地下城难度不匹配:该条目会被跳过。
  • 玩家不在地下城实例内:忽略 difficultyID。附近至少有两名符合资格的队员时,装备使用队伍需求/贪婪,否则按普通个人方式发放。非装备奖励仍为个人发放。

没有 difficultyID 时,装备仍可能进入队伍战利品,但不会运行该字段启用的地下城专用共享表分支。职业战利品候选使用上文所述的独立职业选择和难度规则。

示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1

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