跳到主要内容

副本文件夹

plugins/CloudDungeon/dungeons/ 底下每个文件夹就是一个副本,文件夹名称就是副本 ID(/cd join <副本ID>)。

dungeons/
└─ mine/
├─ config.yml 基本设置:名称、地图、人数、组队、时间、生命、天气、门票、入场条件、冷却、计分板、音效、内建提示
├─ before.yml 开始前脚本(进场后、倒数前)
├─ start.yml 开始后脚本(倒数结束、开始计时)
├─ monster.yml 怪物组
├─ script.yml 脚本组(可重复使用的一串动作)
├─ task.yml 任务组(时间轴)
├─ trigger.yml 触发组(某件事发生时执行)
├─ end.yml 通关组 / 失败组 / 奖励
├─ loot.yml 宝箱组(选用)
├─ map.schem 地图方块(编辑模式自动产生)
└─ points.yml 地图范围与点位(编辑模式自动产生,也可以手改)

没用到的文件可以留空或删掉;/cd admin create 建出来的范本每个都有注释。

执行顺序​

时机执行说明
队长开始检查 config.yml 的条件、门票、次数不符合会列出每一条原因;门票先「押着」
地图贴好、全员传送进场before.yml剧情、布置(NPC、全息字、关门)。这里跑完才开始倒数
倒数结束start.yml;auto-start: true 的怪物组、任务组、触发组同时开始开始计时
进行中怪物组、任务组、触发组、脚本组互相呼叫见下方「串起来」
任何脚本执行 clearend.yml 的 clear,发 rewards进入结算时间(默认 20 秒,可以开宝箱),之后送回原处
时间到 / 全灭 / failend.yml 的 fail失败原因放在 {reason}

串起来​

所有文件都是用同一种脚本写的,每一行一个动作。文件之间靠这几个动作串起来:

动作作用
monstergroup 组名叫出怪物组(怪物组打完会执行它的 end)
script 名称执行脚本组(跑完才接着跑下一行)
task start 名称开始任务组的时间轴
trigger enable 名称打开一个本来关着的触发组
clear / fail 原因通关 / 失败

一个常见的流程:

start.yml monstergroup 前厅卫兵
monster.yml 前厅卫兵.end → obstacle open 大门、trigger enable 启动祭坛
trigger.yml 启动祭坛(右键祭坛)→ monstergroup 守卫
monster.yml 守卫.end → clear
end.yml clear → 通关讯息、奖励

插件内建的范例副本「霜烬古殿」就是这个流程,可以打开 dungeons/example/ 对照着看。

地图与点位​

地图与点位在编辑模式里做(编辑模式),存在 map.schem 与 points.yml。 脚本里写位置时用点位名称(例如 teleport 王座),也可以写坐标 x,y,z——X/Z 相对于副本格子的原点、Y 是世界高度, 跟编辑模式里用指南针左键看到的坐标一样。详见 点位。

config.yml 的 map: 可以填别的副本 ID 共用地图,或填一个清单每场随机一张。