跳到主要内容

公会任务

公会任务是全体成员一起累积的目标:例如「今天全公会一起打 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 开始
nameid显示名称,支持颜色
iconPAPER菜单里的图示材质
typekill任务类型,见下表
targets空限定目标(生物种类或材质,不分大小写);空 = 不限
amount1目标数量
perioddailydaily 每天重置 / weekly 每周一重置(服务器时区)
reward.funds0完成时公会得到的资金
reward.activity0完成时公会得到的活跃
reward.contribution0这一期有出力的每位成员各得到的贡献
min-level1公会至少几级才会累积这个任务(等级不够时菜单显示为锁住)
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每日12000 / 200 / 10
daily-miner礦工之日break 煤、铁、金、钻石矿(含深板岩)300每日12000 / 200 / 10
daily-signin全員簽到signin5 人次每日11000 / 100 / 5
weekly-online同心協力online3000 分钟每周120000 / 2000 / 50
weekly-fishing漁獲豐收fish300每周215000 / 1500 / 40
weekly-bank充實金庫deposit500000每周330000 / 3000 / 30

菜单​

/cg tasks 打开 menus/tasks.yml,每个任务按状态显示为 default(进行中)、done(已完成)或 locked(公会等级不够)。可用的变量({progress}、{goal}、{percent}、{bar} 进度条、{mine} 我的出力……)见 菜单。

改完 tasks.yml 执行 /cg admin reload 生效。