HyExtras

HyExtras

通过每个玩家的变量、命名的冷却时间、命令执行、体积链等功能,扩展了原生的触发器体积系统。

实用

HyExtras | 内部 Alpha 阶段 2 (1.0.2-alpha.2)

为 Hytale 服务器提供的额外触发区域动作、条件、数据包工具和创作者实用程序。

HyExtras 是一个面向 Hytale 服务器的模块化创作者和开发者工具包。它扩展了原生的触发区域系统,增加了额外的效果和条件、每个玩家的变量、持久标签、冷却时间、基于数据包的可见性功能、命令执行、区域链式触发、浮动物品显示、NPC 状态工具、图像图标等功能。

HyExtras 专为服务器所有者、地图制作者、地下城创建者、MMO 风格服务器、任务系统、冒险地图以及希望在不替换 Hytale 原生触发区域工作流程的情况下获得更多控制权的开发者而构建。

HyExtras 替换原生的触发区域系统。 它在其基础上增加了额外的工具。


HyExtras 能做什么?

HyExtras 为创作者和服务器开发者提供了更多在触发区域内对玩家行为做出反应的方式。

使用它可以创建如下内容:

  • 隐藏的地下城入口
  • 一次性剧情触发器
  • 每位玩家的解谜进度
  • 仅限玩家的私人互动
  • 基于冷却时间的奖励
  • 条件性的 NPC 逻辑
  • 剧情区域可见性规则
  • 漂浮的装饰性物品展示
  • 基于数据包的标题、动作条、相机和可见性效果
  • 服务器端的 MMO、任务、地下城和冒险机制

主要特性

额外的触发区域效果

HyExtras 添加了大量额外的触发区域效果,包括:

  • 设置、增加、计算和移除玩家变量
  • 应用具名的冷却时间
  • 运行服务器命令
  • 发送标题、富文本消息和奖励消息
  • 给予和移除物品奖励
  • 将玩家向后推
  • 控制相机和语音活动
  • 按玩家隐藏或显示实体
  • 触发具名区域
  • 启用或禁用区域
  • 添加或移除持久玩家标签
  • 添加或移除区域标签
  • 阻止、允许、取消或修改互动
  • 创建、移动、移除和配置浮动物品
  • 向 NPC 或基于 UUID 的实体应用标签和变量

额外的触发区域条件

HyExtras 还添加了额外的条件,使您的触发区域可以在运行效果之前检查某些条件。

示例如下:

  • 玩家变量检查
  • 冷却时间就绪状态
  • 持久标签检查
  • 数学条件
  • 操作符检查
  • 玩家可见性检查
  • 世界时间范围
  • 互动类型检查
  • 区域标签检查
  • TagNPC 状态检查
  • 浮动物品存在性检查

这使得为每位玩家构建不同反应的内容变得更加容易。


每位玩家的状态

HyExtras 可以追踪每个玩家的数据,这非常适合任务、地下城、谜题和进度系统。

支持的状态类型包括:

状态类型 用例
变量 运行时计数器、分数、临时进度、谜题状态
冷却时间 奖励计时器、反垃圾信息逻辑、可重复事件
可见性覆盖 为特定玩家隐藏或显示实体
持久标签 剧情标记、解锁项、已完成目标、长期进度

变量和冷却时间仅存在于运行时,而持久标签会被保存并在服务器重启后仍然存在。


基于数据包的特性

HyExtras 包含可选的基于数据包的工具,用于高级服务器内容。

这些可用于:

  • 每位玩家的可见性
  • 隐藏/显示玩家或实体的逻辑
  • 相机控制
  • 标题和动作条
  • 区域可见性策略
  • NPC 目标保护
  • 剧情区域风格的数据包规则

这对于 MMO 服务器、剧情驱动型服务器、地下城服务器以及需要为玩家提供个性化体验的服务器尤其有用。


模块化设计

HyExtras 被拆分为内部模块,以便服务器所有者只启用他们需要的部分。

当前模块包括:

  • TriggerExtras — 额外的触发区域效果和条件
  • PlaceholderAPI 桥接 — 在 HyExtras 文本中支持 %placeholder%
  • 数据包 API — 基于数据包的可见性、相机、标题和辅助系统
  • 图像图标 — 为开发者模组提供本地和远程 PNG/GIF 图标支持
  • TagNPC — 为 NPC 和生物提供运行时标签、变量和可见性
  • 浮动物品 — 装饰性、不可拾取的物品展示

大多数模块可以通过配置文件或 /hextras 命令进行切换或重载。


浮动物品

创建不旨在被拾取的装饰性物品展示。

适用于:

  • 地下城钥匙
  • 任务标记
  • 展示奖励
  • 商店视觉效果
  • 漂浮收集品
  • RPG 风格的环境装饰

浮动物品可以是持久的、无形的、动画的,并且可以通过命令进行管理。


TagNPC

TagNPC 让 HyExtras 能够追踪基于 UUID 的 NPC、生物或实体的运行时状态。

您可以用它来:

  • 向 NPC 添加或移除运行时标签
  • 在 NPC 上存储变量
  • 向特定玩家隐藏或显示 NPC
  • 构建条件性的 NPC 行为
  • 支持任务或地下城状态逻辑

这对于剧情内容、互动生物以及服务器端的任务系统很有用。


图像图标

HyExtras 包含一个供开发者模组使用的图像图标系统。

它支持:

  • 提供者作用域的图像资源
  • 本地 PNG/GIF 图标
  • 远程 PNG/GIF 图标
  • 热重载支持
  • 远程缓存
  • 观察者半径限制
  • 每位观察者的图标数量限制

这专为希望在 HyExtras 兼容系统中获得可重用图标支持的开发者设计。


占位符支持

HyExtras 支持原生占位符,例如:

{player}
{uuid}
{variable:key}

当安装了适用于 Hytale 的 PlaceholderAPI 时,也可以启用可选的 PlaceholderAPI 支持来解析 %placeholder% 标记。


管理员命令

所有 HyExtras 管理员命令都在:

/hextras

命令组包括:

/hextras var
/hextras tag
/hextras cooldown
/hextras list
/hextras debug
/hextras modules
/hextras module
/hextras tagnpc
/hextras floatingitems
/hextras reload

这些命令允许管理员管理玩家变量、标签、冷却时间、模块、TagNPC 状态、浮动物品、调试和运行时重载。


用例示例

一个隐藏的遗迹区域,每 5 分钟迎接一次玩家并记录访问次数:

{
  "conditions": [
    { "type": "cooldown_ready", "eventType": "ENTER", "Name": "ruins_intro" }
  ],
  "effects": [
    { "type": "apply_cooldown", "eventType": "ENTER", "Name": "ruins_intro", "Duration": 300.0 },
    { "type": "add_variable", "eventType": "ENTER", "Key": "ruins_visits", "Delta": 1 },
    { "type": "send_title", "eventType": "ENTER", "Title": "The Hidden Ruins", "Subtitle": "Visit #{variable:ruins_visits}" }
  ]
}

这种设置可用于地下城、剧情区域、教程区域、谜题房间、奖励区域等。


安装

  1. 下载 hyextras-<version>.jar
  2. 将其放入您的 Hytale 服务器的 mods/ 文件夹中。
  3. 启动服务器。
  4. HyExtras 在首次运行时将生成 hyextras.properties
  5. 可选:安装适用于 Hytale 的 PlaceholderAPI 以启用 %placeholder% 支持。

兼容性

项目 支持版本
Hytale 服务器 API 0.5.x
构建/测试于 0.5.6
Manifest 范围 >=0.5.0 <0.6.0
HyExtras 版本 1.0.2
Java 25

未来的 Hytale 0.6.x 版本应视为需要新的兼容性测试,因为服务器 API 可能会发生变化。


配置

HyExtras 使用:

hyextras.properties

配置文件在首次运行时生成,并包含带有说明的默认值。

配置选项包括:

  • 全局数据包功能开关
  • 启动诊断
  • 调试模式
  • 模块启用/禁用设置
  • 占位符行为
  • 图像图标缓存设置
  • TagNPC 可见性设置
  • 浮动物品默认值

您可以在运行时使用以下命令重载配置:

/hextras reload

面向开发者

HyExtras 包含一个稳定的 HyExtrasApi 外观类,其他服务器模组可以使用它来实现:

  • 玩家变量
  • 玩家标签
  • 冷却时间
  • 可见性辅助
  • 相机和标题辅助
  • 规则评估
  • 图像图标
  • TagNPC 状态
  • 浮动物品

示例:

HyExtrasApi api = HyExtrasApi.get();

api.setVariableString(playerUuid, "partyId", "alpha");
api.addTag(playerUuid, "storyline_a_active");
api.hidePlayerFrom(viewerUuid, targetUuid, true);
api.sendActionBar(playerUuid, "Party: " + api.getVariableString(playerUuid, "partyId"));

实用链接


免责声明

HyExtras 是一个独立的社区项目。

它与 Hypixel Studios 无关联,未获得其认可、赞助,也无官方联系。“Hytale”是其各自所有者的商标。