图标

图标

为NPC实体添加了动态图标。

实用

 


图标

在 NPC 上方显示浮动物品图标,支持任务状态。


图标是一个 Hytale 服务器插件,可在世界中任何 NPC 上方浮动物品实体图标。设置方式为魔杖式——运行一条命令,点击 NPC。无需手动编辑 YAML,无需查找 UUID。


| | | | | | | | | | | |

功能

  • 在你的内容包中任选物品,显示在任何 NPC 上方
  • 每个 NPC 可单独设置图标、垂直偏移、缩放和旋转
  • 九种动画类型,可在同一图标上同时叠加:
    • 上下浮动 (bob) —— 上下浮动
    • 旋转 (rotate) —— 沿 Y 轴旋转
    • 脉冲 (pulsate) —— 缩放进出
    • 摇摆 (sway) —— 左右摇摆
    • 轨道 (orbit) —— 水平绕 NPC 旋转
    • 弹跳 (ping) —— 短暂缩放弹出
    • 震颤 (ring) —— 周期性爆发式快速左右抖动
    • 顿挫 (stamp) —— 周期性向下锐利顿挫
    • 浮动 (float) —— 自然的 8 字形运动
  • 通过可选的 QuestLines 集成实现任务状态图标 —— 每位玩家根据其任务进度看到不同图标:
    • 感叹号 —— 任务可接
    • 圆点 —— 任务进行中
    • 勾号 —— 任务已完成
    • 问号 —— 未知状态
  • 每个状态可单独覆盖:
    • 为每个 NPC 的每个任务状态设置不同图标
    • 可按状态或全局应用动画
  • 开发者 API —— 实现 QuestStatusProvider 接口,可从任何插件提供任务状态
  • 所有设置保存至 mods/Icons/icons.json,重新加载后依然生效

命令

所有命令均有短别名 /i。分配命令使用魔杖工作流 —— 运行命令,然后点击 NPC。

命令描述
/icons icon [--itemid <itemId>] [--state <state>]设置 NPC 的图标。省略 --itemid 则使用手中物品。none 隐藏图标,default 重置图标。使用 --state 指定具体任务状态。
/icons offset --offset <value>设置图标在 NPC 上方的垂直位置。
/icons scale --scale <value>设置图标的缩放。1.5 表示放大 50%,以此类推。
/icons rotation --degrees <degrees>设置固定的 Y 轴旋转角度(单位:度)。
/icons animate --animation <animation> [--state <state>]添加或移除动画。使用 --state 将其应用于特定任务状态。
/icons list列出所有已配置图标的 NPC。
/icons reload在不重启服务器的情况下重新加载 icons.json。

动画语法

多个动画可以在同一图标上同时运行。

 
/icons animate --animation bob
/icons animate --animation bob:2:0.4
/icons animate --animation rotate:90
/icons animate --animation pulsate:1.5:0.3
/icons animate --animation sway:1:20
/icons animate --animation orbit:0.5:1.5
/icons animate --animation ping:0.5:0.5
/icons animate --animation none
/icons animate --animation none:rotate
 

格式:<类型>[:<速度>[:<幅度>]]

  • 速度 —— 对于 bob/pulsate/sway/orbit/ping,单位是赫兹;对于 rotate,单位是度/秒
  • 幅度 —— 根据类型不同,分别表示最大位移方块数、角度或缩放差值;rotate 类型忽略此项

配置文件

你通常无需直接编辑 mods/Icons/icons.json —— 命令会自动写入。但如果你需要手动编辑,之后运行 /icons reload 即可加载变更。

 
{
"DefaultIconItemId": "Recipe_Page",
"DefaultQuestStateIcons": {
  "available": "Icons_Exclamation",
  "inprogress": "Icons_Dots",
  "completed": "Icons_Checkmark",
  "unknown": "Icons_QuestionMark"
  }
}
 

QuestLines 集成

图标插件对 QuestLines 是软依赖。当 QuestLines 存在时,图标会自动根据每个玩家的任务进度,在对应 NPC 上方显示不同图标 —— 无需额外配置,四个状态图标已随内容包附带。

每个 NPC 内部维护四个图标(每个状态一个),插件会按玩家过滤可见性,使其只能看到正确的那个。

如果你未使用 QuestLines,仍可通过实现 QuestStatusProvider 接口并调用 NpcQuestIconsPlugin.getInstance().setQuestStatusProvider(provider) 来从你自己的插件提供任务状态数据。