JemLives

JemLives

一个有限生命/半硬核类型的系统。灵感来自Grian的第三生命系列。

游戏玩法

Hytale 服务器插件:有限生命系统

一款实现有限生命系统的 Hytale 服务器插件。玩家初始拥有一定数量的生命,死亡时失去生命。当生命耗尽时,玩家会受到惩罚(例如被踢出服务器),直到生命值恢复。


BETA!!!! —— 尚未进行大量测试,功能尚不完善!

使用风险自负!


功能特性

  • 有限生命系统:玩家初始拥有可配置数量的生命(固定或随机)。
  • 死亡扣减生命:玩家死亡时扣除一条生命。可配置为所有死亡或仅 PVP 死亡时触发。
  • PVP 奖励[未完成]:击杀其他玩家时,有概率获得一条生命。
  • 生命恢复:经过可配置的冷却时间后,自动恢复生命。
  • 强化死亡消息:全局播报死亡消息,并显示玩家剩余生命数。
  • 本地通知:玩家死亡时,向其发送包含当前状态的私密消息。
  • 富文本支持:通过 TinyMsg 支持完全自定义的消息,包括颜色、渐变和样式。
  • 热重载:使用 /jemlives reload 在不重启服务器的情况下重载配置。

安装方法

  1. 发布页面下载最新版本
  2. JemLives-x.x.x.jar 文件放入 Hytale 服务器的 mods 文件夹
  3. 启动服务器以生成配置文件
  4. (可选)编辑 Jemsire_JemLives/LivesConfig.json 文件来自定义设置
  5. 如果你做了修改,在游戏中输入 /jemlives reload 重载配置

配置说明

首次启动后,会在 Jemsire_JemLives/LivesConfig.json 路径下生成配置文件:

{
  "InitialLivesMin": 3,
  "InitialLivesMax": 3,
  "LoseLivesFromPvpOnly": false,
  "GainLivesFromKills": false,
  "GainLifeChance": 0.1,
  "ZeroLivesAction": "KICK",
  "RegenTimeMinutes": 60,
  "LogLevel": "INFO",
  "DeathAnnouncementFormat": "<orange>{player} <red>has died and now has <orange>{lives} <red>lives.",
  "LocalDeathMessage": "<red>You died! You have <orange>{lives} <red>lives left.",
  "LivesCommandMessage": "<green>You have {lives} lives left.",
  "KickMessage": "You have run out of lives! Come back in {time}.",
  "DeathCauseReplacement": "was",
  "ShowLivesHud": true,
  "HudIconPath": "Hud/Essense.gif"
}

配置选项

  • InitialLivesMin / InitialLivesMax:初始生命的范围。如果两者相等,玩家将获得固定数量的生命。
  • LoseLivesFromPvpOnly[未完成]:如果为 true,玩家仅在被其他玩家击杀时失去生命。
  • GainLivesFromKills[未完成]:如果为 true,玩家击杀其他玩家时有概率获得一条生命。
  • GainLifeChance[未完成]:PVP 击杀时获得生命的概率(0.0 到 1.0)。
  • ZeroLivesAction:当玩家生命为 0 时执行的操作(例如 KICK)。
  • RegenTimeMinutes:玩家生命归零后,恢复生命所需的时间(分钟)。
  • LogLevel:插件的日志级别(INFODEBUGWARNSEVERE)。
  • DeathAnnouncementFormat:全局死亡消息的格式。
    • 占位符:{player}{playerName}{deathCause}{rawDeathCause}{lives}
  • LocalDeathMessage:发送给死亡玩家的私密消息。
  • LivesCommandMessage:玩家使用 /lives 命令时显示的消息。
  • KickMessage:玩家因生命为 0 被踢出时显示的消息。
    • 占位符:{time}(距离恢复的剩余时间)
  • DeathCauseReplacement:替换默认 Hytale 死亡消息中的 "You were"。
  • ShowLivesHud:如果为 true,在快捷栏附近显示生命 HUD。
  • HudIconPath:图标图片的路径,相对于 Common/UI/Custom/(例如 "Hud/Essense.gif""JemLives/heart.png")。

在 HUD 中使用图片

Hytale UI 中的图片使用 Group 配合 Background: PatchStyle(TexturePath: "path")。路径相对于你的插件的 Common/UI/Custom/ 文件夹(与 .ui 文件相同位置)。

  1. 添加你的图片
    遗憾的是,我发现目前不支持 .gif 格式。

    将你的 PNG 文件(例如 Essense.png)放入 src/main/resources/Common/UI/Custom/Hud/(或子文件夹)。它会被打包到插件 JAR 文件中。

  2. 在 .ui 文件中引用它
    .ui 文件中使用:

    Group #hudIcon {
      Anchor: (Width: 32, Height: 32);
      Background: PatchStyle(TexturePath: "Hud/Essense.gif", Border: 0);
    }
    

    Border: 0 会将图片拉伸至 Anchor 的大小。使用正数的 Border(例如 12)可实现 9-slice 缩放。

  3. 配置
    HudIconPath 设置为相对于 Common/UI/Custom/ 的路径(例如 "Hud/Essense.gif""JemLives/heart.png")。默认图标路径为 Hud/Essense.gif

颜色格式

所有消息字符串都支持使用标签或传统颜色代码的高级颜色格式。该插件使用 TinyMsg 实现富文本格式化。

支持的颜色格式:

  • 命名颜色标签<red><blue><green><yellow><gold><orange> 等。
  • 十六进制颜色标签<color:#FF0000><#FF0000>
  • 传统颜色代码&a&c&e 等。

高级格式化功能:

  • 渐变<gradient:#FF0000:#00FF00>彩虹文字</gradient>
  • 文字样式<bold><italic><underline><monospace>

命令

  • /lives - 查看你的剩余生命数(等同于 /jemlives check
  • /jemlives check - 查看你的剩余生命数
  • /jemlives info - 打开生命信息 UI
  • /jemlives reload - 重载插件配置(管理员)

权限

权限 描述
jemlives.check 使用 /lives/jemlives check
jemlives.info 使用 /jemlives info(打开生命信息页面)
jemlives.reload 使用 /jemlives reload(重载配置)

如果玩家缺少所需权限,他们将看到红色的 "You do not have permission to perform this command!" 消息。

本项目是开源的:

欢迎贡献或改编为你自己的系统!查看 ** [Github](https://github.com/Jemsire/JemLives)**

想要获取我所有项目的更新?

加入 Discord! [立即加入!](/linkout?remoteUrl=https%253a%252f%252fdiscord.jemsire.com%252f)