跳到主要内容

自动化

automation 组件提供两种自动化方式:登录自动接受任务,以及按计划定时分配任务。

自动接受

设置 auto-accept: true 后,玩家上线时会自动接受该任务(前提是尚未接受过)。

自动接受示例
daily_login_quest:
addon:
automation:
auto-accept: true # 登录时自动接受
task:
0:
objective: ...

计划任务

plan 配置让任务在指定时间点自动分配给在线玩家。每次触发时,从任务池中随机选取指定数量的任务派发。

type 格式

格式说明示例
hour <minute>每小时的第 N 分钟hour 30
day <days> [hour] [minute]每隔 N 天,可指定时分day 1 6 0
week <weeks> [day] [hour] [minute]每隔 N 周,可指定星期、时分week 1 1 6 0

dayhour 默认 6,minute 默认 0。weekday 默认 6(星期六),hour 默认 0,minute 默认 0。

plan 字段

字段类型默认值说明
typestring计划类型,见上表
countint1每次随机派发的任务数量
methodstringSTART_IN_MONDAY计时起点,START_IN_MONDAYSTART_IN_SUNDAY
groupstring分组名,同组任务共享计划和池子

分组机制

group 用于把多个任务合并到同一个任务池。只需要其中一个任务配置 plan(包含 group 名),其余任务只写 plan.group 即可加入池子。每次触发时从整个池子里随机选取 count 个。

计划的下次触发时间存储在玩家数据中:

quest.automation.<groupId>.next

完整示例

每日任务系统
# 主配置任务:定义计划和池子
daily_quest_1:
addon:
automation:
plan:
type: day 1 6 0 # 每天早上 6:00 触发
count: 3 # 随机派发 3 个
group: daily # 分组名为 daily
task:
0:
objective: ...

# 加入同一个池子,不需要重复配置 plan
daily_quest_2:
addon:
automation:
plan:
group: daily # 只写 group,加入 daily 池子
task:
0:
objective: ...

daily_quest_3:
addon:
automation:
plan:
group: daily
task:
0:
objective: ...

# 另一个任务:登录直接接受,不走计划
welcome_quest:
addon:
automation:
auto-accept: true
task:
0:
objective: ...
提示

同时配置 auto-acceptplan 时,auto-accept 优先生效,plan 的分配逻辑不会执行。