跳转到内容

玩法模块 modules

两个可插拔的轻量模块:计时竞速 与 奖励加成。配置写在主 config.yml 的 modules 段当全服默认,副本 config.yml 的 modules 段按模块整段覆盖。不写 = 全部未启用,零开销。

# plugins/QueDP/config.yml 或 dungeons/<id>/config.yml
modules:
speedrun:
enabled: true
bonus:
enabled: true

中文键:模块 / 竞速 / 奖励加成 / 启用。

自动计时,通关用时照旧进现有排行榜;模块主要补分段和与个人最佳的实时对比。

modules:
speedrun:
enabled: true
splits: # 可省略
一王: { name: "&e一王" }
二王: { name: "&c二王" }

分段记录时机:脚本 action.split('一王'),或阶段完成时自动记录(阶段 id 与分段 id 同名)。分段只在实例内存里,副本结束即丢。

脚本 / 变量说明
action.split('一王')记录分段点,重复记录以第一次为准
dungeon.getElapsed()当前用时(秒,带小数)
dungeon.getSplit('一王')分段用时,未记录 -1
dungeon.getPersonalBest(player)该玩家历史最佳(秒),无记录 -1
dungeon.getRecord()榜一用时,无记录 -1
%quedp_speedrun_elapsed%当前用时 mm:ss.SS
%quedp_speedrun_pb%个人最佳
%quedp_speedrun_delta%与个人最佳的差值,带 +/-,实时现算
%quedp_speedrun_record%榜一用时

通关那一刻按条件算一次倍率,作用于此后 action.grant_reward 发放的金钱、经验、物品数量(向下取整、最少 1)。命令奖励和箱子 UI 奖励不受影响。

modules:
bonus:
enabled: true
stack: multiply # multiply 连乘 / add 1+Σ(倍率-1),默认 multiply
rules:
无死亡:
name: "&a全队无伤"
condition: "dungeon.getDeadPlayerCount() == 0"
multiplier: 1.5
限时:
name: "&e限时通关"
condition: "dungeon.runningTime <= 600"
multiplier: 1.2
键(中/英)必填说明
rules.<id>.condition / 条件是JS 表达式,通关时求值一次
rules.<id>.multiplier / 倍率是
rules.<id>.name / 名称否结算展示名
stack / 叠加否multiply / add

单副本最多 16 条规则。通关时命中的规则会在聊天栏列出(文案在 lang/)。

脚本说明
action.add_bonus('首杀', 2.0)脚本临时加一条倍率;通关前调用参与结算,通关后调用立即生效
dungeon.getBonus()当前最终倍率,结算前为 1
dungeon.hasBonus('无死亡')某规则是否命中

/dg edit 主界面 → 玩法模块:两个模块各一个开关,右键进分段 / 规则管理,规则有三个模板可直接套用。

/dg admin module list 列出各副本的模块启用情况。

模块动作在未启用的副本里调用会在控制台 warn「模块 X 未启用」,不静默失败。两个模块都没有周期任务。