公会任务
公会任务是全体成员一起累积的目标:例如「今天全公会一起打 200 只僵尸」。达成时公会得到资金与活跃,这一期有出过力的每位成员各得到贡献。
任务写在 plugins/CloudGuild/tasks.yml,玩家用 /cg tasks 或主页的「公会任务」查看进度。
写法
tasks:
daily-zombie:
name: '&a清剿殭屍'
icon: ROTTEN_FLESH
type: kill
targets: [ZOMBIE, HUSK, DROWNED, ZOMBIE_VILLAGER]
amount: 200
period: daily
reward: {funds: 2000, activity: 200, contribution: 10}
weekly-fishing:
name: '&b漁獲豐收'
icon: FISHING_ROD
type: fish
amount: 300
period: weekly
min-level: 2
reward: {funds: 15000, activity: 1500, contribution: 40}
| 键 | 默认 | 说明 |
|---|---|---|
任务 id(例如 daily-zombie) | — | 任务的代号。改了 id 等于新任务,进度从 0 开始 |
name | id | 显示名称,支持颜色 |
icon | PAPER | 菜单里的图示材质 |
type | kill | 任务类型,见下表 |
targets | 空 | 限定目标(生物种类或材质,不分大小写);空 = 不限 |
amount | 1 | 目标数量 |
period | daily | daily 每天重置 / weekly 每周一重置(服务器时区) |
reward.funds | 0 | 完成时公会得到的资金 |
reward.activity | 0 | 完成时公会得到的活跃 |
reward.contribution | 0 | 这一期有出力的每位成员各得到的贡献 |
min-level | 1 | 公会至少几级才会累积这个任务(等级不够时菜单显示为锁住) |
lore | 无 | 选填,额外的说明文字,显示在菜单的 {task_lore} |
任务类型
type | 进度怎么算 | targets 写什么 |
|---|---|---|
kill | 成员击杀生物,每只 +1 | 生物种类,例如 ZOMBIE、ENDER_DRAGON;PLAYER = 击杀玩家 |
break | 成员挖掉方块,每个 +1。玩家自己放的方块不算 | 方块材质,例如 DIAMOND_ORE |
place | 成员放置方块,每个 +1 | 方块材质 |
fish | 成员钓到东西,每次 +1 | 钓到的物品材质,例如 COD;空 = 钓到什么都算 |
deposit | 成员存钱进公会银行,进度 = 金额 | 不使用 |
signin | 成员每日签到,每人次 +1 | 不使用 |
online | 成员在线,进度 = 分钟(每次 在线结算 加上间隔的分钟数) | 不使用 |
「自己放的方块不算」是每个子服在内存里记住最近 20000 个玩家放置的方块,重启后会清空。
进度与奖励
- 成员的行动先在内存里累积,每 5 秒写入一次数据库(一个事务),挖矿、打怪这类高频事件不会每次都写数据库。
- 所有子服推进的是同一份进度。达成目标的那一刻,数据库的条件更新只会让一个子服成功,由它发奖励,所以奖励只发一次。
- 达成之后这一期不再累积,到下一期(隔天 / 下周一)重新开始。
- 「有出力」= 这一期对这个任务的进度贡献大于 0 的成员。没有出力的成员不会得到贡献。
- 完成时公会所有在线成员收到:
任務完成!清剿殭屍 · 資金 +2,000 活躍 +200 出力成員各得 10 貢獻
- 关服时会把还没写入的进度写完再关。
- 超过 21 天的旧进度会自动清除。
默认任务
| id | 名称 | 类型 | 目标 | 周期 | 最低等级 | 奖励(资金 / 活跃 / 每人贡献) |
|---|---|---|---|---|---|---|
daily-zombie | 清剿殭屍 | kill 僵尸类 | 200 | 每日 | 1 | 2000 / 200 / 10 |
daily-miner | 礦工之日 | break 煤、铁、金、钻石矿(含深板岩) | 300 | 每日 | 1 | 2000 / 200 / 10 |
daily-signin | 全員簽到 | signin | 5 人次 | 每日 | 1 | 1000 / 100 / 5 |
weekly-online | 同心協力 | online | 3000 分钟 | 每周 | 1 | 20000 / 2000 / 50 |
weekly-fishing | 漁獲豐收 | fish | 300 | 每周 | 2 | 15000 / 1500 / 40 |
weekly-bank | 充實金庫 | deposit | 500000 | 每周 | 3 | 30000 / 3000 / 30 |
菜单
/cg tasks 打开 menus/tasks.yml,每个任务按状态显示为 default(进行中)、done(已完成)或 locked(公会等级不够)。可用的变量({progress}、{goal}、{percent}、{bar} 进度条、{mine} 我的出力……)见 菜单。
改完 tasks.yml 执行 /cg admin reload 生效。