PMA 持久模型分配

PMA 持久模型分配

PMA(Persistent Model Assignment)是一款轻量级的服务器端Hytale插件,能够在玩家重新连接到服务器时自动记忆并重新应用其角色模型。

Mobs\Characters

📦 PMA – 持久化模型分配(服务端)

PMA(持久化模型分配) 是一款轻量级的 Hytale 服务端插件,可自动记住玩家角色模型,并在玩家重新连接时重新应用该模型。

一旦玩家使用 Hytale 自带的 /model set 命令设置模型,PMA 会从服务器日志中检测到该命令,保存所选模型(以及可选的比例),并在玩家每次加入时重新应用——无需客户端模组。


✨ 功能

  • 自动模型持久化
    玩家模型会在登录时恢复,无需重新运行命令

  • 📏 比例支持
    支持 --scale 值,包括:

    • --scale 0.5
    • --scale=0.5
    • --scale .5
  • 🔓 绕过比例限制支持
    玩家在设置比例时应包含 --bypassScaleLimits
    如果没有该标志,Hytale 会强制执行非常小的比例限制,变化可能很微小或难以察觉。

  • 💾 持久化存储
    模型分配信息会保存到磁盘,并在服务器重启后保留

  • 🔁 安全重试系统
    模型仅在玩家实体完全初始化后应用

  • ⚙️ 仅服务端
    无需客户端模组、数据包或命令覆盖


🛠 工作原理

  • PMA 实时监听服务器日志

  • 当玩家运行命令时:

    /model set <model> [player] --scale <value> --bypassScaleLimits

    PMA 会从日志输出中捕获模型 ID 和比例

  • 模型分配会按玩家保存

  • 登录时,PMA 会:

    • 等待玩家实体变为有效
    • 将保存的模型和比例直接应用到实体
    • 使用 Hytale 的 PersistentModel 组件持久化分配信息

📁 数据存储

模型分配信息存储在:

PMAData/models.properties

格式:

<username>=modelAssetId|scale

示例:

John_Doe=feran|0.25

(没有比例条目的项会自动默认为 1.0。)


⚠️ 注意事项与提示

  • PMA 不会 替代或修改 /model 命令

  • 使用 --scale 时,始终包含 --bypassScaleLimits 以确保变化可见

  • 该插件依赖标准的服务器日志输出

  • 适用于玩家角色模型(非静态实体)


👤 适用场景

  • 角色扮演服务器

  • 持久化角色自定义

  • 希望玩家模型在会话之间保持不变的服务器