
NPC 对话
在你的Hytale世界中创建互动式NPC对话。按F键打开自定义多页面对话框,支持导航、持久存储、命令执行、自定义按钮文本、强制剧情推进和实体状态控制。
查看大图NPC Dialog(NPC对话系统)
支持服务器 - https://discord.gg/DRxwt8Qg2W
一个为Hytale服务器设计的强大且直观的NPC对话系统,让你能够与世界中的任何实体创建互动对话。
版本 [1.2.0] - 2026-01-17 现已发布!
描述
NPC Dialog 是一个全面的插件,使服务器管理员能够为其Hytale世界中的任何实体创建丰富的多页面对话系统。玩家可以通过按下 F 键与NPC互动,打开一个美观的自定义用户界面,显示对话内容,并支持在多页面之间导航。
非常适合任务系统、剧情驱动型服务器、互动教程,或者任何你希望实体与玩家进行有意义的对话的场景。
额外用途
NPC Dialog 不仅限于故事或任务NPC——它还可以用作服务器的通用信息展示系统:
- 帮助与教程NPC——以互动、易读的界面展示 /help 类信息
- 服务器规则NPC——让玩家逐页阅读服务器规则,而不是在聊天中刷屏
- 指南与提示——解释服务器机制、等级或自定义功能
- 新玩家引导——为新玩家创建分步介绍
- 信息中心NPC——用于常见问题解答、指令或公告的集中NPC
功能
核心功能
- 交互式NPC系统——将对话链接到世界中的任何实体
- 冻结状态(实体无法移动)
- 非敌对状态(实体无法攻击)
- 无敌状态(实体无法受到伤害)
- 待机动画选择,带有可滚动的动画列表,显示每个实体模型的所有可用动画
- 自定义互动提示文本(例如:"按下 F 打开大酒馆宝箱")
- 多页面对话——创建具有多个页面的分支对话
- 自定义按钮——玩家对话界面中的两个完全可自定义按钮(自定义按钮 1 和自定义按钮 2),位于导航按钮上方
- 对话文本格式化——在NPC名称、对话标题和对话内容中使用标记:
{b}、{i}、{m}、{#RRGGBB}或{#RGB},以及{/}来结束格式化。示例:Hello {b}粗体{/} 和 {#ff0000}红色{/} 文本。 - 玩家互动——玩家按下 F 键与链接实体互动
- 持久化存储——所有NPC数据以JSON格式保存,并在服务器重启后保留
- 自动恢复——服务器重启或实体加载时自动恢复互动
- 权限支持——使用管理指令需要 npcdialog.admin 权限(与 LuckPerms 兼容)
- 数据迁移——插件数据文件夹从 _NPC Dialog 更改为 Hyronix_NPC Dialog,首次启动时自动迁移
用户界面
管理面板 - 美观、直观的图形界面,用于创建和管理NPC及对话页面
- 使用自定义名称和标题创建新的NPC
- 编辑现有NPC及其属性
- 为每个NPC添加多个对话页面
- 通过在世界中选择实体来将NPC链接到实体
- 删除NPC并自动移除其互动
- 页面选择下拉菜单,便于编辑
- 为每个页面自定义"下一页"按钮文本
- 为每个页面自定义"上一页"按钮文本
- 为每个页面自定义"关闭"按钮文本
- 为"下一页"和"关闭"按钮设置指令执行
- 切换"禁止关闭直至最后一页"选项
- 为每个页面启用/禁用"上一页"按钮的可见性
- 为每个页面启用/禁用自定义按钮 1 和自定义按钮 2
- 配置自定义按钮 1 和自定义按钮 2 的文本和指令
- 直接从管理界面切换实体状态(冻结、非敌对、无敌、待机动画)
- 待机动画选择 - 可滚动动画列表,显示所选实体模型的所有可用动画,并高亮显示选中项
- 为每个NPC设置自定义互动提示文本
- 改进的布局和滚动行为,提升可用性
玩家对话界面 - 清晰、易读的界面
- 居中的NPC名称和标题
- 可滚动的多行对话内容
- 两个可自定义按钮(自定义按钮 1 和自定义按钮 2),位于导航按钮上方
- 导航按钮(上一页/下一页),用于多页面对话
- 可自定义按钮文本(上一页、下一页、关闭、自定义按钮 1、自定义按钮 2)
- 关闭按钮(可隐藏,直到最后一页才显示)
高级功能
- 指令执行系统 - 当玩家与对话按钮互动时执行服务器指令
- 下一页按钮指令:当玩家点击"下一页"按钮时运行指令(例如:/help)
- 关闭按钮指令:当玩家关闭对话时运行指令(例如:/spawn、/warp spawn)
- 自定义按钮 1 指令:当玩家点击自定义按钮 1 时执行指令
- 自定义按钮 2 指令:当玩家点击自定义按钮 2 时执行指令
- 指令选择器:支持指令中的 @p 和 @s 选择器
- @p = 最近的玩家(距离指令执行点最近的玩家)- 自动替换为点击按钮的玩家
- @s = 自身(执行指令的实体)- 自动替换为点击按钮的玩家
- 两个选择器在此上下文中均被替换为玩家名称,因此功能相同
- 示例:"give @p Plant_Fruit_Apple --quantity=1" 将物品给予点击按钮的玩家
- 管理指令:如 /give、/tp、/effect、/summon 等指令自动以控制台身份执行,确保权限正确
- 玩家指令:普通指令以点击按钮的玩家身份执行
- 配置文件:
- playerPermissionCommands.json - 将玩家执行的指令映射到权限节点。此处列出的指令在执行时会通过 LuckPerms 临时授予权限,使玩家能通过NPC互动使用受限指令
- consoleCommands.json - 定义应以控制台身份执行的指令(绕过玩家权限)。此列表中的指令通过NPC按钮触发时,将以完整控制台权限运行,适用于 /give、/tp 等管理指令
- 自定义按钮文本 - 将"上一页"、"下一页"、"关闭"、"自定义按钮 1"和"自定义按钮 2"的按钮文本更改为你想要的任何内容(例如:"继续"、"接受任务"、"前进")
- 自定义互动提示 - 设置当玩家看向链接实体时显示的自定义互动提示文本(例如:"按下 F 打开大酒馆宝箱")
- 禁止关闭直至最后一页 - 强制玩家阅读所有对话页面后才能关闭对话(非常适合剧情驱动型服务器和教程)
- 启用/禁用上一页按钮 - 控制"上一页"按钮是否在每个页面显示(适用于线性剧情推进,防止玩家回退)
- 启用/禁用自定义按钮 - 为每个页面切换自定义按钮 1 和自定义按钮 2 的可见性
- 实体状态管理 - 直接从管理界面切换实体状态(冻结、非敌对、无敌、待机动画)
- 待机动画选择 - 从可滚动列表中为每个实体模型选择特定的待机动画,显示所有可用动画
- 多行内容 - 支持长对话文本并自动滚动
- 实体链接 - 使用游戏内选择将对话链接到任何现有实体
- 跨世界支持 - 在你的服务器所有世界中工作
- 智能互动管理 - 自动添加/移除互动组件
- 安全删除 - 删除NPC时正确清理互动
- 错误预防 - 防止与已删除NPC互动时发生崩溃
指令
| /npcdialog | 打开管理NPC和对话的管理界面 | 需要 npcdialog.admin 权限 |
使用指南
创建NPC对话
- 打开管理面板:在游戏中运行 /npcdialog(需要 npcdialog.admin 权限)
- 创建NPC:
- 在"NPC名称"字段中输入NPC名称
- 在"NPC标题"字段中输入标题(可选)
- 设置自定义互动提示文本(可选,例如:"按下 F 打开大酒馆宝箱")
- 点击"创建NPC"
- 添加对话内容:
- 在"对话内容"字段中输入对话文本(支持多行)
- 可选:自定义"下一页按钮文本"(默认为"Next")
- 可选:自定义"上一页按钮文本"(默认为"Previous")
- 可选:自定义"关闭按钮文本"(默认为"Close")
- 可选:添加"下一页按钮指令",当玩家点击"下一页"时执行
- 可以在指令中使用 @p 或 @s 选择器(例如:"give @p Plant_Fruit_Apple --quantity=1")
- @p 和 @s 会自动替换为点击按钮的玩家名称
- 可选:添加"关闭按钮指令",当玩家关闭对话时执行
- 可以在指令中使用 @p 或 @s 选择器(例如:"tp @p 100 64 200")
- 管理指令(give、tp、effect 等)自动以控制台身份执行,确保权限正确
- 启用/禁用自定义按钮 1 和自定义按钮 2
- 配置自定义按钮 1 和自定义按钮 2 的文本和指令
- 切换"禁止关闭直至最后一页",强制玩家阅读所有页面
- 切换"在对话中显示上一页按钮",启用/禁用"上一页"按钮
- 点击"保存NPC"保存第一页
- 配置实体状态(可选):
- 切换"冻结"以防止实体移动
- 切换"非敌对"以防止实体攻击
- 切换"无敌"以防止实体受到伤害
- 切换"待机动画"以启用待机动画
- 从可滚动的动画列表中选择特定的待机动画(显示所选实体模型的所有可用动画)
- 链接到实体:
- 在实体列表(左侧面板)中选择要链接的实体
- 该实体将自动链接到所选NPC
- 添加更多页面(可选):
- 从"选择页面"下拉菜单中选择要编辑的页面
- 使用"添加页面"按钮添加新页面
- 在玩家界面中使用"上一页/下一页"按钮在页面间导航
玩家互动
- 玩家只需看向链接实体并按下 F 键即可互动
- 自定义互动提示文本(如果设置)会在看向实体时显示
- 对话界面打开,显示NPC的名称、标题和对话内容
- 玩家可以使用位于导航按钮上方的自定义按钮 1 和自定义按钮 2(如果启用)
- 玩家可以使用"上一页/下一页"按钮在页面间导航(按钮文本可自定义)
- 如果启用了"禁止关闭直至最后一页",玩家必须到达最后一页才能关闭对话
- 为"下一页/关闭/自定义"按钮配置的指令会在点击时自动执行
示例用例
任务发布NPC
- 创建一个多页面的任务介绍
- 使用"禁止关闭直至最后一页"确保玩家阅读完整任务
- 在最后一页将"下一页按钮指令"设置为 "quest accept"(不要使用"/")
- 或者使用 "give @p Quest_Item_1 --quantity=1" 在接受任务时给予任务物品
- 将"下一页"按钮文本自定义为"接受任务"
- 使用自定义按钮 1 作为"查看奖励",配置指令显示奖励信息
- 设置自定义互动提示:"按下 F 接受任务"
教程NPC
- 创建分步教程页面
- 禁用"上一页"按钮以强制线性推进
- 使用指令执行在特定步骤传送玩家或给予物品
- 示例:"tp @p 100 64 200" 传送点击按钮的玩家
- 示例:"give @p Tutorial_Book --quantity=1" 给予玩家物品
- 使用自定义按钮 1 作为"跳过教程"选项
- 禁止关闭直到教程完成
- 启用冻结状态使教程NPC保持原地
- 从动画列表中选择特定的待机动画
信息NPC
- 创建常见问题解答或服务器规则页面
- 允许玩家使用"上一页/下一页"按钮自由导航
- 使用自定义按钮 1 作为"打开商店"或自定义按钮 2 作为"传送至出生点"
- 使用"关闭按钮指令"在完成后将玩家传送回出生点
- 示例:"tp @p 0 64 0" 传送关闭对话的玩家
- 设置自定义互动提示:"按下 F 查看服务器规则"
配置文件
插件在插件数据文件夹中创建两个配置文件,用于高级指令管理:
playerPermissionCommands.json - 将玩家执行的指令映射到LuckPerms权限节点。当此处列出一个指令时,插件会在执行时通过LuckPerms临时授予玩家指定的权限。这使玩家可以通过NPC互动使用受限指令,而无需永久权限。
示例配置: { "playerPermissionCommands": { "warps": "warp.list", "spawn": "spawn.use" } }
consoleCommands.json - 定义应以控制台身份执行的指令(而不是以玩家身份)。此列表中的指令将以完整控制台权限运行,绕过玩家权限检查。这对于通过NPC按钮触发时应起作用的管理指令非常有用。
示例配置: { "consoleCommands": [ "give", "tp", "teleport", "kill", "gamemode" ] }
分发声明: 未经 明确且可见地标明 Hyronix Studios 和模组名称,不得重新分发此模组或将其与第三方设置捆绑。否则,不允许重新分发。
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。