跳到主要内容

✦ 随机地牢

同一个副本,每一场走的路都不一样。 起点房出发 → 打完一间房间,出口出现两三扇门 → 选一扇走进去 → 战斗、精英、宝藏、商店、休息处、事件……每层最后是首领 → 打完选一张祝福,带着它往下一层走。

副本的 config.yml 写上 type: roguelike,这个副本就变成随机地牢。它不再是一张固定的地图,而是一堆房间:rooms/ 底下每个文件夹一间,每间有自己的地图、怪物组和脚本。每一场开始时,插件照楼层规则把房间随机串起来。

🚪

选门前进

房间清除后出口出现 1~3 扇门,门上显示房间种类(也可以显示成「? 未知」)。走进门、点门上的字或点聊天按钮投票,可以设成全队投票(票多者胜)、队长决定或第一个投票的人决定。

✦

祝福卡

首领、精英打完从三张里选一张:加伤害、减伤、吸血、暴击、荆棘、加血上限、药水效果……同一张可以叠好几层,一直带到这场结束,离开副本自动移除。

◆

魂晶与商店

杀怪、清除房间、打完一层都拿魂晶,在商店买回复药水、祝福、额外生命、重抽券;价格随楼层上涨,偶尔特价。也能卖用服务器金钱或门票付款的商品。

♾️

有限层 / 无限层

「挑战 3 层」打倒最后一层的首领就通关;「无限深渊」一直往下打到团灭,每 5 层出现撤退之门,可以带着奖励安全离开,冲最高层数排行榜。

📈

越往下越强

每层怪物的血量、伤害、数量、MythicMobs 等级照公式成长,精英房、首领再额外加强(MythicMobs 的怪默认只加等级与数量);血量超过服务器上限的部分自动换算成「耐打」,无限层也不会爆数字。

🛠️

一样的编辑模式

/cd admin edit 副本 打开房间清单,点一间进去盖地图、摆点位;房间的种类、权重、出现楼层在菜单里直接切换。一般副本的脚本、怪物组、触发写法全部照用。

一场随机地牢怎么跑​

/cd join 副本 ─▶ 检查条件、收门票 ─▶ 贴好起点房 ─▶ 传送进场 ─▶ before.yml ─▶ 倒数 ─▶ start.yml
│
▼
起点房(一进来就算清除)─▶ 出口出现第 1 层的第一扇门
│
▼
┌─────────────────────────── 第 N 层 ───────────────────────────┐
│ 第 1 间(只有一扇门)─▶ 清除 ─▶ 选门(2~3 扇)─▶ 第 2 间 ─▶ 清除 ─▶ 选门 ─▶ … │
│ 战斗 / 精英 / 宝藏 / 商店 / 休息处 / 事件(精英打完也会选祝福) │
│ ─▶ 最后一间:首领房 │
└──────────────────────────────────────────────────────────────┘
│ 首领打完:层奖励、魂晶、全队补满血、选一张祝福
▼
下一层的门 ─▶ 第 N+1 层 ─▶ …
│
▼
有限层:打完最后一层的首领 = 通关 无限层:打到团灭,或走进「撤退之门」带着奖励离开
│
▼
end.yml 结算、发奖励 ─▶ 结算菜单 ─▶ 送回原处
  • 每一层要走几间、门后面会出现什么种类、每种最多几次,都写在 floors.yml。
  • 选门、选祝福、换房间的时候是「和平阶段」:这时候倒下不扣生命、马上复活;房间清除时等待复活的队友也会立刻站起来。
  • 下一间房间在背景就先贴好了,走进门几乎不用等(见 全局设置)。

房间种类​

种类门上显示进去之后什么时候算清除(默认)
start 起点—开场就在这里,只会有一间一进来就算
combat 战斗⚔ 战斗打怪房间的怪物组全部打完
elite 精英☠ 精英更强的怪(额外倍率、发光),打完选祝福怪物组全部打完
boss 首领♛ 首领每层最后一间,打完这层就结束怪物组全部打完
reward 宝藏✦ 宝藏右键宝箱领魂晶,再选一张祝福(选项里至少一张稀有以上)一进来就算(门马上出现)
shop 商店⚖ 商店右键商人或 /cd shop 买东西一进来就算
rest 休息处♨ 休息处右键营火:回复 / 淬炼祝福 / 净化诅咒一进来就算
event 事件? 事件右键祭坛做出选择(以血换力、花魂晶赌运气……)每个人都选完(或时间到)

每种房间的设置见 房间 room.yml。

有限层与无限层​

难度模式(modes:)各自决定要打几层,排行榜和记录也照模式分开:

modes:
normal:
name: "&a挑战 3 层"
floors: 3
endless:
name: "&5无限深渊"
floors: infinite
lives: 3
有限层(floors: 3)无限层(floors: infinite)
怎么赢打完最后一层的首领 = 通关走进撤退之门(每 retreat-every 层出现一次)= 撤退成功
怎么输团灭、时间到、所有人离开、脚本 fail = 挑战失败任何失败(团灭、时间到、所有人离开、脚本 fail)= 挑战结束(记下打到第几层)
评价和一般副本一样照通关时间(ranks)照打完的层数(ranks-by-floor)
排行榜通关时间榜 + 层数记录层数排行榜(/cd top、PlaceholderAPI)
floors.yml 的 last:套用在最后一层不会用到

时间只算真正在房间里的时间:选祝福、换房间的时间不算进去。

需要什么​

  • FastAsyncWorldEdit:房间要在背景线程贴上,随机地牢必须装 FAWE。只有 WorldEdit 时,就算主配置 paste.allow-main-thread: true 也不能开始随机地牢;一般副本默认同样会拒绝,要改成 true 才会在主线程硬贴。
  • 其余和一般副本一样:MythicMobs、PlaceholderAPI、Vault、云界面 CloudUI 都是选用。
一般副本的东西都还能用

房间里的怪物组、触发组、任务组、脚本组、宝箱组写法完全和一般副本相同。差别只有一个:在随机地牢里,clear(以及 win、complete、end)代表「这间房清除」,不是整场通关;要直接结算整场用 rogue finish。见 脚本。

从这里开始​