MythicMobs NPC
Descripción general
MythicMobs NPC convierte un mob de MythicMobs en un NPC de TypeWriter. Sigues diseñando el mob, su modelo y sus habilidades en MythicMobs, y luego lo colocas en el mundo desde el panel web como una definición de NPC (qué es el NPC) y una instancia de NPC (dónde está y quién lo ve).
Un NPC puede mostrar un nombre sobre su cabeza, mostrar marcadores de misión, iniciar un diálogo cuando un jugador le hace clic derecho, ser ocultado o mostrado mediante una acción, reproducir animaciones y aparecer en cinemáticas. Se admiten modelos de BetterModel o ModelEngine.
La extensión funciona en Paper. Por defecto, cada jugador recibe su propia copia del NPC (ticking desactivado), de modo que la cinemática o la acción de ocultar de un jugador nunca afecta a los demás. Activa ticking para obtener un mob real del lado del servidor que pueda caminar.
Características
- Definición e instancia de NPC — define un NPC de MythicMob una vez y colócalo tantas veces como quieras, con una audiencia compartida, por jugador o por grupo.
- Etiqueta de nombre y marcadores de misión — un nombre flotante, y un marcador
❗,❓o💬cuando el NPC tiene un objetivo o un diálogo para el jugador. - Eventos de interacción — inicia diálogos con un clic derecho, filtrados por agacharse, además de un evento para golpes en cualquier dirección.
- Objetivos de misión — interactuar con un NPC, saquear objetos de mobs de MythicMobs o contar interacciones con un mob.
- Facts y variables — presencia, distancia, visibilidad, salud, tabla de amenaza, animaciones, nivel, poder, facción, postura y cualquier variable de MythicMobs.
- Mostrar, ocultar y animar — acciones para mostrar u ocultar un NPC y para reproducir o detener una animación de ModelEngine o BetterModel.
- Cinemáticas — cámara de enfoque en el NPC, cámara anclada a un hueso del modelo, NPC manejado por una cinta grabada y habilidades de MythicMobs lanzadas en una posición.
- Límites de cámara y de mirada — obliga al jugador a mirar a un NPC o al mob más cercano de un tipo durante una interacción.
- Posturas — posturas de reposo y de caminar de día y de noche, además de posturas de interacción, ataque y otras, mediante ModelEngine o BetterModel.
Instalación
- Instala MythicMobs y PacketEvents en el servidor.
- En TypeWriter, asegúrate de que las extensiones oficiales Entity, Basic, Quest y Road Network están instaladas. La compilación declara Quest y Road Network como dependencias y usa las extensiones Entity y Basic en tiempo de ejecución.
- Opcional: instala BetterModel o ModelEngine para modelos 3D. BetterModel se comprueba primero y ModelEngine se usa cuando BetterModel está ausente. Instala Geyser si los jugadores de Bedrock deben ver la cámara de hueso.
- Obtén la extensión en las tiendas (consulta los botones del panel de resumen de arriba) y coloca el JAR en
plugins/Typewriter/extensions/. - Reinicia el servidor. La consola imprime
MythicmobsNPCExtension has been successfully initialized. - Crea tus mobs en MythicMobs (y asocia allí su modelo). La extensión los invoca y los muestra, pero no crea ni cambia el modelo.
Primeros pasos
Coloca un herrero que inicie un diálogo cuando un jugador le haga clic derecho:
- En MythicMobs, crea un mob con el nombre interno
Blacksmith(con su modelo si usas uno) y recarga MythicMobs. - En el panel web de TypeWriter, abre una página static y añade una MythicMob NPC Definition. Establece
displayNamecon el nombre que se muestra sobre la cabeza ymobTypeenBlacksmith. - Añade una MythicMob NPC Instance. Enlaza
definitioncon la definición y establecespawnLocation(con rotación) donde se sitúa el NPC. - Añade un MythicMob NPC Interact Event. Enlaza
definitioncon la misma definición y manténshiftTypeenANY. - En sus
triggers, enlaza una entrada de diálogo (por ejemplo, un diálogo hablado) de una página de sequence. - Publica y haz clic derecho en el NPC. Sobre el NPC aparece un marcador
💬para los jugadores que pueden hablar con él.
Para convertirlo en objetivo de una misión, añade un Interact MythicMob NPC Objective con entity establecido en la definición: el marcador pasa a ser ❓ (o ❗ cuando se sigue la misión) y un rastro de camino conduce al NPC.
Deja ticking desactivado para NPC estáticos: cada jugador ve su propia copia, que es lo que necesitan las cinemáticas y la visibilidad por jugador. Actívalo solo cuando el mob deba moverse o luchar en el servidor, y establece clientSideRadius por encima de 0 para que su IA siga activada.
Cómo funciona
La definición contiene lo que es el NPC: tipo de mob, nombre, opciones de la etiqueta de nombre, modo ticking y los datos de entidad que se aplican a todas las instancias. La instancia contiene dónde está, sus propios datos de entidad, una activity opcional (por ejemplo, un camino de la red de carreteras) y un group.
Los facts, las variables, las acciones de mostrar y ocultar y las entradas de cámara se refieren a una instancia. Encuentran el mob activo del tipo de mob de la definición que está dentro de un radio de búsqueda del punto de aparición de la instancia (5 bloques por defecto, establecido por radius en el objetivo).
Configuración
Los textos y desplazamientos que no son campos de entrada son snippets de TypeWriter. Edítalos en plugins/Typewriter/snippets.
| Snippet | Valor por defecto | Finalidad |
|---|---|---|
objective.entity.indicator.tracked | <gold><b>❗ | Marcador cuando el NPC es el objetivo de la misión seguida. |
objective.entity.indicator.normal | <blue><b>❓ | Marcador cuando el NPC es el objetivo de un objetivo activo. |
objective.entity.indicator.dialogue | <white><b>💬 | Marcador cuando el NPC tiene una interacción disponible. |
entity.nameplate | <other> y luego <reset><display_name> | Disposición de la etiqueta de nombre. <other> son las líneas de los datos de entidad. |
entity.name.color | #40000000 | Color de fondo de la etiqueta de nombre y del marcador. |
quest.objective.interact_mythicmob_npc | Interact with <entity> | Texto por defecto del objetivo de interacción. |
advancedQuest.display | <display> (<current>/<required>), en tonos grises | Línea de los objetivos de conteo (loot, skill) mientras están en curso. Placeholders: <display> (el texto display del objetivo), <current>, <required>. La clave se comparte con las demás extensiones de objetivos de BTC, así que una sola edición cambia el estilo de todas. |
advancedQuest.completed | ✔ y luego el <display> tachado y (<current>/<required>) | La misma línea una vez alcanzado amount. Los mismos placeholders. |
mythicmob_npc_look_at_interaction_bound.look_back_delay | 500 | Milisegundos que el jugador puede apartar la vista antes de que el límite de mirada lo gire de vuelta. |
mythicmob_type_look_at_interaction_bound.look_back_delay | 500 | Lo mismo, para el límite de mirada por tipo de mob. |
Entradas
38 entradas, generadas a partir del código fuente de la extensión.
Acciones4
- Mythicmob NPC HideHide a MythicMob NPC
- Mythicmob NPC Play AnimationPlays a ModelEngine animation on a MythicMob NPC
- Mythicmob NPC ShowShow a MythicMob NPC
- Mythicmob NPC Stop AnimationStops a ModelEngine animation on a MythicMob NPC
Eventos3
- Mythicmob NPC HitWhen a MythicMob NPC is hit or hits a player
- Mythicmob NPC InteractWhen the player clicks on a MythicMob NPC
- On Mythic Mob LootWhen a player loots an item from a MythicMob
Objetivos3
- Interact Mythicmob NPC ObjectiveInteract with a MythicMob NPC
- Mythicmob Loot ObjectiveAn objective to loot specific items from MythicMobs mobs
- Mythicmob Skill ObjectiveMythicMob Skill Objective
Hechos6
- Mythicmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Mythicmob NPC Distance FactReturns the distance between the player and the MythicMobs NPC
- Mythicmob NPC Health Percentage FactReturns the NPC's current health percentage
- Mythicmob NPC Presence FactReturns 1 when the MythicMobs NPC is currently spawned
- Mythicmob NPC Threat Table Size FactReturns the size of the MythicMobs threat table
- Mythicmob NPC Visibility FactReturns 1 if the player can currently see the MythicMobs NPC
Cinemáticas4
- Mythicmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a MythicMob NPC's model
- Mythicmob NPC Camera CinematicFocus on a MythicMob NPC during a cinematic
- Mythicmob NPC Entity CinematicUse an animated MythicMob NPC in a cinematic
- Mythicmob NPC Skill CinematicTrigger a MythicSkill at a specific position during a cinematic
Entidades2
- Mythicmob NPC DefinitionA MythicMob that can be used as an NPC
- Mythicmob NPC InstanceAn instance of a MythicMob NPC
Datos de entidad4
- Modelengine Stance DataModelEngine stance configuration for day/night animations
- Mythicmob NPC AttachmentReplace a bone of a MythicMob NPC model with one from another model
- Mythicmob NPC Bone VisibilityControl MythicMob NPC bone visibility with criteria
- Mythicmob Speed DataChange the walking speed of a MythicMob
Límites de interacción3
- Mythicmob Look at Interaction BoundAn interaction which forces the player to look at the nearest MythicMob of a specific type
- Mythicmob NPC Camera BoundA camera bound that focuses on a MythicMob NPC with custom focus offset
- Mythicmob NPC Look at Interaction BoundAn interaction which forces the player to look at a MythicMob NPC
Variables9
- Mythicmob NPC Active Animations VariableReturns the active ModelEngine animations for the MythicMobs NPC
- Mythicmob NPC Faction VariableReturns the MythicMobs NPC faction
- Mythicmob NPC Health Percentage VariableReturns the current health percentage of the MythicMobs NPC
- Mythicmob NPC Health VariableReturns the current health of the MythicMobs NPC
- Mythicmob NPC Level VariableReturns the MythicMobs NPC level
- Mythicmob NPC Max Health VariableReturns the maximum health of the MythicMobs NPC
- Mythicmob NPC Power VariableReturns the MythicMobs NPC power
- Mythicmob NPC Stance VariableReturns the current stance applied to the MythicMobs NPC
- Mythicmob NPC VariableReads a MythicMobs variable from the active NPC
Solución de problemas
El NPC nunca aparece. La consola imprime Could not spawn MythicMob NPC '<type>' at <location> cuando mobType no es el nombre de un mob de MythicMobs o la invocación falla. mobType es el nombre interno del mob, con las mismas mayúsculas que en MythicMobs. Comprueba que MythicMobs cargó el mob y que el chunk de spawnLocation se puede cargar.
La extensión avisa de que falta MythicMobs. Al iniciar, el registro dice MythicMobs plugin not found! This extension requires MythicMobs to function properly. Instala MythicMobs y reinicia.
Los facts y variables siempre devuelven su valor por defecto. Resuelven el mob activo cerca del punto de aparición de la instancia. Si el NPC se movió más lejos que radius (5 bloques por defecto), o el tipo de mob difiere, nada coincide y el fact devuelve 0. Aumenta radius en el target.
El diálogo no empieza al hacer clic. El evento de interacción solo reacciona a un NPC colocado por una MythicMob NPC Instance, y definition debe ser la definición de la instancia. interactionType elige el clic: RIGHT_CLICK, LEFT_CLICK o ALL. Antes de la versión 4.9.1 solo se gestionaban los clics derechos, y en Paper 26.x ni siquiera estos: actualiza la extensión.
Los jugadores no comparten el NPC. Con ticking desactivado y sin group en la instancia, cada jugador recibe su propia copia, de modo que la acción de ocultar o la cinemática de un jugador no afecta a los demás. Establece un group en la instancia para compartir el NPC dentro de una party o un gremio.
Un hueso no se oculta o no se ancla. Bone Visibility Data y Attachment Data se aplican al modelo en cuanto existe y tras cada reaparición, con ticking activado y desactivado. Un nombre de hueso o de modelo que el modelo no conoce se omite y la consola lo registra: comprueba los nombres con el modelo.
La cámara de hueso no muestra nada o el jugador mantiene la vista normal. boneName debe existir en el modelo, y el mob debe estar invocado para ese jugador. Con una Entity Cinematic, usa entityCinematic para que la cámara siga exactamente a ese mob. La cámara empieza en los ojos del jugador y salta al hueso en cuanto se encuentra el modelo.
El modelo parpadea cuando el jugador o la cámara están cerca del NPC. Es el culling de ModelEngine: ModelEngine decide, desde los pies del modelo, si este está detrás del jugador (backcull) o detrás de bloques (blockedcull), y de cerca oculta el modelo por error y luego lo vuelve a mostrar. Desde la versión 4.9.1, la extensión desactiva ambos culls en cada NPC en cuanto detecta su modelo de ModelEngine, así que no hay nada que configurar. Si el parpadeo continúa, busca en la consola la advertencia ModelEngine exposes no back/blocked cull setter: significa que tu versión de ModelEngine no permite que la extensión cambie estos ajustes. En ese caso, añade cullconfig{backcull=false;blockedcull=false} @self ~onSpawn a las skills del mob de MythicMobs, después de su mecánica model, y vuelve a generar el NPC. Los modelos de BetterModel no se ven afectados.
Extensiones relacionadas
- MythicMobs — entradas de invocación, habilidades y muertes para mobs normales de MythicMobs.
- BetterModel — modelos de BetterModel como NPC, con el mismo enfoque de cinemáticas.