任务池与委托面板
任务、任务池和委托面板分成三层:
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 |
池内任务还会读取任务自身的 weight 和 conditions。不满足任务条件的任务不会进入候选,剩余任务再按权重抽取且不会重复。
任务池切换
一个面板可以引用多个任务池:
yaml
pools: [survival, advanced, fallback]刷新或定时检查时,插件先筛选玩家当前满足的任务池,再按 weight 选择一个。玩家等级、职业、权限等条件变化后,可以自动切换到新的任务池。
相关主配置:
yaml
daily:
auto-switch-when-eligible-pools-change: true
preserve-completed-on-pool-switch: trueauto-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 |
gui | guis/commission/ 中的 GUI ID |
pools | 面板使用的任务池列表 |
tasks | 不经过任务池,直接使用的任务列表 |
selection-count | 使用 tasks 时抽取的任务数量 |
conditions | 打开和参与该面板的条件 |
refresh | 该面板自己的刷新计划 |
pools 和 tasks 至少填写一种。普通日常适合使用任务池;固定 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: 0NPC 执行:
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: 0day-of-week 可填 MONDAY 到 SUNDAY,也可填 1 到 7,分别代表周一到周日。
每月刷新
yaml
refresh:
mode: MONTHLY
timezone: Asia/Shanghai
day-of-month: 1
hour: 4
minute: 0day-of-month 建议使用 1 到 28,避免短月份没有对应日期。
固定间隔刷新
yaml
refresh:
mode: INTERVAL
timezone: Asia/Shanghai
interval-minutes: 180
anchor-epoch-millis: 0interval-minutes:刷新间隔,单位分钟。anchor-epoch-millis:刷新锚点的 Unix 毫秒时间戳。保持0时按系统基准计算。
间隔模式适合 3 小时轮换、12 小时轮换等活动面板。周常和月常优先使用对应模式,配置更直观。
常用检查
修改任务池或面板后执行:
text
/gtcom reload
/gtdaily list重载失败时先检查控制台。不存在的任务、任务池或 GUI 会直接报出对应 ID,不会带着错误配置继续运行。
