HyDowned

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 HP → 倒地时 30 HP)
  • 较高的百分比提供更强的倒地生存能力
  • 较低的百分比增加脆弱性

移动与物理:

  • 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 = 你被击倒了!等待队友救援...
state.player_knocked_out = {playerName} 被击倒了
timer.knocked_out_remaining = 被击倒 - 剩余 {time} 秒
hud.press_to_revive = 按 {key} 复活 {user}
hud.downed_time = 你将在 {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/<YourWorld>/mods/
  3. 重启世界
  4. 配置文件会在 plugins/HyDowned/config.json 生成

尽情享受吧!

需求

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

源代码

可在 GitHub 获取:https://github.com/BenDol/HyDowned

支持

GitHub issues 页面报告错误。

致谢

  • Alex 提供了 logo(我让他免费劳动的)
  • 社区的反馈和测试

许可证

MIT 许可证