Skip to content

掉落分配、竞拍与经验共享

GTDungeonTeam 的掉落系统不依赖副本插件。只要玩家有队伍,就可以按配置接管拾取事件。GTMobDrops 只是额外兼容入口,不是唯一来源。

队伍掉落分配

yaml
loot:
  enabled: true
  mode: random
  require-team-toggle: true
  require-active-run: false
  same-world-only: true
  include-picker: true
  announce: true

流程:

  1. 玩家拾取地上掉落物。
  2. 插件检查玩家是否有队伍。
  3. 检查全局掉落分配是否启用。
  4. 检查队伍自己的掉落分配开关。
  5. 检查是否需要正在副本中。
  6. 检查黑名单。
  7. 如果物品命中竞拍规则,进入竞拍池。
  8. 否则按 mode 分给队伍成员。

分配模式

模式说明
random从候选队员中随机一个
round_robin队伍内轮流分配
leader优先给队长
picker给拾取者
off不接管掉落

候选队员受这两个字段影响:

yaml
same-world-only: true
include-picker: true

same-world-only: true 时,只分给同世界在线队员。
include-picker: false 时,拾取者不参与本次分配。

队伍开关

yaml
loot:
  require-team-toggle: true

开启后,队长还要打开队伍自己的开关:

text
/gdt team loot on

或在队伍界面点击“掉落物分配”按钮。

如果想所有队伍默认都生效:

yaml
team:
  default-random-distribution: true

loot:
  require-team-toggle: false

不要求副本运行

yaml
loot:
  require-active-run: false

这表示普通组队也能分配掉落。
如果只想副本内生效:

yaml
loot:
  require-active-run: true

掉落黑名单

yaml
loot:
  blacklist:
    materials:
      - BARRIER
    lore-keywords:
      - "绑定"
      - "限定"

匹配黑名单的物品不接管,仍按原版拾取。

materials 写材料名。
lore-keywords 会去掉颜色后做包含匹配。

分配消息和动作

yaml
loot:
  announce: true
  message: "&a<receiver> 获得队伍分配物品 &f<item_name> &7x<amount>"
  actions:
    distributed: []

可用变量:

text
<team>
<team_id>
<team_name>
<picker>
<picker_uuid>
<receiver>
<receiver_uuid>
<item_name>
<item_type>
<amount>
<loot_mode>

示例:记录日志。

yaml
loot:
  actions:
    distributed:
      - "[console] say <receiver> 获得 <item_name> x<amount>"

GTMobDrops 兼容

yaml
compatibility:
  gtmobdrops:
    enabled: true
    party-distributor:
      enabled: true
      priority: 100
      mode: damage_top
      require-active-run: false
字段作用
enabled是否启用 GTMobDrops 兼容
party-distributor.enabled是否注册队伍分配桥
priority分配优先级
mode兼容分配策略
require-active-run是否要求副本运行中

mode 常用:

text
random
round_robin
killer
damage_top

没有安装 GTMobDrops 时,插件自己的拾取分配仍然可用。

掉落竞拍

竞拍适合稀有装备、材料、箱子、坐骑碎片。命中规则的物品不会直接分配,而是进入队伍竞拍池。副本结束后逐件拍卖。

yaml
loot:
  auction:
    enabled: true
    require-active-run: true
    duration-seconds: 20
    reset-seconds-on-bid: 12
    start-price: 100
    min-increment: 10
    tax-rate: 0.08
字段作用
enabled是否启用竞拍
require-active-run是否只收集副本运行中的物品
duration-seconds每件物品默认竞拍秒数
reset-seconds-on-bid有人加价后倒计时刷新秒数
start-price默认起拍价
min-increment默认最低加价
tax-rate系统手续费,0.08 表示 8%

无人出价时,物品由系统回收。
有人出价时,胜者获得物品,金额扣掉手续费后,全队在线成员均分。

竞拍规则

yaml
loot:
  auction:
    rules:
      rare:
        currency: money
        duration-seconds: 20
        reset-seconds-on-bid: 12
        start-price: 100
        min-increment: 10
        tax-rate: 0.08
        include:
          names:
            - "传说"
          lore-keywords:
            - "史诗"
            - "可竞拍"
          nbt-keywords:
            - "Auctionable"
          materials:
            - DIAMOND_SWORD

命中任意一类即可进入竞拍。

匹配项说明
names匹配物品显示名,去颜色后包含判断
lore-keywords匹配 Lore,去颜色后包含判断
nbt-keywords匹配物品序列化文本,适合特殊标记
materials匹配原版材料名

每条规则可以单独设置货币、起拍价、最低加价、手续费和时间。

多货币

默认金币:

yaml
loot:
  auction:
    currencies:
      money:
        name: "金币"
        balance: ""
        format: "<amount>金币"
        take-actions: []
        give-actions: []

balance 为空时,优先走 GTCore 经济接口,再走 Vault。

点券示例:

yaml
loot:
  auction:
    currencies:
      points:
        name: "点券"
        balance: "%playerpoints_points%"
        format: "<amount>点券"
        take-actions:
          - "[console] points take <player> <amount>"
        give-actions:
          - "[console] points give <player> <amount>"
字段作用
balance出价前读取余额,支持 PAPI 和公式
take-actions胜者扣款动作
give-actions给队员发分红动作
format显示格式

不同物品用不同货币:

yaml
rules:
  vip_box:
    currency: points
    start-price: 50
    min-increment: 5
    include:
      names:
        - "会员宝箱"

竞拍变量

消息和动作可用:

text
<auction_id>
<auction_rule>
<team>
<team_id>
<picker>
<picker_uuid>
<bidder>
<bidder_uuid>
<bid_amount>
<bid_amount_raw>
<highest_bid>
<highest_bid_raw>
<item_name>
<item_type>
<item_amount>
<start_price>
<start_price_raw>
<min_increment>
<min_increment_raw>
<next_min_bid>
<next_min_bid_raw>
<currency>
<currency_name>
<auction_left_seconds>
<auction_reset_seconds>
<tax_rate>
<tax_amount>
<share_amount>
<share_members>

竞拍界面常用:

text
<auction_active>
<auction_item>
<auction_amount>
<auction_highest_bid>
<auction_bidder>
<auction_left_seconds>
<auction_next_min_bid>
<auction_currency_name>

竞拍命令

text
/gdt auction info
/gdt auction open
/gdt bid <金额>

客户端 UI 可直接做输入框;原版 GUI 环境可以走聊天栏输入。

经验共享

yaml
exp-share:
  enabled: true
  require-active-run: false
  same-world-only: false
  include-earner: false
  announce: true
  message: "&a<receiver> 获得队伍经验共享 &f<exp>"
  proportions:
    default: 0
    2: 5
    3: 10
    4: 15

含义:

  • 队伍 2 人时,队友获得本次经验的 5%。
  • 队伍 3 人时,队友获得本次经验的 10%。
  • 队伍 4 人时,队友获得本次经验的 15%。

include-earner: false 时,获得经验的人不拿自己的共享经验。

可用变量:

text
<earner>
<earner_uuid>
<receiver>
<receiver_uuid>
<exp>