Saltar al contenido principal

MythicMobs

Genera mobs de MythicMobs, lanza habilidades, crea objetivos de muerte y spawners por región desde TypeWriter.

Gratuitasv0.12Integraciones
RequiereTypeWriter0.9Quest (TypeWriter extension)MythicMobsPacketEventsopcional

Descripción general​

MythicMobs conecta el plugin MythicMobs con TypeWriter. Los mobs y las habilidades se siguen definiendo en MythicMobs; TypeWriter decide cuándo y para quién aparecen. Puedes invocar o eliminar un mob desde una secuencia, lanzar una habilidad, reaccionar cuando un jugador mata un mob o interactúa con él, contar muertes como objetivo de una misión, o dejar que una región genere mobs mientras haya jugadores cerca.

Los mobs pueden ser privados. Un mob invocado con onlyVisibleForPlayer o un visibilityGroup solo se muestra al jugador o al grupo, nadie más puede herirlo, apuntarle ni hacerle clic, y sus sonidos y partículas se ocultan a los demás jugadores. Esto es lo que hace posibles los combates contra jefes personales y los mobs de misión por jugador en un servidor compartido.

Desde la 0.12, la visibilidad también puede seguir facts de TypeWriter: con visibilityCriteria, un mob solo es visto, objetivo y herido por los jugadores que cumplen los criteria, reevaluados de forma continua. Una arena privada controlada por facts no necesita grupo.

La extensión funciona en Paper y Folia y necesita la extensión Quest de TypeWriter para el objetivo de eliminación. El repositorio de código fuente real es Typewriter-MythicMobs.

Características​

  • Invocar y eliminar — invoca un mob en una posición con un nivel, o elimina todos los mobs activos de un tipo.
  • Lanzamiento de habilidades — ejecuta una habilidad de MythicMobs como el jugador, desde una acción o desde un segmento de cinemática.
  • Eventos de mobs — inicia secuencias cuando un jugador mata a un mob, un mob mata al jugador, o el jugador hace clic derecho en un mob.
  • Objetivo de eliminación — un objetivo de misión que cuenta las muertes de MythicMobs por nombre o expresión regular, y cuenta las muertes causadas por proyectiles y mascotas domadas.
  • Spawner por región — genera mobs en una o varias cajas cuando hay jugadores cerca, con un límite, un enfriamiento y un tiempo de calentamiento. Un group opcional lo limita a los miembros de un grupo, y cada grupo tiene su propio ciclo.
  • Mobs privados — visibilidad restringida a un jugador, un grupo o los jugadores que cumplen criteria (facts), incluidos daño, selección de objetivo, interacción, sonidos y partículas.
  • Mobs de cinemática — invoca un mob durante una cinemática, oculto para todos los demás jugadores, y lanza habilidades en una línea de tiempo.
  • Fact de recuento de mobs — cuántos mobs de un tipo están activos en ese momento, para diálogos y condiciones.

Instalación​

  1. Instala MythicMobs en el servidor.
  2. Instala la extensión Quest oficial de TypeWriter.
  3. Recomendado: instala PacketEvents. Se usa para ocultar los sonidos y partículas de los mobs privados. Sin él, la extensión registra PacketEvents not loaded — sound isolation disabled y los mobs privados siguen siendo privados visualmente pero no en silencio.
  4. Coloca el JAR de la extensión MythicMobs en plugins/Typewriter/extensions/.
  5. Reinicia el servidor.

Primeros pasos​

Haz que un jefe aparezca solo para el jugador que aceptó una misión y completa un objetivo cuando muera:

  1. En MythicMobs, crea el mob, por ejemplo CryptKing.
  2. En el panel web de TypeWriter, abre una página de sequence y añade una acción Spawn Mob.
  3. Establece mobName en CryptKing, level en 1, spawnLocation en el lugar (captura la posición en el juego) y activa onlyVisibleForPlayer.
  4. Enlaza un trigger o un criterio para que la acción se ejecute cuando empiece la misión.
  5. Abre la página de la misión y añade un MythicMob Kill Objective. Enlaza la quest, un fact (un fact con caché que guarda el progreso), establece mythicMobName en CryptKing, amount en 1 y escribe el texto de display.
  6. Opcionalmente, establece onComplete con una secuencia que entregue la recompensa.
  7. Publica y prueba: los demás jugadores no pueden ver, golpear ni oír al jefe.
Reaccionar a una muerte sin misión

Usa Mob Death Event con un mobName y enlaza triggers con la secuencia que se ejecutará. Se activa cuando un jugador es quien mata al mob.

Combate visible solo para algunos jugadores​

Una arena privada: solo los jugadores que cumplen ciertos facts ven al mob, son su objetivo y pueden combatirlo.

  1. Crea un fact (por ejemplo in_arena) y establécelo para los jugadores que entran en la arena.
  2. Añade una acción Spawn Mob y rellena visibilityCriteria con ese fact. Los criteria se reevalúan cada visibilityRefreshInterval (1 segundo por defecto): un jugador que sale de la arena pierde el mob al instante, y el mob suelta su objetivo.
  3. Inicia el combate desde el trigger que prefieras.
  4. Termínalo con una acción Despawn Mob con scope en VISIBLE_TO_PLAYER (solo retira los mobs que el jugador ve), o deja que el mob se vaya solo con abandonRange (mayor que 0) y abandonDelay: se retira si ningún jugador autorizado permanece al alcance durante la espera. El editor web rellena las duraciones nuevas con 1 segundo, así que revisa abandonDelay.
  5. Opcional: pon collidable en false para quitar la colisión y los empujones. Entonces afecta a todo el mundo.

Todo el daño ligado a un mob restringido (cuerpo a cuerpo, proyectiles, skills de MythicMobs, fuego) se bloquea hacia los jugadores no autorizados, y al revés. Los proyectiles lo atraviesan.

Los skills sin daño (poción, lanzamiento...) no se pueden atribuir a un jugador. Añádeles la condición de objetivo de MythicMobs typewritervisible (alias twvisible): solo es verdadera cuando el objetivo tiene permiso para ver al lanzador.

En línea, como condición del targeter. Conserva los dos espacios después de [ y el que va antes de ], MythicMobs los necesita:

Skills:
- potion{type=SLOW;duration=100} @PlayersInRadius{r=10;conditions=[ - twvisible true ]} ~onTimer:40

No escribas ?twvisible al final de la línea: MythicMobs comprueba esas condiciones sobre el mob, no sobre los jugadores a los que apunta.

O en un metaskill. Sus propias líneas no llevan targeter: se ejecutan sobre cada objetivo que haya pasado la condición.

# Archivo de mobs
Skills:
- skill{s=ArenaBossSlow} @PlayersInRadius{r=10} ~onTimer:40

# Archivo de skills
ArenaBossSlow:
TargetConditions:
- twvisible
Skills:
- potion{type=SLOW;duration=100}

twvisible false en el targeter es lo contrario: solo los jugadores que no pueden ver al mob.

nota

MythicMobs lee sus archivos antes de que Typewriter cargue. Cuando twvisible aparece en ellos, la extensión ejecuta /mm reload una vez al iniciar el servidor, así que no tienes nada que hacer. La condición sigue funcionando tras un reload de Typewriter. Si Typewriter está detenido, deja pasar a todos los jugadores y registra un aviso pidiendo un /mm reload.

Límites. La colisión es todo o nada. Los skills sin daño no se filtran sin twvisible. Los sonidos y partículas reproducidos lejos del mob no se ocultan. Un mob cuya entrada de origen se elimina sigue oculto para todos. Tras reiniciar el servidor, un mob con abandonRange se elimina si ningún jugador autorizado se acerca durante abandonDelay.

Cómo funciona​

Configuración​

La mayoría de los ajustes son campos de las entradas. Conviene conocer dos comportamientos:

  • Aislamiento automático. En el archivo del mob de MythicMobs, establece Options.VisibilityGroup: nearby para que un mob sea visible solo para el jugador más cercano (a menos de 100 bloques) cuando aparece. Los mobs que aparecen con los motivos NATURAL, RANDOM o RANDOM_SPAWN reciben el mismo tratamiento, incluso sin la opción. Los mobs ya restringidos por una entrada de TypeWriter se dejan como están.

  • Coincidencia de mobs. Los campos mobName de los eventos son expresiones regulares comparadas con el nombre interno de MythicMobs, sin distinguir mayúsculas de minúsculas en Mob Death Event y MythicMob Interact Event. Usa .* para coincidir con cualquier mob.

  • Formato de visualización del objetivo. La línea del MythicMob Kill Objective en el rastreador de misiones no está fijada en el código. Se lee de dos snippets de TypeWriter, que se editan en plugins/Typewriter/snippets.yml: advancedQuest.display (en curso, por defecto <display> (<current>/<required>) en tonos grises) y advancedQuest.completed (cantidad alcanzada, por defecto ✔ y luego el <display> tachado y el progreso). Placeholders: <display> (el campo display del objetivo), <current> y <required>; los placeholders de PlaceholderAPI también se procesan. Las dos claves se comparten con las demás extensiones de objetivos de BTC, así que una sola edición cambia el estilo de todos los objetivos de conteo.

Entradas​

14 entradas, generadas a partir del código fuente de la extensión.

Acciones3
Eventos3
Objetivos1
Hechos4
Cinemáticas2
Definiciones1
Facts de marcador de posición

MythicMob Faction, MythicMob Level y MythicMob Stance siempre devuelven 0 en la versión actual. Están reservados para una versión futura: no construyas condiciones sobre ellos.

Solución de problemas​

No aparece nada. mobName debe ser el nombre interno de MythicMobs de un mob existente. Si el mob es desconocido, Spawn Mob no hace nada en silencio. Compáralo con el nombre del archivo del mob en MythicMobs.

Error "Skill ... not found" en el registro. Execute Skill y Skill Cinematic lanzan este error cuando skillName no es una habilidad de MythicMobs. Si el registro dice que la habilidad "is not usable at this time", está en enfriamiento o sus condiciones fallaron.

Un spawner nunca genera nada. El jugador debe estar a menos de defaultActivationRange (24 bloques por defecto, medidos hasta el centro de la región) de una región. El spawner se comprueba una vez por segundo y empieza unos cinco segundos después de iniciarse el servidor. Comprueba también criteria, que haya transcurrido warmup, que haya pasado el enfriamiento (defaultCooldown, en ticks) y que el número de mobs en el radio sea inferior a defaultMaxMobs. Establece bien el mobType: de lo contrario, el registro dice Cannot find MythicMob ....

Otros jugadores siguen viendo un mob privado. La visibilidad solo se aplica a los mobs invocados por entradas de TypeWriter, por la opción nearby o por apariciones naturales. Los demás mobs siguen siendo públicos. La acción de invocación también necesita un jugador: con visibilityGroup establecido pero el jugador en ningún grupo, el mob recurre a ser visible solo para el jugador que lo activa.

El objetivo de eliminación no cuenta. El objetivo solo cuenta mientras la quest esté activa para el jugador y el jugador (o su proyectil o mascota domada) asesta el golpe mortal. Si mobs no está vacío, se ignora mythicMobName. Comprueba que el fact es una entrada de fact con caché.

El evento de matar al jugador nunca se activa. MythicMob Kill Player Event compara mythicMobType como expresión regular, distinguiendo mayúsculas de minúsculas, con el nombre interno del mob que causó la muerte. Déjalo vacío para coincidir con cualquier MythicMob.

Extensiones relacionadas​