Skip to content

任务池与委托面板

任务、任务池和委托面板分成三层:

text
任务 tasks/ -> 任务池 pools/ -> 委托面板 boards/

任务负责记录目标和奖励,任务池负责按条件与权重抽取任务,委托面板负责刷新周期、GUI 和玩家独立进度。

任务池

任务池文件放在:

text
plugins/GTCommission/pools/

可以创建多个 yml 文件和子目录。每个文件以 pools 开头:

yaml
pools:
  survival:
    name: "&a生存委托"
    weight: 100
    selection-count: 4
    conditions:
      - "%player_level% < 20"
    tasks:
      - survival_miner
      - survival_hunter
      - survival_fisher
      - survival_crafter
      - submit_logs
字段说明
survival任务池 ID
name任务池显示名称,支持 PAPI
weight多个任务池同时满足条件时的抽取权重
selection-count本任务池为每名玩家抽取多少个任务
conditions玩家进入该任务池必须满足的条件
tasks可抽取的任务 ID

池内任务还会读取任务自身的 weightconditions。不满足任务条件的任务不会进入候选,剩余任务再按权重抽取且不会重复。

任务池切换

一个面板可以引用多个任务池:

yaml
pools: [survival, advanced, fallback]

刷新或定时检查时,插件先筛选玩家当前满足的任务池,再按 weight 选择一个。玩家等级、职业、权限等条件变化后,可以自动切换到新的任务池。

相关主配置:

yaml
daily:
  auto-switch-when-eligible-pools-change: true
  preserve-completed-on-pool-switch: true
  • auto-switch-when-eligible-pools-change:可用任务池发生变化时自动重新抽取。
  • preserve-completed-on-pool-switch:切池时保留已经完成或领取的同 ID 任务状态。

建议始终准备一个无条件的兜底池:

yaml
fallback:
  name: "&f通用委托"
  weight: 1
  selection-count: 3
  conditions: []
  tasks: [survival_miner, survival_hunter, survival_fisher]

没有任何任务池满足条件时,面板不会偷偷从不满足条件的池中抽任务。没有兜底池的玩家会看到空面板。

委托面板

面板文件放在:

text
plugins/GTCommission/boards/

标准面板:

yaml
enabled: true
name: "&a冒险者委托"
gui: default
pools: [survival, advanced, fallback]
conditions: []
refresh:
  mode: DAILY
  timezone: Asia/Shanghai
  hour: 4
  minute: 0
字段说明
enabled是否开放该面板
name面板显示名称,支持 PAPI
guiguis/commission/ 中的 GUI ID
pools面板使用的任务池列表
tasks不经过任务池,直接使用的任务列表
selection-count使用 tasks 时抽取的任务数量
conditions打开和参与该面板的条件
refresh该面板自己的刷新计划

poolstasks 至少填写一种。普通日常适合使用任务池;固定 NPC 支线适合直接写任务。

独立 NPC 委托

yaml
enabled: true
name: "&6铁匠的物资委托"
gui: blacksmith
tasks: [submit_logs, mine_iron]
selection-count: 1
conditions:
  - "%player_level% >= 10"
refresh:
  mode: DAILY
  timezone: Asia/Shanghai
  hour: 4
  minute: 0

NPC 执行:

text
gtdaily open blacksmith %player%

每个面板的抽取结果、进度、领取状态、连续完成次数和刷新时间完全独立。可以为不同城镇、NPC、职业或区域分别建立面板。

每日刷新

yaml
refresh:
  mode: DAILY
  timezone: Asia/Shanghai
  hour: 4
  minute: 0

每天北京时间 04:00 刷新。

每周刷新

yaml
refresh:
  mode: WEEKLY
  timezone: Asia/Shanghai
  day-of-week: MONDAY
  hour: 4
  minute: 0

day-of-week 可填 MONDAYSUNDAY,也可填 17,分别代表周一到周日。

每月刷新

yaml
refresh:
  mode: MONTHLY
  timezone: Asia/Shanghai
  day-of-month: 1
  hour: 4
  minute: 0

day-of-month 建议使用 128,避免短月份没有对应日期。

固定间隔刷新

yaml
refresh:
  mode: INTERVAL
  timezone: Asia/Shanghai
  interval-minutes: 180
  anchor-epoch-millis: 0
  • interval-minutes:刷新间隔,单位分钟。
  • anchor-epoch-millis:刷新锚点的 Unix 毫秒时间戳。保持 0 时按系统基准计算。

间隔模式适合 3 小时轮换、12 小时轮换等活动面板。周常和月常优先使用对应模式,配置更直观。

常用检查

修改任务池或面板后执行:

text
/gtcom reload
/gtdaily list

重载失败时先检查控制台。不存在的任务、任务池或 GUI 会直接报出对应 ID,不会带着错误配置继续运行。