概览
Abyss 地牢副本模块功能概览
Abyss 地牢副本
模块简介
Abyss 是 Suite 的地牢副本模块,提供「模板定义 → 独立实例 → 脚本化流程 → 结算」的完整副本生命周期。管理员在 abysses/<地牢ID>/ 目录下用 YAML 定义副本(世界来源、怪物波次、任务、交互点、脚本、奖励),玩家通过 /abyss 浏览器或命令进入,每个副本实例运行在独立的隔离世界中,结束后自动回收。
副本世界支持三种来源:虚空世界(运行时生成全空世界,脚本自行搭建场景)、世界文件夹(整个存档目录复制为实例世界)、WorldEdit/FAWE schematic(粘贴到虚空世界)。怪物支持原版实体与 MythicMobs Boss,副本内可跑 NPC 对话、任务接取、交互点、障碍物、定时任务与生命周期脚本。
| 属性 | 值 |
|---|---|
| 模块 ID | abyss |
| 版本 | 1.0.0 |
| 配置文件 | config.yml、messages.yml、abysses/(副本模板目录) |
| 命令入口 | 玩家 /abyss、/party;管理 /axs abyss |
| 外部依赖 | PlaceholderAPI(必需);MythicMobs / WorldEdit / FAWE / Adyeshach(可选) |
| 模块依赖 | 无 |
| 对外能力 | AbyssQueryable(副本状态查询)、PlayerDataPurgeable、DatabaseMigratable |
| PAPI 前缀 | %axsabyss_*% |
功能特性
| 特性 | 说明 |
|---|---|
| 独立副本实例 | 每个副本实例创建独立世界(axs_abyss_<随机ID>),多实例并行互不干扰,结束后自动卸载清理 |
| 三种世界来源 | void 虚空生成 / world/ 世界文件夹复制 / schematic 粘贴(需 WorldEdit 或 FAWE) |
| 怪物波次 | 怪物组按 spawn-timing 触发(自动/延迟/上一组结束/脚本),vanilla: 前缀强制原版,默认走 MythicMobs 并自动回退原版 |
| 生命周期脚本 | world-init / init / start / complete / fail / player-death / all-death / exit 脚本段 + 70+ 内置动作 + wait 挂起 |
| 区域模板 | /axs abyss region pos1|pos2|save 圈选任意世界建筑存为模板,paste_region 脚本动作铺进副本世界(保留方块朝向/状态) |
| 副本任务 | NPC 对话接取、条件提交(PAPI 条件),quest_step 智能动作一次点击完成接取/提交 |
| 交互点 | 右键方块/左键/挖掘/放置/踩上/进入区域/右键实体,支持一次性、条件、失败消息节流 |
| 障碍物 | 方块组自动放置/移除,可选 ENTER/LEAVE/PERSIST 触发脚本 |
| 定时任务 | TIMED(指定秒触发)/INTERVAL(循环)/EVENT(怪物击杀等事件)三种副本内任务 |
| 队伍系统 | 创建/邀请/接受/踢出/转让/解散/队聊,支持离线成员管理(按 UUID),整队进本 |
| 体力与冷却 | 全局体力(自动回复)+ 按地牢独立冷却 + 货币/物品/权限/条件进本检查 |
| 战斗统计 | 击杀/伤害/承伤/治疗实时记录,副本结束自动展示统计 UI |
| 通关排行榜 | 按地牢独立榜单,记录通关耗时排行 |
| 副本内 HUD | 波次进度/存活怪/存活玩家/剩余时间条/任务追踪,每秒推送 |
| ArcartX UI | 14 个 UI:地牢浏览器、进本确认、组队大厅、队伍面板、宝箱、商店、HUD、输入面板、增益选择、统计、排行榜、设计模式三件套 |
| 防逃逸 | 拦截传送(BLOCK/TELEPORT_BACK/FAIL 三模式)、末影珍珠/紫颂果/传送门拦截、致命伤拦截、副本内命令/物品黑名单 |
| 数据持久化 | SQLite(共享宿主数据源)或 MySQL(模块自建连接池),体力/冷却/记录/排行榜落库 |
依赖
| 依赖类型 | 名称 | 说明 |
|---|---|---|
| 外部硬依赖 | PlaceholderAPI | 条件占位符解析与 %axsabyss_*% 扩展注册 |
| 外部软依赖 | MythicMobs | Boss/怪物刷怪(不可用时自动回退原版实体) |
| 外部软依赖 | WorldEdit / FAWE | schematic 世界来源粘贴(不用 schematic 可省略) |
| 外部软依赖 | Adyeshach | NPC 渲染(不可用时 NPC 退化为原版实体) |
| 客户端 | ArcartX MOD | UI/HUD 展示必需;无客户端可用纯命令玩副本,UI 相关功能不可用 |
副本核心流程(世界生成/怪物/脚本/结算)只依赖 Bukkit API + PlaceholderAPI,Spigot/Paper/Mohist 均可运行。
运行机制
副本生命周期
世界隔离
每个实例生成 axs_abyss_<实例ID> 世界,玩家进本前记录原位置与游戏模式,出本时恢复。实例无人或超时后世界自动卸载删除(instance-cleanup-timeout 控制),磁盘不残留。
怪物刷怪路由
| mob-id 写法 | 行为 |
|---|---|
vanilla:ZOMBIE | 强制原版实体 |
SkeletalKnight / mythic:SkeletalKnight | MythicMobs 怪物,加载失败自动回退原版同类型 |
快速开始
- 服务端启用 abyss 模块(宿主
config.yml→modules.abyss.enabled: true) - 首次启动自动导出示例地牢
abysses/example/(虚空世界,无需任何外部依赖即可跑通) - 玩家执行
/abyss打开浏览器,或/abyss enter example直接进本 - 写自己的地牢:复制
abysses/example/为abysses/<你的ID>/,改config.yml等文件,/axs abyss reload生效