Saltar al contenido principal

MythicMobs NPC

Mobs de MythicMobs y modelos de BetterModel o ModelEngine como NPC interactivos, con cinemáticas y objetivos de misión.

De pagov5.0Entidades y modelos

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​

  1. Instala MythicMobs y PacketEvents en el servidor.
  2. 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.
  3. 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.
  4. 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/.
  5. Reinicia el servidor. La consola imprime MythicmobsNPCExtension has been successfully initialized.
  6. 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:

  1. En MythicMobs, crea un mob con el nombre interno Blacksmith (con su modelo si usas uno) y recarga MythicMobs.
  2. En el panel web de TypeWriter, abre una página static y añade una MythicMob NPC Definition. Establece displayName con el nombre que se muestra sobre la cabeza y mobType en Blacksmith.
  3. Añade una MythicMob NPC Instance. Enlaza definition con la definición y establece spawnLocation (con rotación) donde se sitúa el NPC.
  4. Añade un MythicMob NPC Interact Event. Enlaza definition con la misma definición y mantén shiftType en ANY.
  5. En sus triggers, enlaza una entrada de diálogo (por ejemplo, un diálogo hablado) de una página de sequence.
  6. 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.

Elegir el modo

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.

SnippetValor por defectoFinalidad
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#40000000Color de fondo de la etiqueta de nombre y del marcador.
quest.objective.interact_mythicmob_npcInteract with <entity>Texto por defecto del objetivo de interacción.
advancedQuest.display<display> (<current>/<required>), en tonos grisesLí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_delay500Milisegundos 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_delay500Lo 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
Eventos3
Objetivos3
Hechos6
Cinemáticas4
Entidades2
Datos de entidad4
Límites de interacción3
Variables9

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.