Boss竞技场

Boss竞技场

BossArena 是一款 Hytale 服务器模组,它添加了可配置的 BOSS 竞技场、NPC 契约商店和玩家专属战利品箱奖励。

游戏玩法

BossArena – 可配置的Boss竞技场、商店和战利品

BossArena 是一个 Hytale 服务器模组,用于构建可重复挑战的 Boss 遭遇战,配有完整的竞技场、NPC 商店、定时事件和玩家独立战利品。

管理员可以完全在游戏内设计 Boss 和竞技场,而玩家则可以通过契约或直接走入危险区域来触发战斗。当 Boss 死亡时,每个符合条件的玩家都会获得自己的战利品箱和伤害摘要,将 Boss 战变成真正的“事件”,而不是一次性的刷新。


概述

设计 Boss 战,而不仅仅是生物

  • 创建竞技场,配置带有波次/增援和属性成长的 Boss,并通过定时事件和接近触发器将所有内容串联起来。

由玩家驱动的遭遇战

  • 玩家可以使用商店契约或进入配置好的接近竞技场来开始战斗,这样你就不必一直手动输入命令。

玩家独立奖励与追踪

  • 每次遭遇战都会追踪其 Boss 和增援,显示横幅 HUD,保留战利品箱,并在结束后打印伤害图表。

游戏内配置

  • 几乎所有内容都可以通过 /ba config 管理 – Boss、竞技场、战利品、商店、定时刷新、接近触发等。

主要特性

可配置的 Boss

  • bosses.json 或通过 /ba config 定义 Boss:
    • 标识BossIDNPC ID阶位commonuncommonrareepiclegendary)。
    • 属性:生命值、伤害、体型、移动速度、攻击速度等。
    • 按玩家缩放:范围内每增加一名玩家,额外增加生命值/伤害/体型。
    • 等级覆写(需 RPGLeveling):为每个 Boss 强制设定刷新等级。
  • 阶位和修饰符让你可以构建从小 Boss 到团队副本式的各种遭遇战。

竞技场和通知半径

  • 竞技场是简单的锚点位置,用于:
    • Boss 刷新。
    • 战利品箱出现。
    • 事件横幅居中显示。
  • 每个竞技场都有:
    • arenaIdworldNamexyz
    • notificationRadius(方块数)– 谁能看到 Boss 事件 HUD。
  • 通过 /ba config竞技场(Arenas) 选项卡或使用命令管理竞技场:
    • /ba arena create <arenaId>
    • /ba arena delete <arenaId>
    • /ba arena list

波次与增援

  • 波次(Waves) 界面允许你配置:
    • Boss 刷新时机
      • 在所有 Boss 前的增援死亡后。
      • 在遭遇战开始后的固定秒数后。
    • 波次触发器
      • Boss 出现前、刷新时、刷新后、自上一波次后、Boss 生命值百分比阈值。
    • 波次内容
      • 多行增援,包含:
        • NPC ID
        • 数量
        • 重复次数 / 重复间隔
        • 生命值 / 伤害 / 体型倍率
  • 旧版简单的 adds 配置会自动迁移到结构化的波次格式,但你仍然可以完全通过 UI 编辑波次。

定时 Boss 刷新

  • 定时规则位于 mods/BossArena/config.jsontimedBossSpawns[]
    • 每条规则的 bossIdarenaId
    • spawnIntervalHours / spawnIntervalMinutes
    • preventDuplicateWhileAlive 可避免 Boss 叠加。
    • 可选的 despawnAfterHours / despawnAfterMinutes
    • 公告控制:
      • announceWorldWide
      • announceCurrentWorld
      • 带有占位符的 worldAnnouncementText

玩家在线门槛:

  • 定时刷新仅在目标世界至少有一名玩家在线时触发。
  • 如果服务器为空时计时器到期:
    • 该规则将被推迟,并在短时间内重试。
    • 下一次符合条件的尝试会刷新一个 Boss。

定时刷新非常适合预定事件(每小时、每天等),使其显得特殊且可预测。

按 Boss 的接近刷新 (3.0.0+)

BossArena 也支持按 Boss 的接近行为,在波次(Waves)界面中为每个 Boss 单独配置(不在 config.json 中)。

你可以为每个 Boss 设置:

  • 接近刷新(是/否)
  • 竞技场 ID – 用作接近判断的中心点。
  • 半径(方块数) – 玩家必须多近才能触发/限制 Boss 刷新。
  • 冷却时间(秒) – 该 Boss+竞技场的两次接近刷新之间的最短时间。

接近触发有两种关键用法:

  1. 纯接近自动刷新(无需定时规则)

    • 后台循环会定期检查每个启用了接近刷新的 Boss。
    • 如果有玩家位于配置的竞技场半径内,并且
      • 该竞技场中没有匹配的 Boss 存活,并且
      • 上次接近刷新后的冷却时间已过, 那么 BossArena 会立即在该竞技场刷新 Boss
    • 当某个 Boss 启用了接近刷新时,该 Boss 的任何定时规则都会被忽略 – 接近触发将接管作为触发器。
  2. 手动和商店刷新的接近限制

    • 同样的按 Boss 接近设置也会限制:
      • /ba spawn <bossId> <arenaId>(以及适用的 here)。
      • 用于刷新该 Boss 的商店契约。
    • 如果尝试刷新时范围内没有玩家,BossArena 会拒绝刷新 Boss 并记录原因。

这让你可以创建如下遭遇战:

  • 一个只有当玩家接近地牢入口时才会出现的 Boss,两次刷新之间有 30 分钟的冷却时间。
  • 除非有人在战斗地点,否则不会触发的商店/管理员刷新。

NPC 商店和 Boss 契约

  • 放置一个“守卫”NPC,通过标准的**使用(F)**交互来打开 BossArena 商店。
  • 商店出售绑定到特定竞技场的 Boss 契约,包含:
    • 按阶位的条目。
    • 按地点启用/禁用的 Boss 标志。
    • 按地点的契约价格

货币提供者:

  • HyMarketPlus
  • EconomySystem
  • 当没有经济插件时的备用物品货币

你在 shop.json.currencyProvider 中选择提供者(autohymarketeconomysystemitem)。

玩家无需管理员权限即可使用商店 NPC – 只有配置需要。


玩家独立战利品箱与内联指令

  • 当遭遇战结束时,BossArena 会在竞技场刷新一个或多个战利品箱
  • 战利品是玩家独立的:
    • 每个符合条件的玩家都有自己的战利品“实例”。
    • 箱子由 loot_chests_state.json 支持,未领取的战利品在服务器重启后仍会保留。

loot_tables.json 中的战利品表:

  • bossName
  • lootRadius(Boss 死亡时谁有资格领取)
  • items[] 包含:
    • itemId
    • dropChance(0.0–1.0)
    • minAmount
    • maxAmount

内联 cmd: 动作:

  • 除了常规物品奖励外,BossArena 还支持内联命令动作,例如 cmd: /give $Player Ingredient_Bar_Iron --quantity=5
  • 这些命令在奖励触发时执行,并可以使用上下文(Boss、竞技场、玩家)进行参数化。
  • 示例:
    • 为击败 Boss 的玩家授予等级或权限节点。
    • 触发装饰、称号或其他插件功能。
    • 在领取战利品时启动连锁事件或广播。

这使得 BossArena 成为连接 Boss 战斗和服务器其他系统的桥梁


Boss 事件 HUD 与伤害图表

  • 事件横幅 HUD
    • 对竞技场通知半径内的玩家显示。
    • 文本和格式在 config.json.eventBanner 中配置,带有占位符:
      • Boss 名称、存活数量、波次上下文、倒计时等。
  • 伤害图表
    • 当 Boss 事件结束且战利品刷新时,战利品半径内的任何玩家都会收到一份聊天摘要
      • 对 Boss 和增援造成总伤害的前 10 名玩家。
      • 如果贡献玩家超过 10 名,则显示可选的额外一行。
    • 仅在聊天中显示 – 没有模态 UI,以便玩家可以继续移动。

游戏内配置 (/ba config)

一个完整的 GUI 编辑器,避免手动编辑 JSON:

  • Boss 选项卡
    • 核心属性、阶位、等级覆写。
    • 波次/增援和接近设置。
    • 战利品行和其他额外内容。
  • 波次界面
    • Boss 刷新触发器。
    • 波次触发器和增援。
    • 接近刷新、竞技场、半径、冷却时间。
  • 定时刷新界面
    • 用于 timedBossSpawns[] 的内联编辑器。
  • 商店选项卡
    • 商店 NPC 位置。
    • 每个位置启用的 Boss。
    • 契约定价和货币设置。
  • 竞技场选项卡
    • 竞技场 ID、世界、坐标、通知半径。
    • 在玩家位置添加/删除。

命令与权限

基础:

  • /bossarena/ba 是等效的。

管理员命令(需要 bossarena.admin 权限):

  • /ba arena create <arenaId>
  • /ba arena delete <arenaId>
  • /ba arena list
  • /ba spawn <bossId> <arenaId|here>
  • /ba config
  • /ba shop open
  • /ba shop place
  • /ba shop delete
  • /ba reload
  • /ba cleanup

权限:

  • bossarena.admin – 所有管理员命令都需要。
  • 普通玩家:
    • 使用商店 NPC(如果允许)。
    • 参与刷新/定时/接近触发的 Boss 战斗。
    • 打开并拾取自己的箱子。

文件与持久化

所有运行时数据位于 mods/BossArena/ 下:

  • config.json – 全局配置、定时刷新、地图标记、事件横幅模板。
  • bosses.json – Boss 定义、属性、波次/增援、按 Boss 的接近和冷却。
  • arenas.json – 竞技场及其通知半径。
  • loot_tables.json – 战利品表和掉落几率。
  • shop.json – 商店定义、货币提供者、位置、契约。
  • loot_chests_state.json – 内部战利品箱持久化数据(请勿手动编辑)。

Boss 追踪和战利品在重启后持续存在。可以使用 /ba cleanup 来移除卡住的 Boss/增援和孤儿战利品箱。


集成

RPGLeveling (Zuxaw:RPGLeveling) – 可选

  • 自动检测;BossArena 使其追踪的 HP 缩放兼容。
  • 每个 Boss 的 levelOverride 用于强制遭遇战等级,在事件结束时清理。

经济模组 – 可选

  • HyMarketPlus
  • EconomySystem
  • 或纯物品货币。

要求与备注

  • 目标服务器构建:2026.02.19-1a311a592
  • 没有必需的运行时依赖;可独立运行。
  • 避免将竞技场或战利品箱直接放置在雪块上;请使用坚固的地面。
  • 为获得最佳效果:
    • 使用 /ba config 而不是手动编辑 JSON。
    • 在定时 Boss 上保持 preventDuplicateWhileAlive 和合理的消失计时器。
    • 使用接近冷却时间,以避免玩家在某区域挂机时遭遇战过于频繁。

如果你愿意,我也可以为 CurseForge 页面底部起草一个 “快速入门” 章节(5-6 个要点步骤)。