
波次防守
一款多功能的PvE与PvP引擎,包含波次防御、可自定义商店及三种竞技游戏模式,专为Minecraft设计。
查看大图Wave Defense 模组
安装
- 安装 Forge
1.20.1(推荐47.2.0+)。 - 将构建好的
wavedefense-0.2.55.jar复制到mods/文件夹。 - 可选:安装 Mine and Slash(
mmorpg模组,v6.1.0+)以解锁每个位置的生物等级 / 经验 / 抗性设置。 - 启动客户端或专用服务器。
按键绑定
| 按键 | 功能 |
|---|---|
V |
打开 Wave Defense 主菜单 |
B |
直接打开商店 |
G |
离开当前位置 |
主要特性
PvE 波次防守
- 可配置的位置,包含玩家出生点、可选散布半径和生物出生点。
- 可配置的波次,包含生物类型、数量、装备、效果、生成几率与规模调整。
- 可配置第一波之前以及后续波次之间的延迟。
- 积分系统,涵盖击杀、起始积分、购买、出售、奖励和完成加成。
- 进出时背包的备份与恢复。
- 起始物品与完成奖励。
- 全局商店模式或基于积分的商店模式。
- 带有事件触发器的战利品生成点。
- 可选的自动激活区域,包含倒计时和粒子效果。
- 可选的位置边界,具有计时器、伤害、传送回起点或立即投降模式。
- 可选的惩罚波次传送门系统。
- 用于显示波次、计时器、生物数量、玩家和积分的 TextDisplay 信息面板。
- 当最后一名玩家在波次中途离开时,有 30 秒宽限期 —— 若有人重新加入则波次继续。
Mine and Slash 兼容性(可选)
当安装了 Mine and Slash(mmorpg 模组,v6.1.0+)时,每个 PvE 位置在位置编辑器的“特殊”选项卡中会获得额外的逐位置设置:
| 设置 | 效果 |
|---|---|
| 生物等级 | 设置该位置生成的每个生物的 MnS 等级 |
| 经验掉落加成 % | 为每个生成的生物添加一个百分比 bonus_exp 修正器 |
| 火焰抗性 | 添加一个平坦的 fire_resist 修正器 |
| 水系抗性 | 添加一个平坦的 water_resist 修正器 |
| 闪电抗性 | 添加一个平坦的 lightning_resist 修正器 |
| 混沌抗性 | 添加一个平坦的 chaos_resist 修正器 |
| 物理抗性 | 添加一个平坦的 physical_resist 修正器 |
所有值默认为 0(不覆盖 —— MnS 使用其自身默认值)。
当未安装 Mine and Slash 时,此部分将完全隐藏。
PvP 模式
PvP 位置使用团队出生点和逐位置的 PvP 设置。
支持的子模式:
- 标准模式:团队回合,包含购买阶段、倒计时、战斗阶段、胜/负积分和回合数。
- 死亡竞赛:比赛期间可重生,达到击杀目标即获胜。
- 大逃杀:随机分配出生点、缩小的边界、边界粒子效果以及最后存活者获胜的流程。
PvP 设置包括:
- 团队出生点,带有可选的出生半径;
- 最小玩家数;
- 友军伤害;
- 团队自动平衡;
- 等待效果;
- 起始积分;
- 击杀积分与死亡惩罚;
- 回合开始延迟;
- 回合开始/胜利/失败积分;
- 死亡竞赛击杀目标;
- 大逃杀的边界半径、缩小间隔、粒子效果和边界伤害。
管理员编辑器
该模组设计为通过游戏内 GUI 界面进行配置:
- 位置编辑器;
- PvP 位置编辑器;
- 波次列表编辑器;
- 波次生物编辑器;
- 波次触发器编辑器;
- 生物选择;
- 起始物品;
- 完成奖励;
- 商店编辑器;
- 商店物品编辑器;
- 商店可用性触发器编辑器;
- 商店积分编辑器;
- 战利品生成编辑器;
- 导入/导出界面;
- HUD 编辑器。
- 玩家 PvP 团队选择界面。
0.2.43+ 版本的当前 UI 方向:
- 减少冗长无结构的表单;
- 对“基础”、“出生点”、“波次”、“商店”、“战利品”、“边界”、“传送门”、“HUD”和“PvP”进行分组分区;
- 所有大型界面保持一致滚动行为;
- 避免点击隐藏的已滚动出可视区域的组件;
- 改善玩家商店浏览体验,支持列表和瓦片/网格模式;
- 使有用的 PvE 位置设置和 PvP 位置设置保持一致;
- 更清晰的 PvP 团队选择界面,为拥有多个团队的位置提供可滚动卡片。
商店系统
商店支持:
- 每个商店条目可包含多个物品堆叠;
- 购买和出售价格;
- 分类;
- 出售检查的可选 NBT 匹配;
- 可用性触发器;
- 全局商店物品;
- 逐积分商店物品;
- 通过 NBT 文件导入/导出。
面向玩家的界面:
- 瓦片/网格视图,带有物品图标、紧凑价格、分类筛选和明确的购买/出售操作;
- 经典列表视图仍可在同一商店界面中使用。
触发器系统
触发器用于波次、战利品、商店和位置事件。
示例:
- 波次事件:
WAVE_START、WAVE_END、WAVE_N、WAVE_COMPLETE; - 计时器:
TIMER_60、TIMER_120、TIMER_300、TIMER_CUSTOM; - 生物事件:
MOB_KILL、MOBS_KILLED_N、MOBS_REMAINING_LOW; - 玩家事件:
PLAYER_JOIN、PLAYER_DEATH、PLAYER_ENTER_ZONE、PLAYER_HAS_ITEM; - PvP 事件:
ROUND_START、ROUND_END、BUY_PHASE、MATCH_START、MATCH_END、TEAM_WIPE、KILL_STREAK_3; - 商店事件:
SHOP_LOCATION_START、SHOP_WAVE_START、SHOP_WAVE_N、SHOP_PLAYER_HAS_ITEM。
命令
| 命令 | 描述 |
|---|---|
/wavedefense |
主命令 |
/wd |
别名 |
/wavedefense kick <players> |
强制将玩家移出位置 |
/wavedefense tp <location> <players> |
将玩家传送至位置 |
/wavedefense menu <player> [admin] |
为玩家打开菜单 |
/wavedefense reload |
重新加载已保存的位置数据 |
配置
游戏内(推荐)
打开 Mods 菜单 → 选择 Wave Defense → 点击 Config。 一个五选项卡的 GUI 涵盖了所有设置,无需手动编辑任何文件:
| 选项卡 | 设置 |
|---|---|
| 常规 | HUD 叠加层、默认波次时间、UI 提示、大厅计时器、位置游戏模式 |
| PvP | 隐藏敌方名牌、默认回合数、默认购买时间 |
| 生物与商店 | 生物装备开关、护甲掉落几率、商店分类、商店快捷键 |
| 限制 | 最大生物类型数、波次数、出生点数、商店物品数、战利品生成数(1–9999) |
| 调试 | 管理员调试消息、服务器日志详细程度 |
更改会在点击 保存并关闭 时立即写入磁盘。
文件(手动)
通用配置文件:
config/wavedefense-common.toml
Wave Defense — 模组详细描述
1. 总体概念
Wave Defense 是一个适用于 Minecraft 1.20.1 Forge 服务器的竞技场引擎。服务器管理员创建“位置”——具有独立规则的隔离竞技场。每个位置可以是 PvE(生物波次)或 PvP(团队战斗)。玩家通过菜单(V)进入位置,进行一场游戏,然后退出——所有配置均通过 GUI 完成,无需编辑文件。
2. 位置类型
2.1 PvE — “波次防守”
玩家抵御敌人生物波次。每波之后有暂停,然后继续下一波。目标是生存过所有已配置的波次。
主要循环:
进入 → 大厅(计时器) → 波次 1 → 暂停 → 波次 2 → … → 波次 N → 胜利
一场游戏中会发生什么:
- 玩家被传送到位置的出生点
- 应用起始装备(如果已配置)
- 发放起始积分
- 大厅计时器开始(通常 5 秒,等待加入)
- 一波接一波地生成带有已配置装备、效果和几率的生物
- 击杀生物 → 玩家获得积分;波次结束 → 波次奖励
- 通过所有波次 → 胜利界面 → 发放奖励 → 传送回出口
2.2 PvP — “团队战斗”
玩家被分配到团队并进行竞技。有 5 种子模式:
| 子模式 | 说明 |
|---|---|
| 标准模式 | 回合制:购买阶段 → 倒计时 → 战斗。赢得更多回合的团队获胜 |
| 死亡竞赛 | 无限重生,最先达到 N 次击杀者获胜 |
| 大逃杀 | 各自为战 / 团队作战;场地边界缩小,最后存活的玩家 / 团队获胜 |
| 占领点 | 团队占领并保持多个点;点被控制时持续得分 |
| 山丘之王 | 规则相同,但只有一个争议点 |
3. 玩家所见与所为
3.1 进入位置
- 按下
V→ 打开 PlayerMenuScreen - 查看所有开放位置的列表,带有
[PvE]/[PvP]标记 - 点击位置:
- PvE → 立即加入
- PvP → 首先打开团队选择界面(
PvpTeamSelectScreen)
- 被传送到出生点,获得起始装备和积分
- 大厅计时器开始(如果有其他玩家,计时器已在运行 — 玩家可看到剩余时间)
3.2 PvE 游戏期间
- HUD(右上角)显示:
- 位置名称
- 波次数:
波次 3 / 10 - 生物数量:随数量减少由绿 → 黄 → 红
- 距下一波的时间,带进度条
- 玩家积分
- 团队成员列表
- 商店(按键
B):花费积分购买物品;物品可用性取决于触发器(例如,“仅在第 3 波之后”) - 退出(按键
L):自愿投降 — 背包恢复到进入前状态,战利品获取根据设置 - 死亡时:恢复(取决于位置的
keepInventory设置) - 如果最后一名玩家在波次中途退出 → 30 秒等待暂停(宽限期);如果有人返回,游戏继续
3.3 PvP 游戏期间
通用:
- HUD 显示:当前阶段(
BUY / ACTIVE / WAITING)、回合比分、计时器、积分 - 敌方玩家昵称已隐藏(通过 Minecraft Scoreboard API 和渲染钩子实现)
标准 / 死亡竞赛 / 大逃杀:
BUY阶段:获得回合积分,商店开放COUNTDOWN:3-2-1 倒计时ACTIVE:战斗;每次击杀 = 积分;每次死亡 = 积分惩罚- 淘汰(大逃杀)或团队被歼灭(标准模式)= 回合结束
- 回合结果 + 新积分 → 下一回合或比赛结束
占领点 / 山丘之王:
- 地图上存在可占领的点(以粒子标记)
- 进入点半径 → 开始占领(HUD 中显示进度条)
- 如果双方团队都在点上 → 占领被冻结(争议状态)
- 被占领的点每秒为团队提供积分
- 右侧 HUD:点列表,显示所有者、进度条、积分计数器和回合计时器
- 胜利条件:团队先达到
scoreToWin,或计时器结束时得分最高
3.4 排行榜
- 玩家主菜单中的
🏆 排行榜按钮(仅在位置外可见) - 打开
LeaderboardScreen:- 位置选择(可滚动按钮行)
- 模式选项卡:PvE | 标准 | 死亡竞赛 | 大逃杀 | 占领点 | 山丘之王
- 前十名表格:
# | 玩家 | 积分 | <附加指标> | 时间 | 日期 - PvE:积分 + 波次;PvP:积分 + 击杀
4. 管理员配置内容
4.1 打开管理员菜单
- 按下
V(菜单键)→ 看到管理员按钮(需要操作员等级 2) - 或使用命令
/wavedefense menu <player> admin
4.2 AdminMenuScreen — 位置管理
- 名称输入框(仅限
a-z、0-9、-、_) - 按钮:创建、编辑、删除(双击)、导入 / 导出
- 所有位置的可滚动列表
4.3 LocationEditorScreen — PvE 位置(选项卡)
“基础”选项卡
| 参数 | 描述 |
|---|---|
| 名称 | 唯一标识符 |
| 玩家出生点 | X Y Z + 📌 按钮(获取当前坐标) |
| 出生散布半径 | 0 = 精确出生;> 0 = 在出生点周围随机半径内 |
| 保留背包 | 如果关闭 — 玩家背包将被保存并恢复 |
| 强制游戏模式 | 进入时设为生存模式,离开时恢复原模式 |
| 起始物品 | 编辑进入时发放的物品列表 |
| 完成奖励 | 给予满足条件玩家的物品 / 积分 |
“波次”选项卡
波次列表。每波包含:
| 参数 | 值 |
|---|---|
| 生物列表 | 生物类型、数量、每波增长、生成几率、击杀积分 |
| 生物装备 | 头盔、胸甲、护腿、靴子、主手、副手 |
| 生物效果 | 列表:效果:等级:持续时间 |
| 生成半径 | 特定于该类型,或使用位置默认值 |
| 波次出生点 | 指定 X Y Z,替代通用出生点 |
| 波次奖励 | 通过奖励积分、玩家药水效果、带占位符的命令 |
| 激活触发器 | 波次不按顺序激活,而是通过事件(PLAYER_JOIN、TIMER_60、MOBS_KILLED_N 等) |
| 触发器起始波 | 触发器激活所需的最小波数 |
| 触发器冷却 | 秒 / 波次 / 一次性 |
“商店”选项卡
| 参数 | 描述 |
|---|---|
| 模式 | GLOBAL(单一商店)或 POINT(多个商店点) |
| 商品列表 | 单个条目最多 4 种物品,购买/出售价格 |
| 商品分类 | ALL / WEAPON / ARMOR / CONSUMABLE / OTHER |
| 可用性触发器 | 商品仅在事件后可用(例如,第 5 波) |
| NBT 匹配 | 仅允许出售具有精确 NBT 的物品 |
| 商店点 | POINT 模式:坐标、访问半径、自己的商品列表 |
“特殊”选项卡(边界)
| 参数 | 描述 |
|---|---|
| 启用边界 | 启用地界 |
| 边界半径 | 1–9999 格 |
| 越界后果 | TIMER_SURRENDER / DAMAGE / TELEPORT_BACK / INSTANT_SURRENDER |
| 投降计时器 | 强制投降前的秒数(适用于 TIMER_SURRENDER) |
| 边界伤害 | 每秒伤害(适用于 DAMAGE) |
| 边界粒子 | 类型、数量、粒子墙高度 |
“特殊”选项卡(自动区域)
| 参数 | 描述 |
|---|---|
| 启用自动激活 | 区域自动开始游戏 |
| 区域中心 | X Y Z 或出生点 |
| 区域半径 | 5–9999 格 |
| 激活时间 | 开始前的倒计时秒数(0 = 立即) |
| 开始后开放 | 开始后新玩家可以进入的秒数 |
| 区域粒子 | 类型、数量、速度、间隔 |
“特殊”选项卡(传送门)
| 参数 | 描述 |
|---|---|
| 启用传送门 | 启用传送门系统 |
| 惩罚波次 | -1 = 按顺序;0+ = 列表中的特定波次 |
| 传送门计时器 | 消失前秒数(未进入则触发惩罚) |
| 通过后消失 | 惩罚波次完成后传送门是否消失 |
| 重生计时器 | 传送门之间的最短 30 秒 |
| 开始后开放 | 生成后玩家可以进入的秒数 |
| 退出时保留战利品 | 玩家从传送门退出时保留物品 |
“特殊”选项卡(信息面板)
游戏中的 TextDisplay 实体:
- 出生点面板:在玩家出生点 — 显示波次、生物数、计时器、玩家数量、大厅计时器、第一波
- 生物生成面板:在每个生物出生点 — 波次、计时器、生物数量
- 每个面板:Y 轴偏移、文本缩放、行可见性开关
“Mine & Slash”选项卡(如果安装了 mmorpg v6.1.0+)
| 参数 | 效果 |
|---|---|
| 生物等级 | 每个生成生物的 MnS 等级 |
| 经验掉落加成 % | bonus_exp PERCENT 修正器 |
| 火焰 / 水系 / 闪电 / 混沌 / 物理抗性 | 相应抗性的 FLAT 修正器 |
4.4 PvpLocationEditorScreen — PvP 位置(选项卡)
“通用”选项卡
| 参数 | 描述 |
|---|---|
| 团队出生点 | X Y Z、团队名称、散布半径 |
| 最少玩家数 | 低于 N 名玩家时比赛不开始 |
| 友军伤害 | 团队成员之间的伤害 |
| 自动平衡 | 玩家在团队间均匀分配 |
| 等待效果 | 等待时获得缓慢+失明效果或旁观者模式 |
| 起始积分 | 进入时积分 |
“规则”选项卡(按子模式)
标准模式:
| 参数 | 描述 |
|---|---|
| 回合数 | 比赛中的总回合数 |
| 购买时间 | BUY 阶段持续时间(秒) |
| 回合开始延迟 | ACTIVE 前的倒计时 |
| 回合胜利积分 | 获胜团队的奖励 |
| 失败积分 | (惩罚或 0) |
| 击杀 / 死亡积分 | 个人积分 |
死亡竞赛:
| 参数 | 描述 |
|---|---|
| 胜利击杀数 | 首个达到 N 次击杀的团队 / 玩家获胜 |
| 购买时间 | 类似标准模式 |
大逃杀:
| 参数 | 描述 |
|---|---|
| 边界半径 | 初始半径(最小 10 格) |
| 缩小间隔 | 每 N 秒半径减少 1 格 |
| 边界粒子类型 | 周边的效果类型 |
| 粒子数量 | 墙的密度 |
| 边界伤害 | 边界外每秒伤害 |
占领点 / 山丘之王:
| 参数 | 描述 |
|---|---|
| 胜利积分 | 首个达到 N 积分的团队获胜(先到先得分模式) |
| 每秒积分 | 每个点每秒提供的积分 |
| 回合时长 | 秒数(用于计时器模式) |
| 胜利模式 | 先到先得分 或 计时器结束时分数最高 |
“占领点”选项卡(仅限占领点 / 山丘之王)
点列表及每一点编辑器:
| 参数 | 值 |
|---|---|
| 点名 | 显示在 HUD 和聊天中(最多 20 个字符) |
| 位置 | X Y Z 或 📌 |
| 占领半径 | 1–30 格 |
| 占领时间 | 1–120 秒以夺取该点 |
| 粒子类型 | 预设:smoke / flame / end_rod / witch / portal / snow / squid_ink |
| 粒子数量 | 点周围的粒子环 |
4.5 管理员命令
| 命令 | 操作 |
|---|---|
/wavedefense 或 /wd |
主命令 |
/wd tp <location> <players> |
将玩家传送到位置 |
/wd kick <players> |
强制将玩家移出位置 |
/wd menu <player> [admin] |
为玩家打开菜单(或管理菜单) |
/wd reload |
从磁盘重新加载位置数据 |
5. 机制详细描述
5.1 触发器系统
触发器用于波次、战利品和商店。可以设定 AND 条件(两个触发器必须同时满足)、冷却时间和一次性。
可用触发器:
| 类别 | 触发器 |
|---|---|
| 玩家 | JOIN、DEATH、ENTER_ZONE、OPEN_CHEST、OPEN_DOOR、LOW_HEALTH、FULL_INVENTORY、HAS_ITEM(自定义 ID)、HAS_DIAMOND/IRON/SWORD |
| 计时器 | TIMER_60、TIMER_120、TIMER_300、TIMER_CUSTOM(任意秒数) |
| 波次 | WAVE_START、WAVE_END、WAVE_N(特定波次)、WAVE_COMPLETE、WAVES_SURVIVED_5/10/20/N |
| 生物 | MOB_KILL、MOBS_KILLED_10/50/100/N、HALF_MOBS_DEAD、MOBS_REMAINING_LOW |
| PvP | ROUND_START、ROUND_END、BUY_PHASE、TEAM_WIPE、KILL_STREAK_3、MATCH_START、MATCH_END |
| 位置 | LOCATION_START、LOCATION_END |
| 商店 | SHOP_LOCATION_START、SHOP_WAVE_START、SHOP_WAVE_N、SHOP_PLAYER_HAS_ITEM |
5.2 积分系统
- 积分是内部货币,与玩家等级无关
- 获得途径:击杀生物、击杀玩家(PvP)、完成波次、赢得回合
- 扣除途径:死亡惩罚(PvP)
- 花费途径:商店
- 完成奖励:将特定物品发放给积分 ≥ N 的玩家
5.3 排行榜
数据存储于 <world>/data/wavedefense_leaderboards.dat。
| 模式 | 主要分数 | 次要分数 |
|---|---|---|
| PvE | 获得积分 | 通过的波次 |
| PvP 标准 / 死亡竞赛 / 大逃杀 | 积分 | 击杀 |
| PvP 占领点 / 山丘之王 | 目标积分 | 击杀 |
每个位置每个模式的前十名。原子写入(.tmp → 重命名)。
5.4 背包备份
进入时(如果 keepInventory = false):
- 完整背包(27 个槽位 + 护甲 + 副手)保存至 NBT
- 玩家获得起始物品
- 退出时(胜利 / 投降)— 背包精确恢复:槽位、护甲、副手、效果
5.5 难度动态调整(自动缩放器)
- 按位置跟踪胜负统计
- 如果玩家持续获胜 → 生物数量乘数增加
- 如果持续失败 → 减少
- 数据在服务器重启间保留
6. 位置配置示例
| 名称 | 模式 | 特点 |
|---|---|---|
| 新手竞技场 | PvE | 3 波、弱僵尸、无边界、全局商店 |
| 终局堡垒 | PvE | 20 波、每波带有 KILL_STREAK_3 触发器以生成奖励生物、边界伤害、第 10 波传送门 |
| 自动区域 | PvE | 当玩家靠近 10 格内时自动开始游戏,无大厅计时器 |
| 山丘之王·阿琳娜 | PvP 山丘之王 | 中心一个点、300 积分胜利、5 分钟计时器、end_rod 粒子 |
| 五点占领 | PvP 占领点 | 地图上 5 个点、200 积分胜利、争议冻结 |
| 大逃杀 | PvP 大逃杀 | 20 个出生点、边界从 100 格缩小到 10 格、每秒 2 点伤害 |
| PvP 死亡竞赛 | PvP 死亡竞赛 | 无回合、30 次击杀获胜、每 3 分钟购买阶段 |
| MnS 突袭 | PvE | 50 级生物、增加火焰抗性、200% 经验加成、仅限 MnS 玩家 |
7. 网络架构(概述)
- 协议 v8,约 34 种数据包类型
- 所有管理数据包在服务器端检查
hasPermissions(2) - 导出文件列表(
RequestWaveExportListPacket)— 仅限操作员权限 SyncCtpStatePacket每 20 刻(1 秒)发送一次,用于占领点 / 山丘之王 HUDSyncPlayerDataPacket— 玩家状态、计时器、积分SyncPvpStatePacket— PvP 阶段、比分、计时器
8. 本地化
8 种语言:EN · UK · DE · FR · ES · PL · PT-BR · ZH-CN
正在加载版本记录…











正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。