Suite

概览

Abyss 地牢副本模块功能概览

Abyss 地牢副本

模块简介

Abyss 是 Suite 的地牢副本模块,提供「模板定义 → 独立实例 → 脚本化流程 → 结算」的完整副本生命周期。管理员在 abysses/<地牢ID>/ 目录下用 YAML 定义副本(世界来源、怪物波次、任务、交互点、脚本、奖励),玩家通过 /abyss 浏览器或命令进入,每个副本实例运行在独立的隔离世界中,结束后自动回收。

副本世界支持三种来源:虚空世界(运行时生成全空世界,脚本自行搭建场景)、世界文件夹(整个存档目录复制为实例世界)、WorldEdit/FAWE schematic(粘贴到虚空世界)。怪物支持原版实体与 MythicMobs Boss,副本内可跑 NPC 对话、任务接取、交互点、障碍物、定时任务与生命周期脚本。

属性值
模块 IDabyss
版本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 UI14 个 UI:地牢浏览器、进本确认、组队大厅、队伍面板、宝箱、商店、HUD、输入面板、增益选择、统计、排行榜、设计模式三件套
防逃逸拦截传送(BLOCK/TELEPORT_BACK/FAIL 三模式)、末影珍珠/紫颂果/传送门拦截、致命伤拦截、副本内命令/物品黑名单
数据持久化SQLite(共享宿主数据源)或 MySQL(模块自建连接池),体力/冷却/记录/排行榜落库

依赖

依赖类型名称说明
外部硬依赖PlaceholderAPI条件占位符解析与 %axsabyss_*% 扩展注册
外部软依赖MythicMobsBoss/怪物刷怪(不可用时自动回退原版实体)
外部软依赖WorldEdit / FAWEschematic 世界来源粘贴(不用 schematic 可省略)
外部软依赖AdyeshachNPC 渲染(不可用时 NPC 退化为原版实体)
客户端ArcartX MODUI/HUD 展示必需;无客户端可用纯命令玩副本,UI 相关功能不可用

副本核心流程(世界生成/怪物/脚本/结算)只依赖 Bukkit API + PlaceholderAPI,Spigot/Paper/Mohist 均可运行。

运行机制

副本生命周期

玩家请求进本 ──→ 条件检查(体力/冷却/货币/物品/权限/等级) ──→ 创建实例 ──→ 加载世界 ──→ 区块预载
                                                                              │
              ┌── world-init 脚本(建场景) ──→ 传送玩家 ──→ init ──→ start ──→ 怪物组/任务/交互点激活 ──┤
              │                                                               │
   通关 complete ──→ 发奖励+烟花 ──→ exit_dungeon 传送回 ──→ 世界卸载删除        │
   失败 fail/all-death ──→ exit_dungeon ──→ 世界卸载删除                        │
   超时 timeout ──→ FAIL 判负 / KICK 踢出                                       │
              └───────────────────────────────────────────────────────────────┘

世界隔离

每个实例生成 axs_abyss_<实例ID> 世界,玩家进本前记录原位置与游戏模式,出本时恢复。实例无人或超时后世界自动卸载删除(instance-cleanup-timeout 控制),磁盘不残留。

怪物刷怪路由

mob-id 写法行为
vanilla:ZOMBIE强制原版实体
SkeletalKnight / mythic:SkeletalKnightMythicMobs 怪物,加载失败自动回退原版同类型

快速开始

  1. 服务端启用 abyss 模块(宿主 config.yml → modules.abyss.enabled: true)
  2. 首次启动自动导出示例地牢 abysses/example/(虚空世界,无需任何外部依赖即可跑通)
  3. 玩家执行 /abyss 打开浏览器,或 /abyss enter example 直接进本
  4. 写自己的地牢:复制 abysses/example/ 为 abysses/<你的ID>/,改 config.yml 等文件,/axs abyss reload 生效

详见 地牢模板编写 与 配置。

本页目录