Crear jefes de mundo
A los Jefes de Mundo (World Bosses) también se les llama a veces Jefes Regionales (Regional Bosses).
¿Qué son?
Los Jefes de Mundo son Jefes Personalizados configurados para aparecer en una ubicación específica con un retraso específico. Estos también son los jefes que se usan en las Mazmorras. Aunque en esta sección hablaremos específicamente de cómo crear Jefes de Mundo para usarlos fuera de las mazmorras.
¿Para qué sirven?
Los Jefes de Mundo permiten a los jugadores enfrentarse a un desafío fijo sabiendo que el botín será gratificante.
¿Qué necesito para crear un jefe de mundo?
- Una ubicación. Se recomienda una sala de jefe, con un radio de aproximadamente 15 bloques (30 bloques de ancho) debido al rango de aggro de Minecraft. Además, asegúrate de que el terreno esté protegido mediante una región de WorldGuard (para que los jugadores no puedan construir trampas) y de que el terreno no pueda explotarse para el combate.
- Un tiempo de reaparición. El temporizador de reaparición es esencial. No recomiendo poner un temporizador de reaparición de menos de 30 minutos, o de lo contrario la reaparición del jefe será menos un acontecimiento. 1 hora es un tiempo bastante bueno, pero también puedes querer que el jefe reaparezca una vez al día o incluso una vez a la semana.
- Un tiempo de escape. Cuanto más larga sea la reaparición, más largo debería ser el tiempo de escape. Ten en cuenta también que el tiempo de escape debe ser lo bastante largo como para que la gente pueda desafiar cómodamente al jefe. Los temporizadores de escape son importantes si no quieres permitir que los jugadores se lancen en kamikaze contra el jefe hasta matarlo. Esto no es obligatorio, ni siquiera recomendado si quieres hacer jefes masivos con reaparición de una semana de duración.
- Un Jefe Personalizado. Los Jefes de Mundo son en realidad solo Jefes Personalizados con reglas de aparición personalizadas. Asegúrate de seleccionar poderes con una buena compatibilidad de combate para tamaño de raid.
- Botín interesante. El gran atractivo de los Jefes de Mundo, dejando a un lado el desafío, es el botín. Asegúrate de que los jugadores puedan obtener de él algo que simplemente no puedan conseguir en ningún otro sitio.
- Una temática. Un buen jefe Regional debería tener una temática, con una ubicación temática y un botín temático.
Opciones de configuración de jefes de mundo
Estos ajustes se añaden a los archivos de configuración normales de Jefe Personalizado. Aquí se puede encontrar una extensa página de la wiki sobre ellos.
isRegionalBoss
Establece si el jefe es un jefe regional. Jefes regionales es otro nombre para los Jefes de Mundo, así que querrás establecer esto en true.
| Key | Values | Default |
|---|---|---|
isRegionalBoss | Boolean | false |
Ejemplo
isRegionalBoss: true
spawnLocations
Las ubicaciones de aparición deben establecerse desde el juego usando el comando /em place boss <filename.yml>.
Ejecútalo como jugador con elitemobs.place.admin, después de cargar una configuración con isRegionalBoss: true. Cada uso añade otra ubicación del mismo jefe. El comando centra la posición en un bloque y busca hacia arriba un lugar transitable. Comprueba que haya espacio suficiente para el jefe.
Aunque es posible añadir ubicaciones manualmente desde la configuración, no recomiendo intentar hacerlo, ya que es demasiado fácil equivocarse.
| Key | Values | Default |
|---|---|---|
spawnLocations | String List | none |
Ejemplo
Ubicaciones en archivos de configuración (para usuarios avanzados) Los archivos de configuración del Jefe Regional almacenan todas las instancias de ese Jefe Regional en un solo archivo, guardando múltiples ubicaciones de aparición así como temporizadores de reaparición.
En términos prácticos, eso significa que esta entrada:
spawnLocations:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
- elitemobs_sewer_maze,-135.02262355317436,168.2,-153.28849346821508,-98.53906,60.750263:1609026066482
- elitemobs_sewer_maze,-70.43846307626053,168.2,-174.13499832314378,-271.24023,64.19999:1610710886530
- elitemobs_sewer_maze,-130.39762674971664,168.2,-171.67396911490718,-47.532227,51.900173:1609026066482
- elitemobs_sewer_maze,-117.12782160766056,162.2,-166.40989416757444,-71.37402,-1.4997427:1610710974882
- elitemobs_sewer_maze,-105.13138759611667,168.2,-169.85898023126538,-124.34766,41.24988:1610710945331
- elitemobs_sewer_maze,-106.21847515732084,169.2,-152.3609257554766,-170.86523,21.450315:1610537606222
contiene 7 Jefes Regionales diferentes, en ubicaciones diferentes y con temporizadores de reaparición diferentes.
Desglosemos los detalles, echando un vistazo al primer Jefe Regional:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
El formato es world,x,y,z,yaw,pitch:unixTimeStamp. Este jefe aparece en elitemobs_sewer_maze, con x = -70.17178578884845, y = 168.2, z = -173.17112099568718, yaw = -271.24023 y pitch = 64.19999.
La marca de tiempo guarda el momento de reaparición en milisegundos desde el inicio de la época Unix. Así se conserva tras reinicios. Usa un conversor que acepte milisegundos para consultarla.
Para quitar un plazo guardado, detén el servidor antes de editar y elimina el sufijo :unixTimeStamp, incluidos los dos puntos. La entrada queda como world,x,y,z,yaw,pitch. El plugin guarda periódicamente las ubicaciones y puede sobrescribir cambios manuales mientras está en ejecución. Sin plazo, el jefe se restaura sin anuncio de aparición cuando su mundo y chunk permiten generarlo.
spawnCooldown
Establece el tiempo desde la muerte o el escape por tiempo hasta el siguiente intento de aparición, en minutos. 0 programa un intento inmediato y un valor negativo desactiva la reaparición programada. El mundo y el chunk deben estar disponibles para que aparezca la entidad. Los jefes con patrulla también necesitan una posición donde se actualicen entidades.
Nota: ¡se recomiendan reapariciones más largas para jefes grandes!.
| Key | Values | Default |
|---|---|---|
spawnCooldown | Integer | 0 |
Ejemplo
spawnCooldown: 20
timeout
Establece el tiempo de escape desde la aparición, en minutos, no desde el inicio del combate. Los valores inferiores a 1 lo desactivan. Restaurar un jefe regional tras cargar su chunk o mundo, o reiniciar el servidor, inicia de nuevo el plazo completo. No es una fecha límite persistente. Los cambios de fase conservan el temporizador del encuentro.
Nota: Esto debería ser lo bastante largo como para que los jugadores completen cómodamente la pelea.
| Key | Values | Default |
|---|---|---|
timeout | Integer | 0 |
Ejemplo
timeout: 60
Hace que el jefe escape después de 60 minutos si no es derrotado.
leashRadius
Establece el límite de retorno alrededor de la ubicación colocada. Con navegación nativa, las criaturas compatibles inician un retorno suave a la mitad del radio y el retorno obligatorio usa el radio completo. Si no llegan al destino, pueden ser teletransportadas. Los Ender Dragons no usan estos objetivos nativos. Sin navegación nativa, una comprobación cada 3 segundos devuelve a los jefes que superan el radio completo; esta alternativa solo funciona con radios de al menos 1. Cuando termina un retorno nativo por correa, el jefe recupera toda su salud solo si regenerateCustomBossHealthOnCombatEnd está activado en MobCombatSettings.yml (por defecto true).
Nota: intenta evitar crear áreas de combate que requieran correas más cortas de 20 bloques, ya que empeorará la pelea.
| Key | Values | Default |
|---|---|---|
leashRadius | Double | 0 (desactivado) |
Ejemplo
leashRadius: 30
escapeMessage
Establece el mensaje para los jugadores del mundo del jefe cuando escapa por tiempo. Requiere un mensaje no vacío y announcementPriority de al menos 1. Con prioridad 3 o superior también se envía mediante la integración de Discord configurada. El escape elimina al jefe e inicia su plazo de reaparición, salvo que removeAfterDeath: true elimine permanentemente esa ubicación.
| Key | Values | Default |
|---|---|---|
escapeMessage | String | none |
Ejemplo
escapeMessage: "&cThe World Boss has escaped!"
announcementPriority
Controla los anuncios y la posibilidad de seguimiento. Debes configurar los mensajes. El seguimiento también requiere showCustomBossLocation en MobCombatSettings.yml; locationMessage es opcional.
| Nivel | Comportamiento |
|---|---|
0 | Sin anuncios de aparición/escape ni seguimiento; los mensajes de muerte configurados pueden llegar a los atacantes |
1 | Mensajes de aparición/muerte/escape configurados y seguimiento mediante /em si está activado |
2 | Igual que el nivel 1 |
3 | Nivel 1 más notificaciones de Discord si están configuradas |
El anuncio de aparición respeta announcementBroadcastWorldOnly en events.yml. Los mensajes de muerte con prioridad positiva llegan a todo el servidor y requieren doCustomEliteMobsDeathMessages en MobCombatSettings.yml. El escape se anuncia solo en el mundo del jefe. Los jefes restaurados pueden rastrearse sin repetir su anuncio de aparición. Establece la prioridad explícitamente: añadir un mensaje no cambia automáticamente el valor predeterminado 0.
| Key | Values | Default |
|---|---|---|
announcementPriority | Integer | 0 |
Ejemplo
announcementPriority: 3
Hace que el jefe se anuncie en el chat y en Discord, y permite que los jugadores lo rastreen.
isPersistent
Conserva al jefe para restaurarlo después de descargar su chunk. La entidad se elimina mientras está descargado y se restaura al cargar el chunk correspondiente. Esto no mantiene el chunk cargado ni al jefe combatiendo.
Los jefes regionales colocados ya activan la persistencia mediante su propio ciclo de vida, independientemente de este ajuste de los jefes personalizados normales.
Nota: Demasiados jefes persistentes (cientos) pueden causar problemas de rendimiento.
| Key | Values | Default |
|---|---|---|
isPersistent | Boolean | false |
Ejemplo
isPersistent: true
removeAfterDeath
Determina si el Jefe de Mundo se elimina permanentemente después de ser derrotado. Útil para jefes de evento único o encuentros especiales que no deberían reaparecer.
Con false, el valor predeterminado, la muerte o el escape por tiempo programa otra aparición después de spawnCooldown, salvo que este sea negativo.
Con true, tanto la muerte como el escape por tiempo eliminan permanentemente al jefe colocado de la lista de ubicaciones.
| Key | Values | Default |
|---|---|---|
removeAfterDeath | Boolean | false |
Ejemplo
removeAfterDeath: true
Transitive Blocks
Los bloques transitivos se configuran mediante onSpawnBlockStates y onRemoveBlockStates. Estas opciones guardan los cambios de bloques para los estados ON_SPAWN y ON_REMOVE descritos más abajo.
¡Así es como puedes hacer que los jefes abran o cierren puertas / áreas o incluso modifiquen una arena durante el combate si lo usas con jefes de fases!
| Key | Values | Default |
|---|---|---|
onSpawnBlockStates | Ver Explicación Detallada | none |
| Key | Values | Default |
|---|---|---|
onRemoveBlockStates | Ver Explicación Detallada | none |
Explicación Detallada
Todos los bloques son relativos a la ubicación de aparición. Asegúrate de tener tu ubicación de aparición final antes de empezar a establecer cualquier bloque.
El editor requiere un jugador con elitemobs.transitiveblocks. Coloca una sola copia del jefe regional al registrar bloques; el editor rechaza varias ubicaciones de la misma configuración. Los archivos de fases pueden usar su jefe regional principal. Se guardan datos de bloques, sin inventarios ni otros contenidos de entidades de bloque, y no se rotan según el yaw del jefe.
Si ya creaste un área grande de Transitive Block y ahora necesitas mover al jefe, pero no quieres rehacer los Transitive Blocks. Entonces puedes usar la acción de EliteScript Teleport para mover al jefe a la ubicación correcta después de que aparezca. Ten en cuenta que tendrás que ajustar tu correa en consecuencia.
Debido a la complejidad de establecer bloques, no se recomienda hacerlo manualmente. Deberías usar los siguientes comandos para hacerlo:
- /em transitiveBlocks register
<regional_boss_file.yml><ON_SPAWN/ON_REMOVE> - /em transitiveBlocks edit
<regional_boss_file.yml><ON_SPAWN/ON_REMOVE> - /em transitiveBlocks registerArea
<regional_boss_file.yml><ON_SPAWN/ON_REMOVE> - /em transitiveBlocks editArea
<regional_boss_file.yml><ON_SPAWN/ON_REMOVE> - /em transitiveBlocks cancel
Desglosemos esto.
/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Ejecuta el comando una vez para iniciar una selección nueva de ON_SPAWN o ON_REMOVE y otra vez para guardarla. Un registro nuevo sustituye la lista guardada de ese estado. Termina o cancela la selección antes de iniciar otro archivo o estado; otro comando válido de registro o edición confirma la sesión activa.
ON_SPAWN aplica los bloques guardados cuando el jefe regional aparece o reaparece. ON_REMOVE se aplica al morir o usar el comando de matar, y al avanzar de fase antes de sustituir la configuración de bloques por la siguiente. El escape por tiempo, el reinicio de fase al recuperar toda la salud, la recarga y el apagado no aplican el estado de derrota.
Durante el registro, haz clic derecho para guardar el estado actual de un bloque o clic izquierdo para guardar aire en esa posición. Los clics se cancelan, por lo que seleccionan el estado sin colocar ni romper el bloque. Cada posición se guarda una sola vez: hacer clic con el otro botón en una posición guardada la quita de la selección. Los clics fuera del mundo del jefe se rechazan con un mensaje. Ejecuta otra vez el comando para guardar.
/em transitiveBlocks edit <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Si quieres modificar bloques ya establecidos, puedes usar este comando. Funciona de una forma muy similar a /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>.
/em transitiveBlocks registerArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Igual que /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>, esto te permite registrar bloques, pero permite seleccionarlos obteniendo dos esquinas diametralmente opuestas (igual que la selección de región de worldedit / worldguard) en lugar de seleccionar bloques individualmente.
Marca una esquina con clic izquierdo y la opuesta con clic derecho, y vuelve a ejecutar el comando para guardar el área. Ambas esquinas deben estar en el mundo del jefe, y debes estar en ese mundo al guardar. De lo contrario, EliteMobs rechaza el guardado con un mensaje y mantiene tu selección activa. Los bloques del área sustituyen a cualquier bloque ya seleccionado en la misma posición.
defaultTransitiveBlockLimiter en config.yml tiene un valor predeterminado de 500, pero actualmente solo muestra una advertencia y permite guardar selecciones mayores. Mantén las áreas pequeñas. Aplicar los estados carga sus chunks y cambia todos los bloques en un solo tick, lo que puede causar lag.
/em transitiveBlocks editArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Carga los estados existentes y añade los estados actuales de los bloques del área seleccionada. Usa las mismas esquinas y advertencia de tamaño que registerArea.
/em transitiveBlocks cancel
Descarta la selección sin guardar. No deshace construcciones realizadas en el mundo ni cambios ya guardados en la configuración del jefe.
Consejos para diseñar combates con grandes jefes regionales
-
Piensa de verdad en cómo se complementan entre sí los poderes de tu Jefe Personalizado. No quieres que tu jefe pase la mayor parte de su tiempo parado porque está lanzando algo, ya que eso puede hacer la pelea realmente fácil. Tampoco quieres que el jefe tenga todos sus ataques a distancia y ningún poder cuerpo a cuerpo, o lo contrario, a menos que estés diseñando algo muy específico. Las pruebas de juego son importantes.
-
Elige la salud teniendo en cuenta el límite. La salud se limita al valor activo
settings.attribute.maxHealth.maxdel servidor, normalmente 2048. ConhealthMultiplier: 10.0, se alcanza en el nivel 33. Subir más el nivel cambia las fórmulas de combate sin añadir salud. Consulta healthMultiplier antes de combinar un multiplicador grande con unlevelalto. -
Daño - no demasiado. Los EliteMobs ya son extremadamente letales por defecto, y los poderes tienden a ser exponencialmente más letales. En lugar de subir el daño hasta el techo, considera usar poderes para que el jefe golpee más fuerte.
-
Exploits, por todas partes. Asegúrate especialmente de que el terreno no sea explotable. Pon al jefe en una sala cerrada para evitar que la gente intente dispararle desde lejos. El poder de invulnerabilidad a flechas es probablemente extremadamente importante para muchos Jefes de Mundo, ya que los mobs de Minecraft no pueden lidiar con que les disparen desde chunks de distancia, así que si quieres permitir los ataques con arco asegúrate de que los arcos no puedan ser explotados.
-
Conoce el plugin. Hay muchos pequeños trucos para derrotar a los EliteMobs, como que algunos poderes pueden contrarrestarse usando escudos, mientras que otros deberían contrarrestarse esquivando o incluso huyendo temporalmente del jefe. Cuanto más conozcas cómo funcionan los poderes y cómo se contrarrestan, mejores serán los jefes que crees.
Ejemplo completo de jefe de mundo
Este ejemplo combina los ajustes principales. Sustituye el mundo y las coordenadas por los tuyos y comprueba que los poderes y el objeto personalizado estén activados. Registra los cambios de bloques en el juego; el bloque del ejemplo solo ilustra el formato.
isEnabled: true
entityType: ZOMBIE
name: "&cThe Zombie King"
level: 30
healthMultiplier: 10.0
damageMultiplier: 2.0
# World Boss specific settings
isRegionalBoss: true
isPersistent: true
# Spawn settings
spawnLocations:
- world,100,64,100,0,0
spawnCooldown: 60
# Combat boundaries
leashRadius: 30
timeout: 20
# Messages and announcements
spawnMessage: "&cThe Zombie King has risen!"
deathMessage: "&aThe Zombie King has been defeated by $players!"
escapeMessage: "&eThe Zombie King has escaped..."
announcementPriority: 2
# Arena modification
onSpawnBlockStates:
- 0,0,0/minecraft:barrier
onRemoveBlockStates:
- 0,0,0/minecraft:air
# Boss features
powers:
- zombie_friends.lua
- ground_pound.lua
uniqueLootList:
- filename=magmaguys_toothpick.yml:chance=1.0
Este jefe hará lo siguiente:
- Programará una aparición 60 minutos después de morir o escapar por tiempo, cuando el mundo y el chunk estén disponibles
- Escapará 20 minutos después de aparecer o restaurarse si no es derrotado
- Anunciará la aparición/muerte/escape en el chat y permitirá el seguimiento por parte de los jugadores
- Se restaurará cuando vuelva a cargarse su chunk
- Modificará los bloques de la arena al aparecer y al morir
- Soltará botín único al ser derrotado
Con nivel 30 y healthMultiplier: 10.0, el ejemplo tiene 1400 de salud bajo el límite predeterminado. Alcanza 2048 en el nivel 33. La salud base se limita antes de aplicar el multiplicador y el resultado se limita otra vez. Por eso, reducir el multiplicador no recupera el crecimiento por nivel cuando la salud base ya alcanzó el límite. Consulta healthMultiplier.