刷怪与通关
所属:服主指南总览 · 上一篇:蓝图与目标 · 下一篇:机关系统
相关:核心概念与架构 · 遗迹模板 · config.yml 全配置
蓝图与目标 讲的是「在磁盘上怎么声明刷怪点和阶段目标」。这一页讲运行时它们怎么跑:玩家靠近怎么激活、阶段怎么追踪推进、怪怎么重刷、遗迹什么时候不让人破坏、谁才够资格进。
贯穿全文的一句话:QR 不实例化、不拉独立世界、不倒计时。遗迹就长在主世界里,靠玩家物理靠近来激活,是「程序化 Roguelike 秘境引擎」,不是副本插件。
🖼️ [图片占位] 锚点 4 状态流转图(DORMANT → ACTIVE → CLEARED → RECYCLED)配激活半径示意 · 建议
assets/anchor-lifecycle.png
一、锚点的 4 个状态
每座生成出来的遗迹实例叫锚点(Anchor)。所有运行时玩法都挂在锚点上。锚点有 4 个生命周期状态:
| 状态 | 含义 | 怪 / 机关 | 保护 |
|---|---|---|---|
DORMANT | 已生成、无人靠近,休眠 | 不刷、不评估 | 锁定(若有目标) |
ACTIVE | 有玩家进入激活半径 | 已刷怪、目标计数中、机关评估中 | 锁定 |
CLEARED | 通关 / 已探索完 | 怪已清、宝箱解锁 | 解除 |
RECYCLED | 已回收(消退还原 / /qr remove),名额腾出 | 已清场 | — |
模板 vs 锚点:一个模板能生成出很多锚点(世界各处的同款遗迹),就像一个类 new 出很多对象。详见 核心概念。
状态之间的流转:
生成 → DORMANT
│ 玩家进入 activation-radius
▼
ACTIVE ──── 打通最后一阶段目标 ────► CLEARED
▲ │
│ respawn 重刷(怪清空且过冷却) │ regen-hours 后无人靠近、快照还原
└──────────────────────────────────► RECYCLED二、锚点激活刷怪(靠近激活,非副本化)
QR 不会把玩家拉进独立副本。它在后台定时扫描所有在线玩家附近的锚点,玩家物理走进激活半径就激活该锚点开始刷怪。
相关配置在 config.yml 的 combat 段:
# 刷怪(结构内容,靠玩家靠近自动激活,非副本化)
combat:
activation-radius: 48 # 玩家进入此半径激活锚点刷怪
spawn-period-ticks: 40 # 激活检测间隔 tick(越大越省,最低 10)| 配置 | 含义 | 默认 |
|---|---|---|
combat.activation-radius | 玩家进入锚点中心多少格内即激活刷怪 | 48 |
combat.spawn-period-ticks | 激活扫描的间隔 tick(值越大越省 CPU、响应越慢,下限 10) | 40 |
激活时的行为:
- 首次激活:若蓝图配了
objectives,只刷stage: 1的刷怪点;没配目标则一次性刷出全部刷怪点。 - 刷出的怪会被打上锚点标记(记录属于哪个锚点、哪个刷怪点、是什么怪 key),并设为「不会因玩家走远而自动消失」,这样击杀计数才追得准。
- 玩家首次靠近某模板的遗迹时,会记入个人图鉴发现,并收到「发现遗迹」提示。
- 秘境态(Realm)的锚点由秘境系统单独管刷怪,不走这条普通刷怪逻辑。
⚙️ 激活半径与机关扫描半径(
mechanisms.scan-radius,默认 48)、会话集结半径(session.enter-radius,默认 48)是各自独立的配置,可分别调。
三、分阶段目标追踪与推进
只要蓝图配了 objectives.stages,这座遗迹就有了阶段制通关。运行时这样追踪:
- 锚点激活时从第 1 阶段开始,刷出
stage: 1的怪。 - 玩家击杀带本锚点标记的怪,按怪 key 累加该阶段的击杀数(同时记录每位玩家各自的贡献)。
- 当前阶段
kills里所有条件都达标 → 推进:- 若还有下一阶段:阶段号 +1,刷出该阶段的怪,全屏飘字 + 音效播报新阶段名(用
objectives里的name),并触发该阶段的STAGE机关。 - 若已是最后一阶段:整座遗迹通关,锚点转入
CLEARED,播报通关标题,触发通关后的机关、发放净化老虎机奖励。
- 若还有下一阶段:阶段号 +1,刷出该阶段的怪,全屏飘字 + 音效播报新阶段名(用
要点:
- 只统计本锚点刷的怪。玩家在遗迹范围内顺手打死的野生怪不计数(它们没有锚点标记)。
- 击杀 key 必须和
spawn-points的mob写法一致(原版名 /mm-前缀),否则计数对不上。详见 蓝图与目标 §六。 - 阶段推进是全锚点共享的进度(不是每人一份),适合多人协作清遗迹。
🧩 另一种通关方式:最终BOSS门(boss-gate)。除了阶段制,你还可以用「累计击杀指定怪物到阈值 → 解锁并生成最终BOSS → 击败BOSS 即通关」的玩法,配置更直白。它与
objectives阶段制二选一。详见 蓝图与目标 · boss-gate。
🖼️ [图片占位] 阶段推进飘字 + bossbar 进度示意 · 建议
assets/stage-advance.png
四、respawn 刷怪重置
激活过的遗迹不会永远空着。是否重刷由模板 template.yml 的 respawn 控制(不在蓝图里)。重刷条件全部满足才会再刷一波:
- 该锚点之前已刷过(已激活过);
- 模板
respawn秒数 > 0(设为 0 = 永不重刷,刷一次就空); - 这座锚点之前刷的怪已全部死亡(还有活怪就不重刷,避免越堆越多);
- 距上次刷怪已超过
respawn秒数(冷却到了)。
满足后会按当前激活逻辑重新刷一波(配了目标则从第 1 阶段起)。这让遗迹像「会自然恢复的世界结构」,而不是一次性副本。
提示
💡 想让某座遗迹「打完就空、绝不复活」,把模板的 respawn 设成 0。想让它每隔几分钟恢复,设成对应秒数。respawn 是模板字段,详见 遗迹模板。
此外,QR 插件停止 / 重载时,会主动移除所有它刷出的、还活着的标记怪,避免遗留怪堆积。
五、保护系统(探索 / 激活中不可破坏放置)
为了让遗迹在被「攻略中」时保持完整,QR 内置保护:锁定状态下的遗迹不能破坏、不能放置方块。
配置在 config.yml 的 protection 段:
# 遗迹保护:探索/激活中不可破坏放置,通关后解锁
protection:
enabled: true # 总开关什么时候算「锁定」
一座锚点满足任一条件就处于锁定(不可破坏放置):
- 它是秘境态(Realm 激活中);或
- 它有击杀目标且尚未通关(配了
objectives且还没打到 CLEARED)。
反过来:没配目标的纯探索遗迹默认不锁;配了目标的遗迹在通关后自动解锁,玩家可以随意改造打通的遗迹。
例外(锁定时仍可破坏 / 放置)
| 例外 | 说明 |
|---|---|
| 管理员 | 拥有 qinhruins.admin 权限的玩家不受保护限制(方便调试 / 修结构) |
| 机关触发块 | 被 BLOCK_BREAK 机关用作触发器的那个方块允许被挖——否则「挖穿某块墙触发机关」的玩法就做不了 |
注意
⚠️ 保护按方块是否落在锚点结构的包围盒内判定。子结构变体如果贴到了主结构包围盒之外,超出部分不受保护、/qr remove 快照也还原不到,配 variants 时注意让它落在主结构范围内(见 程序化生成)。
六、进入门槛 entry(软门槛,非实例化)
entry 是「够不够资格在这座遗迹活动」的软门槛,写在模板 template.yml(不是蓝图里)。
注意
⚠️ 关键认知:QR 不实例化、不开独立世界。所以 entry 不是「副本入口闸门」——它是一组「软性条件 / 提示」,表达「这座遗迹期望几人组队、什么职业、多高成长度才适合来」。它不会像副本插件那样把不合格的人挡在传送门外,因为根本没有传送门。
# —— 进入门槛(QR 不实例化,这是"够资格在此活动"的软门槛)——
entry:
min-players: 1
max-players: 10
# required-classes: [warrior] # 需在场的职业(QinhClass)
min-growth: 0.0 # 最低成长度
# cost: "100" # 进入花费(经济)
cooldown: 0s| 字段 | 含义 | 默认 / 示例 |
|---|---|---|
min-players | 期望最少在场人数 | 1 |
max-players | 期望最多在场人数 | 10 |
required-classes | 需在场的职业(对接 QinhClass 职业系统) | 缺省=不限,如 [warrior] |
min-growth | 最低成长度门槛 | 0.0 |
cost | 进入花费(对接经济插件) | 缺省=免费,如 "100" |
cooldown | 进入冷却 | 0s(如 30s / 5m / 1h) |
提示
💡 成长度(growth)是 QR 对接 QinhClass / MMOCore 等级体系或内置进度的统一概念,也用于战利品按成长度缩放。min-growth 让「高难遗迹只对够强的玩家友好」。
七、常见组合速查
| 想做的玩法 | 怎么配 |
|---|---|
| 纯探索遗迹(不刷怪、不通关) | 蓝图不写 spawn-points / objectives;保护默认不锁 |
| 一次性刷怪点(打完就空) | 写 spawn-points,不写 objectives;模板 respawn: 0 |
| 会恢复的刷怪营地 | 写 spawn-points,模板 respawn: 600(10 分钟重刷) |
| 多阶段副本式遗迹 | 写 spawn-points(标 stage)+ objectives.stages;通关解锁 loot-chests |
| 高难限定遗迹 | 模板 entry.min-growth / required-classes 设门槛 |