MythicMobs
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
groupopcional 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
- Instala MythicMobs en el servidor.
- Instala la extensión
Questoficial de TypeWriter. - 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 disabledy los mobs privados siguen siendo privados visualmente pero no en silencio. - Coloca el JAR de la extensión MythicMobs en
plugins/Typewriter/extensions/. - 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:
- En MythicMobs, crea el mob, por ejemplo
CryptKing. - En el panel web de TypeWriter, abre una página de sequence y añade una acción Spawn Mob.
- Establece
mobNameenCryptKing,levelen1,spawnLocationen el lugar (captura la posición en el juego) y activaonlyVisibleForPlayer. - Enlaza un trigger o un criterio para que la acción se ejecute cuando empiece la misión.
- Abre la página de la misión y añade un MythicMob Kill Objective. Enlaza la
quest, unfact(un fact con caché que guarda el progreso), establecemythicMobNameenCryptKing,amounten1y escribe el texto dedisplay. - Opcionalmente, establece
onCompletecon una secuencia que entregue la recompensa. - Publica y prueba: los demás jugadores no pueden ver, golpear ni oír al jefe.
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.
- Crea un fact (por ejemplo
in_arena) y establécelo para los jugadores que entran en la arena. - Añade una acción Spawn Mob y rellena
visibilityCriteriacon ese fact. Los criteria se reevalúan cadavisibilityRefreshInterval(1 segundo por defecto): un jugador que sale de la arena pierde el mob al instante, y el mob suelta su objetivo. - Inicia el combate desde el trigger que prefieras.
- Termínalo con una acción Despawn Mob con
scopeenVISIBLE_TO_PLAYER(solo retira los mobs que el jugador ve), o deja que el mob se vaya solo conabandonRange(mayor que 0) yabandonDelay: 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 revisaabandonDelay. - Opcional: pon
collidableenfalsepara 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.
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: nearbypara 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 motivosNATURAL,RANDOMoRANDOM_SPAWNreciben 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
mobNamede 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) yadvancedQuest.completed(cantidad alcanzada, por defecto✔y luego el<display>tachado y el progreso). Placeholders:<display>(el campodisplaydel 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
- Despawn Mythicmobs MobDespawn a mob from MythicMobs
- Execute Mythicmob SkillExecutes a MythicMobs skill
- Spawn Mythicmobs MobSpawn a mob from MythicMobs
Eventos3
- Mythicmobs Interact EventMythicMob Interact Event
- Mythicmobs Kill Player EventMythicMob Kill Player Event
- On Mythic Mob DieWhen a player kill a MythicMobs mob.
Objetivos1
- Mythicmob Kill ObjectiveAn objective to kill MythicMobs mobs
Hechos4
- Mythic Mob Count FactCount the number of active Mythic Mobs of the specified type
- Mythicmob FactionMythicMob Faction
- Mythicmob LevelMythicMob Level
- Mythicmob StanceMythicMob Stance
Cinemáticas2
- Mythicmob CinematicSpawn a MythicMob during a cinematic
- Mythicskill CinematicTrigger a MythicSkill during a cinematic
Definiciones1
- Mythic SpawnerMythicMobs Spawner with Corner System
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
- MythicMobs NPC — usa mobs de MythicMobs como NPC interactivos.