Dificultad de las mazmorras instanciadas
Las mazmorras instanciadas tienen un ajuste que permite definir varias dificultades.
Cómo funciona
Las dificultades pueden establecer un valor levelSync, inspirado en la sincronización de nivel de Final Fantasy 14. Esto modifica el nivel del objeto utilizado por la caché de equipo del jugador. No reescribe el objeto de su inventario.
Los cálculos actuales de ataque cuerpo a cuerpo y defensa de armadura leen el nivel original del objeto. La captura de combate de los proyectiles también lee el ataque original del arma, y los tridentes arrojados leen el nivel del objeto al impactar. No dependas únicamente de levelSync para igualar armas y armaduras.
Filo y Poder aportan un multiplicador de ataque de equipo independiente. Cada objeto equipado que cumpla los requisitos aporta 0.025 * (Sharpness level + Power level), y se suman las aportaciones de las seis ranuras de equipo. La sincronización no limita esta aportación de encantamientos. Se trata de una contribución al multiplicador, no de una cantidad fija de puntos de daño.
La salud base de los jefes se duplica cada cinco niveles antes de aplicar los límites de salud, pero el ataque del jugador utiliza sus propios cálculos de habilidades, objetos, encantamientos y clase. Consulta el sistema de daño antes de equilibrar encuentros. Combina la sincronización con poderes, valores del jefe y recompensas específicos de la dificultad, y revisa el equipo que llevarán los jugadores.
Sistema de grupos
EliteMobs tiene grupos que solo duran la sesión. Las invitaciones normales permiten hasta cinco miembros; los grupos automáticos de mazmorra pueden incluir una lista de admitidos mayor. Cuando un miembro selecciona una mazmorra instanciada, EliteMobs registra el grupo actual e inicia una comprobación de preparación con botones. El iniciador cuenta como preparado automáticamente; los demás deben aceptar la mazmorra y dificultad exactas antes de preparar el mundo. Las mazmorras dinámicas también muestran el nivel elegido. Un rechazo, tiempo agotado, cambio de miembros, miembro no disponible, fallo de permisos o capacidad, conflicto con otra instancia o cancelación de la comprobación MatchJoinEvent de EliteMobs aborta la entrada del grupo, en lugar de mover solo a una parte. PlayerJoinDungeonEvent de EliteMobs es una notificación no cancelable que se emite después de admitir al jugador.
Los desafíos personales de encantamiento siguen siendo individuales porque el desafío retiene temporalmente el objeto del iniciador.
Los autores pueden elegir poderes que se vuelvan más peligrosos con más jugadores. Los jefes de mazmorra también reciben un aumento de salud según el número de participantes de la instancia cuando se establece su salud, incluido el inicio de la partida. La fórmula es scaledHealth = baseHealth * 0.75 * playerCount. Por ejemplo, con 2 jugadores el jefe tiene 1,5 veces su salud base; con 3, 2,25 veces; y con 5, 3,75 veces.
Nota: El ajuste de salud solo se aplica cuando hay al menos 2 jugadores en la instancia. En solitario, los jefes tienen su salud estándar.
Cómo definir una dificultad
Las dificultades se definen en el YAML del paquete de la mazmorra instanciada, dentro de /plugins/EliteMobs/content_packages/, posiblemente en una subcarpeta del paquete. Coloca difficulties junto a otros ajustes principales de la mazmorra, como contentLevel y name.
Ejemplo:
difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic
Esto establece tres dificultades. name proporciona la etiqueta del menú. levelSync e id son opcionales; omitir levelSync no aplica sincronización. Los nombres reconocidos pueden proporcionar un ID ausente, como se explica abajo. En paquetes nuevos, usa preferiblemente IDs explícitos.
name es el nombre de la dificultad que aparece en el juego. Puedes elegir cualquier nombre.
levelSync establece el límite de nivel para las rutas de cálculo descritas arriba. No limita todos los cálculos de daño o defensa.
Puedes definir tantas dificultades como quieras. Añade o elimina entradas de difficulties con el mismo formato.
Sincronización de nivel relativa
La sincronización también admite valores relativos en lugar de números absolutos. Pon siempre el valor entre comillas. YAML convierte +5 sin comillas en el entero 5, por lo que EliteMobs recibe un límite absoluto de nivel 5. Del mismo modo, levelSync: +0 sin comillas se convierte en un 0 absoluto y desactiva la sincronización. Los negativos sin comillas, como levelSync: -10, conservan el signo y se interpretan como relativos, pero usar comillas en todos estos valores evita ambigüedades:
difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard
Los valores relativos se calculan a partir del nivel base de contenido de la mazmorra, con un resultado mínimo de 1. Por ejemplo, si el nivel de contenido es 60:
levelSync: '+5'se convierte en 65levelSync: '+0'se convierte en 60levelSync: '-10'se convierte en 50
Esto resulta útil en las mazmorras dinámicas, cuyo nivel de contenido puede variar. En ellas, el nivel se conoce al crear la instancia y el valor relativo se resuelve en ese momento.
Un levelSync: 0 absoluto, o cualquier valor que EliteMobs no pueda interpretar, significa sin sincronización de nivel para esa dificultad.
Campo opcional de ID de dificultad
Establece id en cada dificultad para los filtros de poderes y botín. La correspondencia numérica estándar es 0 = NORMAL, 1 = HARD, 2 = MYTHIC.
La implementación también reconoce Normal/Hard/Mythic y los nombres antiguos Easy/Medium/Hard, ignorando mayúsculas, colores y espacios externos. El paquete completo determina el esquema: un ID explícito Normal o Mythic selecciona el estándar. En otro caso, un ID Easy o Medium selecciona el antiguo; los nombres solo lo seleccionan si aparece Easy o Medium sin Normal ni Mythic. La detección ocurre antes de traducir; los IDs numéricos siempre conservan su significado. Un nombre reconocido proporciona un ID ausente o un grado para un ID personalizado.
Las definiciones desconocidas generan una advertencia en consola con el archivo del paquete. Los IDs personalizados mantienen la coincidencia en filtros tras normalizar mayúsculas, colores y espacios. Para el botín automático, tiene prioridad una correspondencia explícita del ID original en ClassLootSettings.yml, seguida del grado resuelto y del valor predeterminado configurado. Asigna IDs explícitos a los nombres poco habituales.
difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1
Poderes según la dificultad
Puedes configurar poderes que los jefes solo tengan en determinadas dificultades:
powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2
Nota: ¡esto forma parte del archivo de configuración del jefe personalizado!
En este caso, el jefe solo tendrá invulnerabilidad al fuego en las dificultades con ID 1 y 2.
difficultyID admite un ID o una lista YAML, tanto para poderes como para botín definido por el autor. Un filtro de poder vacío o inválido no coincide con ninguna dificultad; en una entrada de botín, una lista vacía o un ID en blanco hace que esa entrada se rechace al cargar el archivo. Los filtros de poderes se aplican a los jefes instanciados asociados a una mazmorra y a los jefes que aparecen en la instancia de otro plugin mediante la API de jefes instanciados, usando la dificultad que ese plugin haya asignado. No restringen a los jefes normales del mundo abierto.
Botín según la dificultad
Puedes configurar botín específico para una dificultad de mazmorra instanciada:
uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0
Nota: ¡esto forma parte del archivo de configuración del jefe personalizado!
Dentro de una mazmorra, esta entrada permite himiko_boss_drop_axe_tank_normal.yml para la dificultad 0, con una tirada del 5% y los requisitos habituales de botín. La comprobación usa la mazmorra actual del destinatario; no bloquea la entrada fuera de una mazmorra. El equipo válido pasa por el reparto de grupo de la mazmorra y los objetos que no son equipo siguen siendo personales. Consulta el botín de grupo.
Equilibrar recompensas normales, difíciles y míticas
El ejemplo anterior limita un archivo de objeto a una dificultad. Para proporcionar equipo adecuado a cada clase sin mantener tres versiones de cada objeto, usa el botín automático por clase. Selecciona perfiles de encantamientos por dificultad y rango, conservando el nombre y la descripción de cada objeto en un solo lugar.
La guía incluye una tabla de límites de encantamientos principales y la fórmula de presupuesto para generar los objetos. Aumentar la dificultad no multiplica automáticamente la salud del jefe ni las estadísticas del botín; la sincronización, los poderes, los valores del jefe y los perfiles de recompensa controlan partes distintas del encuentro.