跳到主要内容

10 分钟上手随机地牢

这一页分两段:先玩一次插件自带的范例「深渊回廊」,看看随机地牢长什么样;再从零建立一个自己的随机地牢。

需要 FastAsyncWorldEdit

随机地牢的房间都在背景线程贴上,必须装 FastAsyncWorldEdit。只有 WorldEdit 时,就算主配置 paste.allow-main-thread: true 也不能开始随机地牢;一般副本默认同样会拒绝,要改成 true 才会在主线程硬贴。

1. 试玩范例「深渊回廊」​

全新安装的服务器,plugins/CloudDungeon/dungeons/abyss/ 已经放好了。原本就在用云副本的服务器输入:

/cd admin rogue example

dungeons/abyss 已经存在时不会覆盖。装好后:

/cd admin test abyss

test 是用测试模式开一场:不检查人数和条件、不收门票、不算次数、不发奖励、不算记录。你在队伍里时整队会一起进场,不在队伍里就是一个人。想用正式流程就 /cd join abyss。

范例里有两个难度模式:normal「挑战 3 层」和 endless「无限深渊」(打到团灭,每 5 层出现撤退之门)。测试无限层:

/cd admin test abyss endless

范例的 11 间房间:

房间种类出现楼层内容
start起点—引路人 NPC 与提示全息字
combat_hall战斗全部两波:wave1 打完叫出 wave2
combat_bridge战斗全部断崖石桥,平台上的弓手 + 桥尾守卫同时出
combat_crypt战斗第 2 层以后腐朽墓穴
elite_knight精英全部堕落骑士(标记 boss,王条显示血量)
boss_warden首领全部深渊守门人,半血时叫出援军
boss_lich首领第 3 层以后巫妖王(血量 ×3),第 3 层固定是它
treasure宝藏全部右键宝箱领魂晶,再选一张祝福(选项里至少一张稀有以上)
shop商店全部右键深渊商人买东西
rest休息处全部右键营火:回复 / 淬炼 / 净化
altar事件全部染血祭坛:以血换力,或花 25 魂晶赌一张史诗祝福

范例只用原版怪物。装了 MythicMobs 想换成自己的怪,要一起改这几个地方:

  • rooms/*/monster.yml 里的 minecraft:xxx 换成 MythicMobs 的怪物 ID;
  • 根目录 monster.yml 的 adds(minecraft:vex);
  • boss_warden、boss_lich 的 trigger.yml 里 mob-health 触发的 mob: minecraft:ravager / mob: minecraft:evoker,不改的话「半血叫援军」不会再触发。

另外在默认的 scaling.mythic: level 下,boss_lich 的「血量 ×3」(room.yml 的 scaling)不会套到 MythicMobs 的怪上,见 怪物成长。

2. 建立自己的随机地牢​

/cd admin create crypt &5亡者地窖 --roguelike

--roguelike 写在哪里都可以。会建立 plugins/CloudDungeon/dungeons/crypt/:

  • 根目录的设置文件:config.yml、floors.yml、cards.yml、shop.yml、end.yml、start.yml、script.yml、trigger.yml,每个都有注释;
  • 已经盖好地图的 5 间房:start(起点)、shop(商店)、treasure(宝藏)、rest(休息处)、altar(事件),可以直接用,也可以改;
  • 要你自己盖的 4 间房:combat_1、combat_2(战斗)、elite_1(精英)、boss_1(首领),设置和怪物组都写好了,只差地图。

建立完会直接把你送进 combat_1 的编辑模式。

最少要盖几间?

范本的第 1 层没有精英房,所以盖好 combat_1 和 boss_1 就能开始。还没盖的房间不会出现在门后面,之后再慢慢补。

3. 盖第一间战斗房​

编辑模式和一般副本完全一样(9 个工具,见 编辑模式)。每间房各盖各的,不用互相连通、不用盖走廊:走进门时,全队会被传送到下一间房的入口(床的位置)。

一间房间至少要有:

要做的事工具怎么点
入口2 床右键地板,朝向 = 玩家传送进来时面对的方向
出口(门出现的地方)3 指南针右键地板 → 输入 exit(聊天栏有快速选项可以点)
出怪点1 铁锹右键地板 → 输入 第一波(范本的怪物组名称),可以点好几个地方

盖好后:

/cd admin save
门的位置

只放一个 exit,两三扇门会以它为中心往左右排开(每扇间隔 3 格)。想精确摆每扇门,就另外放 exit1、exit2、exit3:这一次出现几扇门,就要有几个 exitN,不够的话会改回以 exit 为中心排开。完全没有出口点时,门会出现在入口前方 3 格。

还没盖好先藏起来

范本的 config.yml 有 hidden: false。房间还没盖好时可以先改成 hidden: true,只有管理员看得到这个副本,等房间都盖好再改回来。

房间别盖太大:所有房间都排在同一格副本里,一间房的长宽有上限(范本的 environment.border: 16 下最大 424×424),详见 房间大小。

4. 改怪物​

打开 dungeons/crypt/rooms/combat_1/monster.yml,范本里只有一组 第一波(3 只僵尸):

rooms/combat_1/monster.yml(范本)
第一波:
name: "&c第一波"
auto-start: true # 进房间(enter-delay 之后)自动出怪
objective: "&f击败怪物 &e{killed}/{total}"
mobs:
- "minecraft:zombie 3"

改成两波,例如:

rooms/combat_1/monster.yml(改过之后)
第一波:
name: "&c第一波"
auto-start: true
objective: "&f击败怪物 &e{killed}/{total}"
mobs:
- "minecraft:zombie 4"
- "minecraft:skeleton 2"
end:
- "monstergroup start 第二波" # 打完接下一波

第二波:
name: "&c第二波"
mobs:
- "minecraft:husk 3"
新的一组也要有出怪点

怪物组默认从和组名同名的出怪点出怪。新增的 第二波 也要用铁锹点出名为 第二波 的出怪点;或者写成 "minecraft:husk 3 at=第一波",和第一波共用位置。没有出怪点的话这一组不会出怪,validate 会列出「没有出怪点」。

这间房的怪物组全部打完,房间就清除,门出现在出口。写法和一般副本的 怪物组 一样。

5. 盖其他房间​

/cd admin edit crypt

随机地牢的 edit 会打开房间清单:每间房一个图标,显示地图存了没、出现楼层与权重、有几个问题。点一下就进去编辑那一间;也可以直接 /cd admin edit crypt:boss_1。

每间房都要和 combat_1 一样:用床放入口、用指南针放 exit 出口,再用铁锹点出和怪物组同名的出怪点,然后 /cd admin save:

房间怪物组(出怪点名称)内容
combat_2第一波和 combat_1 一样
elite_1精英凋零骷髅,标记 boss
boss_1首领劫掠兽,标记 boss;另外有一个半血时触发的范例触发

少了出怪点的话那间房不会出怪,validate 会列出「没有出怪点」。

编辑房间时,菜单最下面一排可以回到房间清单、切换上一个 / 下一个房间、新增房间。见 编辑房间。

6. 检查、预览、测试​

/cd admin reload
/cd admin validate crypt
/cd admin rogue rooms crypt
/cd admin rogue preview crypt
/cd admin test crypt
指令作用
validate列出每间房的问题:地图还没存、没有入口 / 出口、怪物组不会开始、点位找不到……
rogue rooms每间房一行:能不能用、种类、权重、楼层、大小;最后列出还不能开始的原因
rogue preview随机一个种子,列出前 3 层每一步会出现哪些门(每一步都选第 1 扇)
test用测试模式打一整场(在队伍里会整队一起测试)

只想测某一间:

/cd admin test crypt room=boss_1 single

起点房的门直接通往 boss_1,打完就结算。room= 也可以写种类(例如 room=shop);不加 single 就是第一间固定,之后照常往下打。

编辑模式里,房间菜单的「存档并测试」也是这个效果(保存地图、离开编辑、测试这一间;在队伍里会整队一起进场)。

接下来​