Skip to content

组队与会话

所属:服主指南 · 相关:遗迹模板 · 刷怪与通关 · 战利品系统 · Provider 与桥接 · 命令大全

QR 的多人体验由三块拼成:

一句话来源
队伍(Party)/qr party 组队(运行时内存),可读 MMOCore 队伍优先用 MMOCore 队伍,缺则用 QR 内置临时队伍
会话(Session)bossbar 锚点占用判定、/qr info 计数config.ymlsession + 模板的 session
进入门槛(Entry)人数/成长度/职业/花费/冷却的软校验规则模板的 entry

🔑 架构红线:QR 不算属性/伤害,队伍这里也一样——QR 只负责「谁和谁算一伙、谁能进」,怪的强度仍交 MythicMobs 缩放、成长度读 QinhClass/MMOCore

注意

当前实现边界(务必先读):本页的 session(进入/退出大标题、限时倒计时 bossbar)与 entry 软校验段是为显式「进入副本」流程预留的配置与规则,当前主线玩法(自然生成的世界结构 + 靠近自动刷怪 + 就近清怪通关)不经过这套进入流程,因此这些字段目前不会主动触发。当前真正生效的多人逻辑是:靠近 48 格内的玩家共同推进刷怪目标、通关/秘境净化时对就近玩家结算(见 刷怪与通关秘境与钥石)。/qr party 命令可正常组队,成长度/职业判定也实时可读(用于战利品成长缩放、秘境等)。本页 session/entry 字段写了不报错、可作前瞻配置,但别指望它们现在拦人或弹进入标题。

🖼️ [图片占位] 一队三人进入遗迹的瞬间(标题 + 紫色 bossbar) · 建议 assets/session-enter.png


一、会话(Session)

「会话」是一座遗迹正在被一群人探索的运行态预留层——配置项管 bossbar 外观、限时倒计时、以及无人时的清理规则。

注意

如顶部所述,会话的「进入/退出大标题、限时倒计时 bossbar」依赖显式进入流程,当前主线玩法不触发它。下面字段写了不报错,作为前瞻配置与「锚点占用」判定(/qr info、秘境/重复进入互斥)的依据。

1.1 全局配置(config.yml 的 session 段)

yaml
session:
  enter-radius: 48        # 集结搜索半径:搜索附近锚点 / 判定队友是否到齐的范围(供进入流程用)
  bossbar: true           # 是否显示遗迹 bossbar
  bossbar-color: PURPLE   # PINK / BLUE / RED / GREEN / YELLOW / PURPLE / WHITE
  bossbar-style: SOLID    # SOLID / SEGMENTED_6 / SEGMENTED_10 / SEGMENTED_12 / SEGMENTED_20
  • enter-radius:集结时搜索附近遗迹的半径,队友也需在此范围内才算到齐。注意:config.yml 该项注释里写的「/qr enter」是历史遗留——实际不存在 /qr enter 命令,当前没有走集结流程的入口。
  • bossbar:bossbar 的全局开关与外观。当前秘境激活(见 秘境与钥石)会用自己的 realm.bossbar-* 设置显示头顶进度条;本段 session.bossbar 配的是会话进入流程的 bossbar,随该流程一并预留。

1.2 模板级会话规则(template.yml 的 session 段)

每座遗迹可在自己的 template.yml 覆盖会话行为:

yaml
# template.yml 片段
session:
  mode: shared-anchor      # 会话模式(多人共用同一座实例)
  time-limit: 30m          # 限时:到点结束会话(写 0 或留空走全局;更像世界结构可设长一些)
  cleanup-on-empty: 60s    # 全员离开多久后清理这次会话(防空场挂着)
字段默认说明
modeshared-anchor多人共享同一座遗迹实例
time-limit30m限时;bossbar 会随之倒计时。设很长则更像「世界结构」而非副本倒计时
cleanup-on-empty60s成员全部离开后,过这么久就结束会话、把锚点还原为休眠态

时间写法支持 30s / 10m / 1h 等。

1.3 进入/退出 & 通关提示文案

会话相关玩家可见文案在 lang/<语言>/messages.yml,支持 & 颜色码和占位符:

yaml
# lang/zh_cn/messages.yml
messages:
  enter-title: "&6⚔ 进入 {ruin}"            # 进入大标题({ruin}=遗迹名)——随进入流程预留
  enter-subtitle: "&7队伍 {players} 人 · 限时 {time}"  # 副标题({players}=人数 {time}=限时)——同上
  exit: "&7你已离开遗迹"                       # 离开提示——随进入流程预留
  complete: "&a遗迹探索完成!"
  complete-sub: "&7{ruin} 已被征服"           # 通关副标题(当前就近玩家可见,已生效)
  stage-advance: "&a▶ 阶段达成"               # 阶段推进大标题(已生效)
  stage-advance-sub: "&7进入:{stage}"        # 阶段推进副标题(已生效)

注意

enter-title/enter-subtitle/exit 这几条随上面的「进入流程」一并预留,当前不主动弹出;真正会在玩家眼前出现的是 complete-sub/stage-advance*——它们由刷怪通关/阶段推进逻辑对就近 48 格玩家触发(见 刷怪与通关)。

bossbar 的标题在限时模式下设计为显示「遗迹名 - 剩余时间」。颜色/样式见 §1.1


二、队伍(Party)

「队伍」决定谁和谁算一伙:共享探索进度、共享经验、进门一起被门槛校验。

2.1 队伍来源优先级

QR 不重复造队伍轮子——它优先复用现成的 RPG 队伍

text
装了 MMOCore 队伍 ──► 用 MMOCore 队伍(读其在线成员)
        否则        ──► 用 QR 内置临时队伍(/qr party ...)

成长度/职业判定的来源略有不同:成长度优先 QinhClass → MMOCore → 原版等级;队伍成员优先 MMOCore → QR 内置。详见 Provider 与桥接

2.2 QR 内置临时队伍命令

当没接外部队伍系统时,用 QR 自带的轻量临时队伍(运行时内存,重启清空):

命令权限作用
/qr party createqinhruins.use创建队伍,自己成为队长
/qr party invite <玩家>qinhruins.use队长邀请某人(被邀者需 accept)
/qr party acceptqinhruins.use接受待处理的邀请
/qr party leaveqinhruins.use离队;队长离队则解散整队
/qr party infoqinhruins.use查看本队成员

规则要点:

  • 只有队长能邀请(先 create);
  • 已在别的队伍的人无法被邀请/加入;
  • 队长 leave = 解散整队,全员退出。

单人(没建队/没接外部队伍)时,队伍就是「你自己一个人」,所有共享逻辑照常工作,只是成员只有你。

2.3 共享什么

注意

当前以「就近」而非「队伍」结算:目标计数 / 阶段推进当前是按锚点全局推进的——任何人击杀该遗迹的怪都会推进同一进度,通关大标题、净化战利品、老虎机资格则发给就近(约 48 格内)的玩家,而不是严格按队伍名单。所以即使没组队,靠在一起打同一座遗迹也照样共推进度、共领奖。

/qr party 组的队伍当前主要价值是「把谁和谁标记成一伙」(供未来进入流程 / 外部系统读取),以及接 MMOCore 时复用其队伍成员列表。容器/奖励箱仍按各渠道的 per-player / shared 规则发放,见 战利品系统


三、进入门槛(Entry)软校验

注意

同样随进入流程预留entry 段定义的人数/成长度/职业/花费/冷却软校验是为显式「进入副本」流程准备的规则,当前主线玩法不主动跑这套校验(世界结构没有「进门」这一刻)。下面把字段、校验语义、对应文案完整列出,便于你预配、对接,以及理解 /qr save 默认生成的 entry 段含义。

进门前(进入流程触发时)QR 会对到场的这一队人做一组软校验(任一不过则拦下并提示,不扣任何代价)。在模板 template.ymlentry 段配置:

yaml
# template.yml 片段
entry:
  min-players: 1                 # 到场人数下限
  max-players: 10                # 人数上限(0 或负=不限)
  required-classes: []           # 队伍中必须在场的职业(如 [warrior, healer])
  min-growth: 0                  # 全队每人成长度都需 ≥ 此值
  cost: ""                       # 进入花费(队长付,需经济插件;如 "money:500")
  cooldown: 0s                   # 同一遗迹对队长的进入冷却(如 30m / 1h)
字段默认校验失败提示(messages.yml)
min-players1到场人数 ≥ 此值(队友需在 enter-radius 内集结)party-not-enough(「还需 {n} 名队友」)
max-players10到场人数 ≤ 此值(≤0=不限)party-too-many(core.yml)
min-growth0每位成员成长度都 ≥ 此值growth-too-low(附带不达标者名字)
required-classes列出的每个职业,队中至少有一人在场class-required(「队伍中需要 {class}」)
cost队长持有足够货币(走 经济桥cost-not-enough
cooldown0队长对该遗迹不在冷却中anchor-cooldown(附带剩余秒数)

校验全过后,若该遗迹已被别队占用还会提示 anchor-busy

注意

这些校验是软门槛:成长度/职业读不到来源(没装 QinhClass/MMOCore)时按「不限制」处理,不会把玩家卡死在门外。required-classes 用的职业 ID 由你接入的职业系统决定。

进入门槛文案

yaml
# lang/zh_cn/messages.yml
messages:
  party-not-enough: "&e还需 {n} 名队友才能进入"
  growth-too-low: "&c你的成长度不足以进入此遗迹"
  class-required: "&e队伍中需要 {class} 职业在场"

四、按需求快速配置

注意

下表带 session.* / entry.* 的项随「进入流程」预留(见本页顶部说明),当前主线玩法不触发;列出便于预配与对接。带 ✅ 的现在就生效。

我想要…怎么做
通关 / 阶段推进有大标题 ✅默认就有;改 messages.complete-sub / messages.stage-advance*
秘境头顶进度条 ✅走秘境:realm.bossbar-*(见 秘境与钥石
玩家组队一起打 ✅/qr party createinvite;或装 MMOCore 复用其队伍
锁等级/成长度对接来源 ✅装 QinhClass/MMOCore,成长度即实时可读(战利品成长缩放等用得到)
头顶进度/倒计时条(进入流程)session.bossbar: true + 模板 session.time-limit(预留)
限时挑战(进入流程)模板 session.time-limit: 10m(预留)
至少 3 人才能进(进入流程)模板 entry.min-players: 3(预留)
队伍里必须有牧师(进入流程)模板 entry.required-classes: [healer](预留)
进门收费(进入流程)模板 entry.cost: "money:500",装经济插件(预留)
进同一遗迹有冷却(进入流程)模板 entry.cooldown: 1h(预留)

下一步