编辑房间
随机地牢用的是同一套编辑模式:同样的编辑世界、9 个工具、右键标签编辑点位、菜单编辑器。差别是一个随机地牢有很多间房,每间各自编辑、各自保存。
房间清单
/cd admin edit <副本>
随机地牢的根目录没有自己的地图,所以 edit 打开的是房间清单(6 排箱子菜单):
- 每间房一个图标,物品照种类:起点 = 床、战斗 = 铁剑、精英 = 凋零骷髅头颅、首领 = 龙首、宝藏 = 箱子、商店 = 绿宝石、休息处 = 营火、事件 = 附魔台。
- 说明里有:
✔ 地图已存 X×Y×Z或✘ 还没盖、出现楼层与权重、房间名称、有几个问题(太大、没有入口……会直接写出原因)。 - 点一下:进去编辑这一间。
- Shift + 右键:切换这间房的种类(战斗 → 精英 → 首领 → 宝藏 → 商店 → 休息处 → 事件),起点房不能换。
最下面一排:
| 按钮 | 作用 |
|---|---|
| 新增房间 | 选一个种类就用范本建立(房间 ID 自动取名,例如 combat_3),直接进去盖地图;要自己取 ID 用 /cd admin rogue room-add |
| 检查设置 | 执行 /cd admin validate <副本>,列出整个随机地牢的问题 |
| 预览楼层 | 随机一个种子,在聊天栏列出前 3 层每一步会出现的门(每一步都选第 1 扇) |
| 书(副本信息) | 房间数、能用的房间数、格子数与间距;还不能开始的话列出原因 |
| 测试整场 | 马上用测试模式开一场(正在编辑的话会先存地图、离开编辑;你在队伍里时整队一起进场) |
| 上一页 / 下一页 | 房间超过 45 间时 |
编辑一间房
/cd admin edit <副本>:<房间>
例如 /cd admin edit abyss:combat_hall,或在房间清单里点一下。进入时会显示「正在编辑 副本 › 房间(种类)」。
每间房最少要有:
| 点位 | 工具 | 说明 |
|---|---|---|
| 入口 | 2 床 | 名称是 room.yml 的 spawn(默认 spawn)。传送进来的位置,也是这间房的存档点;没有入口的房间不会出现 |
| 出口 | 3 指南针,输入 exit | 门出现的地方;要分别摆每扇门就另外放 exit1、exit2、exit3(门数上限是几扇就放几个,不够时改回以 exit 为中心排开) |
| 出怪点 | 1 铁锹,输入怪物组名称 | 战斗、精英、首领房的怪物从这里出来 |
特殊房间另外要一个点位(指南针的快速选项里会列出来):
| 种类 | 点位(默认名称) | 放在哪里 |
|---|---|---|
| 商店 | shop | 商人站的位置(村民蛋 NPC 工具也可以) |
| 宝藏 | chest | 放一个箱子,用指南针右键这个箱子、取名 chest;玩家右键这个箱子领奖励 |
| 休息处 | campfire | 放一个营火,用指南针右键它、取名 campfire |
| 事件 | altar | 放一个当祭坛的方块(例如磁石),用指南针右键它、取名 altar |
名称可以在 room.yml 改(shop.npc、reward.point、rest.point、event.point)。
自动补上的怪物组
铁锹输入的怪物组名称在这间房的 monster.yml 还没有时,会自动补一组范本(3 只僵尸)。这间房的第一组会写成 auto-start: true,进房间就出怪;之后补的组是 false,要一波接一波就在上一组的 end 写 monstergroup start <这一组>。
盖房间的建议
- 房间别盖太大:起点房以外的房间长宽有上限(
environment.border: 16时 424×424),见 房间大小。 - 入口朝向就是玩家传送进来时面对的方向,建议朝着房间里面、出口在另一头。
- 出口前留一点空地:两三扇门会以出口为中心往左右排开,每扇间隔 3 格。
房间的编辑菜单
快捷栏第 9 格的下界之星(或 /cd admin menu)。和一般副本的编辑菜单一样有点位清单、怪物组、触发组、任务组、脚本组,另外:
- 最上面的信息显示种类、权重、楼层、名称、这间房自己的怪物组 / 触发 / 任务数量,以及不能用的原因。
- 存档并测试:保存地图、离开编辑,约 3 秒后用测试模式打这一间(起点房则是测试整场;你在队伍里时整队一起进场)。
- 检查设置:列出这间房找不到的点位、怪物、脚本,以及整个随机地牢的格子问题。
- 脚本组:
script.yml,加上房间的start.yml(进房间)与end.yml的clear(清除时)。
房间快速设置
菜单下半部分直接修改这间房的 room.yml,改完立刻重新读取:
| 设置 | 点击方式 | 对应设置 |
|---|---|---|
| 种类 | 点击切换:战斗 → 精英 → 首领 → 宝藏 → 商店 → 休息处 → 事件(起点房固定) | type |
| 权重 | 左键 +1、右键 −1,Shift 为 ±5(0 = 不会出现) | weight |
| 楼层 | 点一下在聊天栏输入:1-3、4+、all、2 | floors |
| 清除条件 | 点击轮换 groups / mobs / script / enter / event;Shift+右键改回「依种类」 | clear-when |
| 清除后选祝福 | 点击轮换 default / true / false | draft |
| 进房间后等几秒 | 点一下在聊天栏输入(例如 2s;default = 用副本的 roguelike.enter-delay) | enter-delay |
| 每场最多出现 | 左键 +1、右键 −1(0 = 不限) | max-per-run |
| 房间名称 | 点一下在聊天栏输入(可用 & 色码,清空 = 不写) | name |
切换房间
菜单最下面一排:
| 按钮 | 作用 |
|---|---|
| ◀ 房间清单 | 回到这个随机地牢的房间清单 |
| 上一个房间 / 下一个房间 | 依文件夹名称顺序切到相邻的房间。这一间没保存的方块会留在编辑区,回来可以继续盖(点位本来就是即时保存的) |
| 新增房间 | 输入房间 ID,再选种类 |
| 关闭 | 关闭菜单 |
保存与检查
/cd admin save 和一般副本一样,把这间房存成 rooms/<房间>/map.schem 与 points.yml。保存后会自动检查,只列出和这间房有关的问题,以及整个随机地牢的格子问题。
常见的提示:
| 提示 | 怎么办 |
|---|---|
| 地图还没存,这间房暂时不会出现 | /cd admin edit 副本:房间 盖好后 /cd admin save |
| 没有入口点,这间房暂时不会出现 | 用床点一下 |
| 地图 X×Z 太大,这间房暂时不会出现 | 把房间盖小、调小 environment.border,或调大 world.slot-spacing |
| 没有出口点 | 用指南针点 exit(没有的话门会出现在入口前面) |
| clear-when 是 groups,但 monster.yml 没有怪物组 | 新增怪物组,或把 clear-when 改成 enter / mobs |
| 怪物组 X 不会自动开始,也没有脚本叫出它 | 给它 auto-start: true,或在上一组的 end 写 monstergroup start X |
| clear-when 是 script,但房间里没有任何 room clear / clear 动作 | 补上清除的脚本,否则这间房永远不会清除 |
| 商店 NPC / 宝箱 / 营火 / 祭坛 点位找不到 | 用指南针新增那个点位 |
| 房间的触发和副本 trigger.yml 同名 | 只是提醒:在这间房里以房间的为准 |
| 起点房挡住了所有房间格子 / 格子不够 | 把起点房或最大的房间盖小,或调大 world.slot-spacing |
/cd admin rogue rooms <副本> 会一次列出所有房间的状态(✔ / ✘、种类、权重、楼层、大小或原因)与还不能开始的原因。
新增与删除房间
/cd admin rogue room-add <副本> <房间> <种类>
/cd admin rogue room-remove <副本> <房间> confirm
room-add用这个种类的范本建立room.yml、monster.yml、start.yml、end.yml、trigger.yml,然后直接进去编辑。种类可以写start、combat、elite、boss、reward、shop、rest、event。room-remove把房间文件夹移到dungeons/.trash/(不会真的删除);这个随机地牢正在进行或有人在编辑时不能删。
编辑中的限制
- 有人正在编辑某个随机地牢的任何一间房时,玩家不能开始这个随机地牢,只有
/cd admin test可以。 - 保存后,正在进行的场次里还没贴过这间房的,会用新的地图与点位;已经贴过的(门出现时、甚至更早先在背景贴好时就贴了)这一场继续用旧的。房间设置(
room.yml等)要等新开的场次才生效。