MythicMobs NPC
MythicMobs NPC 扩展将 MythicMobs 实体集成到 TypeWriter 的 NPC 系统中,可创建具有完整 3D 模型支持的复杂、带动画且可交互的角色。
功能
- MythicMobs 集成 — 将任意 MythicMob 用作持久 NPC,完整支持配置。
- 3D 模型支持 — 原生支持 BetterModel 和 ModelEngine,并自动管理模型可见性。
- 受众群组 — 使用 TypeWriter 的受众系统向特定玩家群组展示 NPC。支持
PlayerGroup实现每位玩家专属的 NPC。 - 可见性控制 — 对每位玩家进行精细的可见性控制,并自动处理加入的玩家。
- 交互 — 在与 NPC 交互时触发任务和对话,点击类型可自定义。
- 动画 — 通过 ModelEngine/BetterModel API 控制动画、姿态和移动状态。
架构
模型集成
此扩展支持使用 BetterModel 和 ModelEngine 渲染 3D 模型:
- BetterModel
- ModelEngine
BetterModel 是首选的模型提供方。此扩展使用原生的 EntityTrackerRegistry API 以实现最优的可见性控制:
- 使用
registry.spawnIfNotSpawned(player)显示模型 - 使用
registry.remove(player)隐藏模型 - 完整支持每位玩家的模型可见性
也可通过兼容 API 支持 ModelEngine:
- 对基础实体数据使用
setForceViewing/setForceHidden - 当 BetterModel 不可用时自动回退
注意: 模型必须在你的 MythicMob YAML 文件中配置。TypeWriter 会自动管理可见性,但不会将模型应用到实体上。
受众群组
此扩展支持 TypeWriter 的受众系统来控制 NPC 的可见性:
# 使用 PlayerGroup 时,每位玩家看到属于自己的 NPC 实例
group: player_group_entry_id
使用 PlayerGroup 时:
- 每位玩家拥有自己专属的 NPC 实体
- NPC 对其受众之外的玩家不可见
- 自动处理加入或切换世界的玩家
条目
- 实体定义 — MythicMob NPC Definition:定义基于 MythicMob 的 NPC。MythicMob NPC Instance:将 NPC 放置到世界中。
- 动作 — Show NPC:向玩家显示 NPC。Hide NPC:对玩家隐藏 NPC。
- 事实与变量 — 使用事实检查 NPC 的生命值、存在与距离。使用变量访问等级、力量和状态数据。
- 事件与过场动画 — NPC Interact Event:点击时触发。NPC Cinematic:在场景中使用 NPC。
快速开始
- 1. 触发动作 — 使用动作条目与扩展交互:show_npc、hide_npc。可从命令、NPC、事件或其他条目触发它们。→ show_npc → hide_npc
配置选项
NPC Definition
| Option | 说明 |
|---|---|
mobType | 要使用的 MythicMob 内部名称 |
ticking | true 表示服务端(真实实体),false 表示客户端(基于数据包) |
showDisplayName | 是否在 NPC 上方显示名牌 |
cancelInteractAnimation | 禁用交互时的挥臂动画 |
NPC Instance
| Option | 说明 |
|---|---|
spawnLocation | NPC 的生成位置(支持动态坐标) |
group | 用于可见性控制的受众群组 |
activity | 用于 NPC 行为的实体活动条目 |
依赖
| Extension | 是否必需 | 用途 |
|---|---|---|
| QuestExtension | 必需 | 核心任务引擎。 |
| BasicExtension | 必需 | 核心扩展工具。 |
| EntityExtension | 必需 | 实体管理框架。 |
| RoadNetworkExtension | 必需 | NPC 寻路与道路网络。 |
| PlaceholderAPI | 可选 | 用于 @Placeholder 字段。 |