Hydowned 复兴

Hydowned 复兴

由Bonfyre_制作的原始Hydowned模组的复刻版本,已更新至Hytale更新5版。该模组将玩家死亡替换为击倒状态,队友可在倒计时结束前进行复活。

游戏玩法

免责声明

此模组并非由我创作,而是由 Bonfyre_ 所做。我提出此更新是因为原版模组会导致游戏崩溃,而原作者已不再活跃。我会尽力在时间内进行更新,如果我有任何想法,也可能会添加新功能。

原版模组链接:https://www.curseforge.com/hytale/mods/hydowned

HyDowned - 倒地状态系统

用一个倒地状态取代立即死亡,你的队友可以在此状态下复活你。当受到致命伤害时,你只会进入倒地状态而不会死亡——给你的队友一个机会把你拉回来。

功能介绍

当你受到致命伤害时:

  • 你会以 30% 的生命值(可配置)进入倒地状态
  • 会开始一个 5 分钟的倒计时(可配置)
  • 倒地时你会进入睡眠动画
  • 队友可以通过在你附近蹲下 10 秒(可配置)来复活你
  • 如果计时结束,你会正常死亡
  • 你可以在 5 秒后按住蹲下键放弃
  • 你可以使用 /giveup 命令立即重生

配置

编辑 plugins/HyDowned/config.json

倒地设置

{
  "downed": {
    "timerSeconds": 300,           // 直到死亡的5分钟倒计时
    "deathOnTimeout": true,        // 计时耗尽时死亡(false = 自动复活)
    "healthWhenDowned": 0.30,      // 倒地时30%的生命值
    "allowMovement": true,         // 允许在倒地时水平移动
    "applySlow": true,             // 施加缓慢效果
    "jumpForce": 0.0,              // 倒地时的跳跃力(0 = 禁用)
    "aiRetargetRange": 16.0,       // 对附近玩家的检测范围(方块)
    "allowedDamage": {
      "player": {
        "enabled": true,           // 启用PvP伤害
        "damageMultiplier": 0.6    // 40%伤害减免
      },
      "ai": {
        "enabled": true,           // 启用AI/怪物伤害
        "damageMultiplier": 0.6    // 40%伤害减免
      },
      "environment": {
        "enabled": false,          // 禁用环境伤害
        "damageMultiplier": 0.6
      },
      "lava": {
        "enabled": true,           // 岩浆致死(防止被困)
        "damageMultiplier": 1.0    // 全额岩浆伤害
      }
    }
  }
}

倒地生命值:

  • healthWhenDowned 设置进入倒地状态时的生命值百分比
  • 默认 0.30 = 最大生命值的 30%(一个 100 生命值的玩家倒地后有 30 生命值)
  • 更高的百分比提供倒地状态下更强的生存能力
  • 更低的百分比会增加脆弱性

移动与物理:

  • allowMovement - 启用/禁用倒地时水平移动
  • applySlow - 倒地时施加缓慢效果(与 allowMovement=true 叠加可实现匍匐)
  • jumpForce - 倒地时的跳跃力(0.0 = 无法跳跃,11.8 = 正常跳跃)
  • 破坏和放置方块始终被禁用
  • 耐力技能始终被禁用

伤害控制

对哪些东西可以伤害倒地玩家进行精细控制:

  • player - 玩家对玩家(PvP)伤害
  • ai - AI/怪物伤害
  • environment - 摔落伤害、火焰、溺水、窒息
  • lava - 岩浆伤害(默认启用以防止被困)

每种伤害类型都有:

  • enabled - 此伤害类型是否影响倒地玩家
  • damageMultiplier - 伤害减免(0.6 = 40% 减免,1.0 = 全额伤害)

AI 目标选择行为:

  • 当 AI 伤害启用时:只有存在更好的目标时,才会将倒地玩家从目标列表中移除
    • 首先检查当前目标列表中是否存在非倒地玩家
    • 如果列表中只有倒地玩家:在附近区域(aiRetargetRange 范围内)扫描非倒地玩家
    • 如果找到非倒地玩家:移除倒地目标让 AI 重新选择
    • 如果不存在更好的目标:将倒地玩家保留为目标
    • 每个 NPC 每 5 秒只进行一次检测,以防止刷屏
  • 当 AI 伤害禁用时:倒地玩家会完全从 AI 的目标列表中移除
  • aiRetargetRange - 扫描附近玩家的检测半径,以方块为单位(默认:16.0)

复活设置

{
  "revive": {
    "timerSeconds": 10,            // 完成复活需要10秒
    "maxRange": 2.0,               // 必须在2个方块范围内
    "healOnReviveEnabled": false,  // 复活时恢复生命值
    "healOnReviveHealth": 0.30     // 恢复的生命值(30%)
  }
}

摄像机设置

{
  "camera": {
    "enabled": false,              // 启用自定义摄像机
    "defaultCamera": true,         // 使用默认俯视视角
    "firstPerson": false,          // 第一人称视角
    "positionX": 0.0,              // 摄像机X偏移
    "positionY": 0.8,              // 摄像机Y偏移(高度)
    "positionZ": 0.0               // 摄像机Z偏移
  }
}

UI 设置

{
  "ui": {
    "enableSounds": true,          // 音效
    "enableProgressBar": true,     // HUD进度条
    "showChatMessages": false      // 聊天通知
  }
}
  • enableSounds - 播放倒地事件的音频反馈
  • enableProgressBar - 显示带有进度条和倒计时的 HUD
  • showChatMessages - 为倒地/复活事件发送聊天消息(推荐使用 HUD)

命令

/giveup - 如果你不想等待计时,可以在倒地时立即死亡

  • 仅在倒地状态下可用
  • 绕过 5 秒的放弃倒计时
  • 立即触发死亡和重生

登出/重新连接行为:

  • 倒地状态在断开连接和服务器重启后持续存在
  • DownedComponent 在实体数据中存储剩余时间
  • 重新连接后,将恢复倒地状态及其剩余时间

死亡处理:

  • 当倒地玩家受到来自允许来源的致命伤害时,他们会正常死亡
  • 会出现死亡画面,并保持适当的动画
  • 重生后,所有倒地状态都会被清除
  • 移动和物理能力完全恢复

HUD 系统:

  • 根据玩家状态显示实时信息
  • 为倒地玩家、观察者和复活者提供不同的视图

翻译与语言

HyDowned 内置了多种语言的翻译。所有面向玩家的消息都会自动以玩家客户端的语言显示。

包含的语言:

  • 英语 (en-US) - 默认
  • 葡萄牙语 (pt-BR) - 巴西葡萄牙语
  • 德语 (de-DE) - 德语
  • 韩语 (ko-KR) - 韩语
  • 日语 (ja-JP) - 日语

工作原理:

模组会自动检测每个玩家的 Hytale 客户端语言偏好,并以他们的语言显示消息。无需任何配置!

翻译覆盖范围:

  • 状态通知(被击倒、复活消息)
  • 计时消息(倒计时、剩余时间)
  • 复活交互(开始、取消、完成)
  • 命令(描述和反馈)
  • HUD 消息(按键复活、剩余时间、放弃)

添加你自己的翻译:

  1. 解压 JAR 文件:jar xf HyDowned.jar
  2. 导航到 Server/Languages/ 目录
  3. 复制一个已有的语言文件夹(例如 en-US
  4. 将其重命名为你的语言代码(例如西班牙语的 es-ES
  5. 用你的翻译编辑 hydowned.lang 文件
  6. 重新打包 JAR 文件:jar cf HyDowned.jar *

翻译文件格式:

# 以 # 开头的行是注释
state.knocked_out = You've been knocked out! Wait for a teammate...
state.player_knocked_out = {playerName} is knocked out
timer.knocked_out_remaining = Knocked out - {time}s remaining
hud.press_to_revive = Press {key} to revive {user}
hud.downed_time = You will die in {time}

参数:

  • {playerName} / {user} - 玩家的显示名称
  • {reviverName} - 进行复活操作的玩家名称
  • {time} - 剩余时间(格式化后)
  • {count} - 玩家数量
  • {key} - 按键绑定引用

查看 en-US/hydowned.lang 获取所有可用的翻译键。

安装

服务器:

  1. 下载 JAR 文件
  2. 将其放入服务器的 mods 文件夹
  3. 重启服务器
  4. 配置文件生成在 plugins/HyDowned/config.json
  5. 根据需要自定义配置,然后重载或重启

单人游戏 / 本地:

  1. 下载 JAR 文件
  2. 将其放入 Saves/<你的世界>/mods/
  3. 重启世界
  4. 配置文件生成在 plugins/HyDowned/config.json

需求

  • Hytale 抢先体验版或更高版本
  • 服务端模组(客户端无需安装)
  • 无依赖项

源代码

原版模组可在 GitHub 获取:https://github.com/BenDol/HyDowned 当前模组:https://github.com/Bassaltent/HyDowned-Revival

支持

https://github.com/BenDol/HyDowned/issues 页面报告错误。

鸣谢

  • 感谢 Bonfyre_ 创作了原版模组
  • 感谢 Alex 制作了 Logo(我让他免费干活了)
  • 感谢社区的反馈和测试

许可证

MIT 许可证