MythicMobs NPC
La extensión MythicMobs NPC integra las entidades de MythicMobs en el sistema de NPC de TypeWriter, permitiendo crear personajes complejos, animados e interactivos con soporte completo de modelos 3D.
Características
- Integración con MythicMobs — Usa cualquier MythicMob como NPC persistente, con soporte completo de configuración.
- Soporte de modelos 3D — Soporte nativo para BetterModel y ModelEngine con gestión automática de la visibilidad de los modelos.
- Grupos de audiencia — Muestra los NPC a grupos de jugadores específicos usando el sistema de audiencia de TypeWriter. Admite
PlayerGrouppara NPC propios de cada jugador. - Control de visibilidad — Control preciso de la visibilidad por jugador, con gestión automática de los jugadores que se conectan.
- Interacciones — Dispara misiones y diálogos al interactuar con el NPC, con tipos de clic personalizables.
- Animaciones — Controla animaciones, posturas y estados de movimiento mediante la API de ModelEngine/BetterModel.
Arquitectura
Integración de modelos
La extensión admite tanto BetterModel como ModelEngine para el renderizado de modelos 3D:
- BetterModel
- ModelEngine
BetterModel es el proveedor de modelos preferido. La extensión usa la API nativa EntityTrackerRegistry para un control óptimo de la visibilidad:
- Usa
registry.spawnIfNotSpawned(player)para mostrar los modelos - Usa
registry.remove(player)para ocultar los modelos - Soporte completo de la visibilidad de modelos por jugador
ModelEngine también es compatible a través de la API de compatibilidad:
- Usa
setForceViewing/setForceHiddenen los datos de la entidad base - Recurso alternativo automático cuando BetterModel no está disponible
Nota: El modelo debe configurarse en tu archivo YAML de MythicMob. TypeWriter gestiona automáticamente la visibilidad, pero no aplica modelos a las entidades.
Grupos de audiencia
La extensión admite el sistema de audiencia de TypeWriter para controlar la visibilidad de los NPC:
# Usando PlayerGroup, cada jugador ve su propia instancia del NPC
group: player_group_entry_id
Al usar PlayerGroup:
- Cada jugador tiene su propia entidad NPC dedicada
- Los NPC son invisibles para los jugadores fuera de su audiencia
- Gestión automática de los jugadores que se conectan o cambian de mundo
Entradas
- Definiciones de entidad — MythicMob NPC Definition: define un NPC basado en un MythicMob. MythicMob NPC Instance: coloca un NPC en el mundo.
- Acciones — Show NPC: revela el NPC al jugador. Hide NPC: oculta el NPC al jugador.
- Hechos y variables — Comprueba la salud, presencia y distancia de un NPC con los hechos. Usa las variables para acceder a los datos de nivel, poder y estado.
- Eventos y cinemáticas — NPC Interact Event: se dispara al hacer clic. NPC Cinematic: usa los NPC en escenas.
Inicio rápido
- 1. Activar acciones — Usa las entradas de acción para interactuar con la extensión: show_npc, hide_npc. Actívalas desde comandos, NPC, eventos u otras entradas. → show_npc → hide_npc
Opciones de configuración
NPC Definition
| Option | Descripción |
|---|---|
mobType | El nombre interno del MythicMob a usar |
ticking | true para el lado del servidor (entidad real), false para el lado del cliente (basado en paquetes) |
showDisplayName | Si se muestra una etiqueta de nombre sobre el NPC |
cancelInteractAnimation | Desactiva la animación de balanceo del brazo al interactuar |
NPC Instance
| Option | Descripción |
|---|---|
spawnLocation | Dónde generar el NPC (admite posiciones dinámicas) |
group | Grupo de audiencia para el control de la visibilidad |
activity | Entrada de actividad de entidad para el comportamiento del NPC |
Dependencias
| Extension | Requerido | Uso |
|---|---|---|
| QuestExtension | Requerido | Motor de misiones principal. |
| BasicExtension | Requerido | Utilidades principales de las extensiones. |
| EntityExtension | Requerido | Framework de gestión de entidades. |
| RoadNetworkExtension | Requerido | Pathfinding de NPC y red de caminos. |
| PlaceholderAPI | Opcional | Para los campos @Placeholder. |