跳到主要内容

MythicMobs NPC

MythicMobs NPC 扩展MythicMobs 实体集成到 TypeWriter 的 NPC 系统中,可创建具有完整 3D 模型支持的复杂、带动画且可交互的角色。

功能

  • MythicMobs 集成 — 将任意 MythicMob 用作持久 NPC,完整支持配置。
    • 3D 模型支持 — 原生支持 BetterModelModelEngine,并自动管理模型可见性。
    • 受众群组 — 使用 TypeWriter 的受众系统向特定玩家群组展示 NPC。支持 PlayerGroup 实现每位玩家专属的 NPC。
    • 可见性控制 — 对每位玩家进行精细的可见性控制,并自动处理加入的玩家。
    • 交互 — 在与 NPC 交互时触发任务和对话,点击类型可自定义。
    • 动画 — 通过 ModelEngine/BetterModel API 控制动画、姿态和移动状态。

架构

模型集成

此扩展支持使用 BetterModelModelEngine 渲染 3D 模型:

BetterModel 是首选的模型提供方。此扩展使用原生的 EntityTrackerRegistry API 以实现最优的可见性控制:

  • 使用 registry.spawnIfNotSpawned(player) 显示模型
  • 使用 registry.remove(player) 隐藏模型
  • 完整支持每位玩家的模型可见性

注意: 模型必须在你的 MythicMob YAML 文件中配置。TypeWriter 会自动管理可见性,但不会将模型应用到实体上。

受众群组

此扩展支持 TypeWriter 的受众系统来控制 NPC 的可见性:

# 使用 PlayerGroup 时,每位玩家看到属于自己的 NPC 实例
group: player_group_entry_id

使用 PlayerGroup 时:

  • 每位玩家拥有自己专属的 NPC 实体
  • NPC 对其受众之外的玩家不可见
  • 自动处理加入或切换世界的玩家

条目

快速开始

  • 1. 触发动作 — 使用动作条目与扩展交互:show_npchide_npc。可从命令、NPC、事件或其他条目触发它们。→ show_npc → hide_npc

配置选项

NPC Definition

Option说明
mobType要使用的 MythicMob 内部名称
tickingtrue 表示服务端(真实实体),false 表示客户端(基于数据包)
showDisplayName是否在 NPC 上方显示名牌
cancelInteractAnimation禁用交互时的挥臂动画

NPC Instance

Option说明
spawnLocationNPC 的生成位置(支持动态坐标)
group用于可见性控制的受众群组
activity用于 NPC 行为的实体活动条目

依赖

Extension是否必需用途
QuestExtension必需核心任务引擎。
BasicExtension必需核心扩展工具。
EntityExtension必需实体管理框架。
RoadNetworkExtension必需NPC 寻路与道路网络。
PlaceholderAPI可选用于 @Placeholder 字段。