Saltar al contenido principal

Sistema de Daño

Este es un desglose exhaustivo de cómo escala la salud / el daño en EliteMobs. Debería usarse como referencia al diseñar mazmorras.

Está centrado en los Jefes Personalizados, pero los Elites normales escalan de la misma manera.

¡Antes de empezar!

No necesitas leer todo esto si solo quieres hacer ajustes rápidos. ¡Salta a la sección "Usar estos datos para mazmorras" para ver cálculos rápidos muy simplificados y una serie de ajustes recomendados prefabricados!

Escalado (en general)

EliteMobs usa un sistema de escalado exponencial en el que cada 5 niveles de diferencia se duplica (o se reduce a la mitad) el poder efectivo. La salud del jefe, el daño del jugador y el daño del jefe escalan todos exponencialmente para que el combate se sienta consistente en cada rango de niveles -- un jugador de nivel 10 peleando contra un jefe de nivel 15 se siente igual que un jugador de nivel 50 peleando contra un jefe de nivel 55.

El poder del jugador proviene de dos fuentes con una división 50/50:

  1. Nivel de Habilidad de Arma -- ganado matando Elite Mobs con un tipo de arma específico (espadas, hachas, arcos, ballestas, tridentes, azadas, mazas o lanzas).
  2. Nivel del Objeto -- el nivel de elite del arma o pieza de armadura que el jugador tiene equipada.

Los jugadores también tienen una Habilidad de Armadura que sube de nivel pasivamente durante el combate (a 1/3 del ritmo de las habilidades de arma). El nivel de habilidad de armadura otorga salud máxima adicional (+1 corazón por nivel por encima de 1) y determina el escalado defensivo del jugador contra el daño del jefe.

Habilidades de Arma

EliteMobs 10 introduce un sistema de habilidades en el que los jugadores suben de nivel cada tipo de arma de forma independiente usándola en combate. Matar a un Elite Mob otorga XP a la habilidad de arma que coincide con el arma sostenida, y también a la habilidad de Armadura a un ritmo reducido.

Las habilidades de arma disponibles son:

HabilidadArma
SwordsTodos los tipos de espada
AxesTodos los tipos de hacha
BowsArco
CrossbowsBallesta
TridentsTridente
HoesTodos los tipos de azada
MacesMaza (1.21+)
SpearsTodos los tipos de lanza (1.21.11+)
ArmorTodas las piezas de armadura (suben de nivel pasivamente)

La XP de habilidad de un mob es igual a mobLevel^2, así que los mobs de nivel más alto otorgan proporcionalmente más XP. El nivel máximo de habilidad es 100, después del cual un límite suave hace que la progresión posterior sea exponencialmente más difícil.

Bonificaciones de Habilidad

Cada habilidad de arma (y la habilidad de armadura) tiene un conjunto de bonificaciones de habilidad -- habilidades especiales que se desbloquean a medida que el jugador sube de nivel. Los jugadores pueden seleccionar qué bonificaciones activar. Las bonificaciones de habilidad vienen en cinco tipos:

  • Pasiva -- siempre activa cuando está equipada (p. ej., aumento de daño fijo).
  • Condicional -- activa solo cuando se cumple una condición específica (p. ej., daño adicional cuando el objetivo está por debajo del 30% de salud).
  • Proc -- activación basada en probabilidad en eventos específicos (p. ej., probabilidad de causar sangrado al golpear).
  • Acumulable (Stacking) -- se acumula a lo largo de acciones consecutivas (p. ej., los golpes consecutivos aumentan el daño).
  • Enfriamiento (Cooldown) -- efecto poderoso con un enfriamiento interno (p. ej., sobrevivir a un daño fatal una vez cada 60 segundos).

Las bonificaciones de habilidad ofensivas de las habilidades de arma se aplican como multiplicadores de daño aditivos sobre el daño base infligido a los jefes. Las bonificaciones de habilidad defensivas de la habilidad de armadura reducen el daño entrante del jefe a través de varios mecanismos (reducción fija, esquiva, escudos de daño, etc.).

Daño infligido por los Jefes Personalizados

El daño del jefe en EliteMobs 10 usa tres capas multiplicativas sin precompensación. El sistema está diseñado para que un jugador con el equipo adecuado sobreviva aproximadamente 5 golpes de contenido del mismo nivel.

La fórmula de daño para los Jefes Personalizados es:

1. playerMaxHealth = 20 + (armorSkillLevel - 1) * 2
2. baseDamage = playerMaxHealth / 5.0
3. skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)
4. gearAdjustment = 2.0 * (1 - gearReduction)
5. scaledDamage = baseDamage * skillAdjustment * gearAdjustment
6. [explosion distance attenuation, if applicable]
7. potionMultiplier from Resistance effect
8. finalDamage = max(scaledDamage, 1) * potionMultiplier * customBossDamageMultiplier * specialMultiplier * configMultiplier
9. finalDamage = min(finalDamage, actualMaxHealth - 1)

Las tres capas son:

  1. Daño base -- cuánta salud por golpe se espera que pierda el jugador (playerMaxHealth / 5).
  2. Ajuste de habilidad -- escalado exponencial a partir de la diferencia entre el nivel del jefe y el nivel de Habilidad de Armadura del jugador.
  3. Ajuste de equipo -- reducción consciente del tipo de daño basada en la armadura equipada del jugador y los encantamientos de protección (consulta el Sistema de Defensa de Equipo más abajo).

Nota: El daño tiene un límite de (la salud máxima real del jugador - 1) para evitar muertes de un solo golpe. El límite usa el atributo generic_max_health, que incluye todos los modificadores (bonificación de habilidad de armadura, efectos de pociones, etc.).

playerMaxHealth

La salud máxima del jugador está determinada por su nivel de Habilidad de Armadura. La salud base es 20 (10 corazones), y cada nivel de habilidad de armadura por encima de 1 añade 2 HP (1 corazón). Un jugador con nivel de habilidad de armadura 50 tiene 118 HP (59 corazones).

baseDamage

El daño base es simplemente playerMaxHealth / 5.0. Esta es la cantidad de daño que se espera que reciba por golpe un jugador del mismo nivel con el equipo adecuado. A diferencia del sistema antiguo, no hay precompensación -- el valor base es el daño objetivo, no un valor bruto inflado.

skillAdjustment

El ajuste de habilidad usa escalado exponencial para que la diferencia de nivel entre el jefe y la Habilidad de Armadura del jugador sea significativa:

skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)

Cada 7.5 niveles de diferencia se duplica (o se reduce a la mitad) el daño efectivo del jefe. Esto es ligeramente más indulgente que el modificador de nivel de propósito general (que se duplica cada 5 niveles), porque la capa de ajuste de equipo ya proporciona escalado adicional.

Diferencia de NivelAjuste de HabilidadGolpes Aproximados para Matar (equipo igualado)
Mismo nivel (0)1.0x~5 golpes
+5 niveles~1.6x~3 golpes
+10 niveles~2.5x~2 golpes
+15 niveles4.0x~1.25 golpes

Sistema de Defensa de Equipo

El sistema de defensa de equipo reemplaza la antigua rampa de equipo. En lugar de asumir un multiplicador de precompensación fijo basado en el nivel de habilidad, el sistema ahora lee el equipo realmente equipado del jugador y calcula una reducción de equipo consciente del tipo de daño.

Tipos de Daño

El sistema clasifica el daño entrante en cinco categorías. El tipo de daño determina qué encantamientos de protección contribuyen a la puntuación de equipo:

Tipo de DañoCausas del EventoEncantamientos de Protección Usados
MELEEAtaque directo, ataque de barridoSolo Protection
PROJECTILEFlechas, bolas de fuegoProtection + Projectile Protection
EXPLOSIONExplosión de creeper, de ghastProtection + Blast Protection
FIREFuego, tick de fuegoProtection + Fire Protection
OTHERTodo lo demásSolo Protection

Puntuación de Equipo

La puntuación de equipo combina el nivel de armadura y las bonificaciones de encantamiento en un único valor que se puede comparar con el nivel del mob atacante:

gearScore = (sum of armorLevel for 4 armor slots) / 4
+ (sum of enchantBonus for all 6 slots) / 4

El nivel de armadura se determina por objeto:

  • Los objetos de elite usan su nivel de elite almacenado (el nivel para el que se creó el objeto).
  • Los objetos vanilla usan una búsqueda basada en el material:
MaterialNivel de Armadura
Leather1
Gold2
Chainmail3
Iron4
Turtle Shell4
Diamond5
Netherite7

Solo las 4 ranuras de armadura (casco, pechera, grebas, botas) contribuyen al nivel de armadura.

La bonificación de encantamiento convierte los niveles de encantamiento de protección en unidades equivalentes a nivel de armadura:

enchantBonus = (general Protection level + type-specific Protection level) * (1/3)

Las 6 ranuras de equipo (4 de armadura + mano principal + mano secundaria) contribuyen a la bonificación de encantamiento. Esto significa que los escudos o armas con encantamientos de Protection proporcionan defensa adicional. La normalización /4 sobre la suma significa que tener encantamientos en las 6 ranuras da hasta un 50% más de contribución de encantamiento que tenerlos solo en 4 piezas de armadura.

Ejemplo resuelto: Equipo igualado de Nv25 + Prot IV vs Nv25 (cuerpo a cuerpo)
Player: armorSkillLevel=25, maxHP = 20 + 24*2 = 68
4 elite armor pieces each at armorLevel=25, each with Protection IV
Mob: level=25, melee attack

Step 1 -- Armor level per piece: 25 (elite item, stored value)
Step 2 -- Enchant bonus per piece: Protection IV = 4 * (1/3) = 1.333
(melee damage type, so only general Protection applies)
Step 3 -- Gear score:
armorLevelSum = 25*4 = 100, /4 = 25.0
enchantBonusSum = 1.333*4 = 5.333 (no mainhand/offhand enchants), /4 = 1.333
gearScore = 25.0 + 1.333 = 26.333
Step 4 -- Gear reduction (above matching):
reduction = 0.50 + (26.333 - 25) * 0.025 = 0.533 (53.3%)
Step 5 -- Gear adjustment: 2.0 * (1 - 0.533) = 0.933
Step 6 -- Final damage: baseDamage(13.6) * skillAdj(1.0) * gearAdj(0.933) = 12.69
Hits to kill: 68 / 12.69 = 5.36, approximately 5.4 hits
Ejemplo resuelto: Diamante vanilla de Nv1 vs esqueleto de Nv5 (proyectil)
Player: armorSkillLevel=1, maxHP = 20
Full vanilla diamond armor (no enchants), no mainhand/offhand enchants
Mob: level=5, skeleton arrow (PROJECTILE damage type)

Step 1 -- Armor level per piece: 5 (vanilla diamond from lookup table)
Step 2 -- Enchant bonus: 0 (no enchants on any piece)
Step 3 -- Gear score: (5+5+5+5)/4 + 0/4 = 5.0
Step 4 -- Gear reduction (matching): 0.50 * (5/5) = 0.50 (50%)
Step 5 -- Gear adjustment: 2.0 * (1 - 0.50) = 1.0
Step 6 -- Final damage: baseDamage(4) * skillAdj(1.447) * gearAdj(1.0) = 5.79
Hits to kill: 20 / 5.79 = 3.45, approximately 3.5 hits

Si la armadura de diamante también tuviera Projectile Protection IV, cada pieza ganaría una bonificación de encantamiento de 4 * (1/3) = 1.333. La puntuación de equipo subiría a 5.0 + (1.333*4)/4 = 6.333, aumentando la reducción al 53.3% y mejorando notablemente la supervivencia contra las flechas.

Curva de Reducción de Equipo

La reducción de equipo usa una curva lineal de dos partes que cambia en el punto donde la puntuación de equipo es igual al nivel del mob:

Por debajo de la igualación (gearScore es menor o igual que mobLevel):

reduction = 0.50 * (gearScore / mobLevel)

Escala linealmente desde 0% (desnudo) hasta 50% (igualado). La pendiente depende del nivel del mob -- contra un mob de nivel 5 cada nivel de equipo da un 10% de reducción, mientras que contra un mob de nivel 50 cada uno da un 1%. Esto hace que, de forma natural, la armadura vanilla de nivel bajo sea efectiva contra mobs de nivel bajo pero irrelevante contra los de nivel alto.

Por encima de la igualación (gearScore es mayor que mobLevel):

reduction = 0.50 + (gearScore - mobLevel) * 0.025

Un 2.5% fijo por nivel de equipo por encima del mob. Alcanza el límite duro del 75% a +10 niveles de equipo por encima del mob.

El ajuste de equipo convierte la reducción en un multiplicador de daño:

gearAdjustment = 2.0 * (1 - gearReduction)
Situación del EquipoReducción de EquipoAjuste de EquipoGolpes para Matar (mismo nivel de habilidad)
Desnudo (sin equipo)0%2.0~2.5
Equipo a media igualación25%1.5~3.3
Equipo igualado (gearScore = mobLevel)50%1.0~5.0
+4 niveles por encima del mob60%0.8~6.25
+10 niveles por encima del mob (límite)75%0.5~10.0

Tabla de Escenarios

La siguiente tabla muestra los resultados de combate esperados a lo largo de una variedad de escenarios:

EscenarioAjuste Hab.Red. EquipoAjuste EquipoGolpes
Nv1 desnudo vs Nv11.00%2.02.5
Nv1 desnudo vs Nv51.450%2.0~1.7
Nv1 diamante vanilla vs Nv51.4550%1.0~3.5
Nv25 igualado vs Nv251.050%1.05.0
Nv25 igualado+ProtIV vs Nv251.053.3%0.935.4
Nv25 igualado vs Nv301.5941.7%1.172.7
Nv25 equipo máximo vs Nv251.075%0.5010.0
Nv50 igualado vs Nv501.050%1.05.0

Objetivos de diseño clave:

  • 5 golpes a nivel igualado -- el objetivo central de balance. Un jugador con el equipo adecuado sobrevive exactamente 5 golpes normales de un elite mob del mismo nivel, en todos los niveles.
  • 2.5 golpes desnudo -- no tener equipo significa el doble de daño mediante el ajuste de equipo de 2.0. Incentivo inmediato para equipar cualquier armadura.
  • La armadura vanilla importa -- un jugador de nivel 1 con armadura de diamante sobrevive ~3.5 golpes de un mob de nivel 5 en lugar de ~1.7 desnudo.
  • Los encantamientos son significativos pero no dominantes -- Protection IV en las 4 piezas de armadura añade ~1.33 a la puntuación de equipo, empujando del 50% al 53.3% de reducción. Notable (~8% más de supervivencia) pero no rompe el juego.
  • Consistente por nivel -- el combate igualado a nivel 25 y a nivel 50 producen ambos exactamente 5 golpes.
  • Límite de equipo máximo a 10 golpes -- incluso con el mejor equipo posible (+10 niveles por encima del mob), los jugadores siguen recibiendo daño significativo.

potionMultiplier (Defensivo)

Los efectos de la poción de Resistencia reducen el daño entrante según el nivel del efecto:

potionMultiplier = max(0, 1.0 - (resistanceAmplifier + 1) * resistanceDamageMultiplier)

La clave de configuración es resistanceDamageMultiplierV2 en MobCombatSettings.yml (por defecto: 0.2). Esto coincide con el comportamiento vanilla: Resistencia I = 20% de reducción, Resistencia V = 100% de reducción (inmune).

customBossDamageMultiplier

Este es el multiplicador de daño en el archivo del Jefe Personalizado. Por defecto es 1.

configMultiplier (Defensivo)

Este es el multiplicador en MobCombatSettings.yml. Para el combate normalizado, usa normalizedDamageToPlayerMultiplier (por defecto 1.0). Para el combate escalado, usa scaledDamageToPlayerMultiplier (por defecto 1.0). Para los mobs estándar, usa damageToPlayerMultiplierV2 (por defecto 1.0).

specialMultiplier

Este es un multiplicador de daño temporal aplicado por los poderes del jefe. Algunas habilidades del jefe aumentan el daño del jefe durante la duración del poder. Por defecto es 1.0 cuando no hay ningún poder activo.

Atenuación del Daño por Explosión

Las explosiones de creeper y otro daño de explosión (bolas de fuego de ghast) se reducen según la distancia desde el centro de la explosión. El multiplicador de daño disminuye linealmente con la distancia desde la explosión, haciendo que las explosiones sean menos letales a distancia.

Salud máxima de los Jefes Personalizados

La salud del jefe en EliteMobs 10 usa escalado exponencial en lugar de escalado lineal. Cada 5 niveles, la salud del jefe se duplica exactamente. Esto asegura que las diferencias de nivel se sientan consistentes independientemente del nivel absoluto.

La fórmula de salud para los Jefes Personalizados es:

health = 2.1875 * 2^(bossLevel / 5) * customBossHealthMultiplier

Escalado Exponencial

La constante base (2.1875) está ajustada para que un jefe de nivel 25 tenga aproximadamente 70 HP. Valores de salud de ejemplo:

Nivel del JefeSaludSalud +5 Niveles
1~2.5~5 (2x)
5~4.4~8.75 (2x)
10~8.75~17.5 (2x)
25~70~140 (2x)
50~2,240~4,480 (2x)
100~2,293,760~4,587,520 (2x)

customBossHealthMultiplier

Este es el multiplicador en el archivo del Jefe Personalizado. Por defecto es 1.

Daño infligido a los Jefes Personalizados

El daño del jugador usa capas multiplicativas de escalado exponencial y lineal para mantener el combate consistente entre niveles, dejando al mismo tiempo que las distintas familias de armas se sientan diferentes. La fórmula separa el poder del jugador en dos ejes independientes -- nivel de habilidad de arma (ajuste de habilidad exponencial) y nivel de objeto del arma (ajuste de arma lineal) -- de modo que tanto la inversión en habilidad como el equipo contribuyen al poder de combate.

El cambio importante respecto a versiones anteriores es que la velocidad de las armas cuerpo a cuerpo ya no intenta hacer que cada tipo de arma tenga un DPS teórico idéntico. Las espadas siguen siendo el punto de referencia, mientras que las hachas, mazas y tridentes cuerpo a cuerpo reciben una compensación de ráfaga amortiguada. Las familias de armas que ya funcionaron bien en las pruebas, como las azadas y las lanzas, conservan el antiguo factor de velocidad de ataque.

Fórmula de Daño

La fórmula completa de daño de jugador a elite es:

formulaDamage = baseDamage * attackSpeedFactor * skillAdjustment * weaponAdjustment * cooldownOrVelocity * sweepMultiplier * potionMultiplier * enchantmentMultiplier * arrowDamageMultiplier

finalDamage = max(formulaDamage, 1) * damageModifier * combatMultiplier * critMultiplier

Cada componente se describe a continuación.

baseDamage

El daño base por golpe se deriva del HP normalizado del mob (con healthMultiplier=1.0) dividido entre el número objetivo de golpes para matar:

baseDamage = normalizedMobHP / 3.0

Donde normalizedMobHP = 2.1875 * 2^(mobLevel / 5) (consulta la sección Salud máxima de los Jefes Personalizados más arriba). La constante 3.0 (TARGET_HITS_TO_KILL_MOB) significa que un jugador igualado mata a un elite estándar en exactamente 3 golpes de espada en cualquier nivel.

Nota: El healthMultiplier del archivo del Jefe Personalizado multiplica el HP real del mob pero NO afecta a baseDamage. Un jefe con healthMultiplier: 2.0 tiene el doble de HP y recibe 6 golpes en lugar de 3.

attackSpeedFactor

Esta es la capa de ritmo de la velocidad de ataque cuerpo a cuerpo. Parte del antiguo factor heredado:

legacyFactor = 1.6 / actualAttackSpeed

La velocidad de referencia de 1.6 es la velocidad de ataque de la espada. El factor final depende entonces de la familia del arma:

Swords, hoes, spears, unknown melee, and bow/crossbow melee:
attackSpeedFactor = legacyFactor

Axes, maces, and melee tridents:
attackSpeedFactor = sqrt(legacyFactor)

Ranged projectile attacks:
attackSpeedFactor = 1.0

Esto significa que el sistema no intenta hacer que cada arma cuerpo a cuerpo tenga un DPS idéntico. Las armas lentas de ráfaga siguen golpeando más fuerte por golpe, pero las hachas, mazas y tridentes cuerpo a cuerpo ya no reciben el multiplicador de ráfaga completo 1.6 / velocidad. Las azadas y lanzas se mantienen intencionadamente con el factor antiguo porque las pruebas de juego mostraron que su ritmo ya era aceptable.

Ejemplos con nivel de habilidad y de arma igualados:

Tipo de ArmaVelocidad de Ataque de EjemploFactorGolpes de Fórmula vs healthMultiplier: 1.0
Espada1.61.00x3.0
Hacha1.01.26x~2.4
Maza0.61.63x~1.8
Azada4.00.40x7.5
Tridente, cuerpo a cuerpo1.11.21x~2.5
Lanza, ejemplo de diamante~0.95~1.68x~1.8
Proyectil de arco/ballestaN/A1.00xla velocidad del proyectil decide la carga

Para los ataques con proyectil, incluidos arcos, ballestas y tridentes lanzados, no se aplica el factor de velocidad de ataque cuerpo a cuerpo. La carga/fuerza del proyectil se representa con cooldownOrVelocity en su lugar.

Nota: Las armas exclusivamente a distancia (arcos, ballestas) usadas cuerpo a cuerpo se tratan como golpes desarmados -- nivel de arma 0 y nivel de habilidad 1, con una velocidad de ataque por defecto de 4.0 (velocidad de puño). Esto las hace muy débiles cuerpo a cuerpo, incentivando a los jugadores a usarlas a distancia.

skillAdjustment

Escalado exponencial a partir de la diferencia entre el nivel de habilidad de arma del jugador y el nivel del mob:

skillAdjustment = 2 ^ ((weaponSkillLevel - mobLevel) / 7.5)

Cada 7.5 niveles de diferencia se duplica (o se reduce a la mitad) el daño del jugador. Esto coincide con el ritmo de escalado de habilidad defensiva usado en el daño de jefe a jugador, produciendo un combate simétrico.

Diferencia de HabilidadAjuste de HabilidadEfecto
-150.25xUn cuarto del daño
-7.50.50xLa mitad del daño
0 (igualado)1.0xLínea base
+7.52.0xEl doble del daño
+154.0xEl cuádruple del daño

A diferencia del modificador de nivel de propósito general usado para el escalado de HP del jefe (que está limitado), el ajuste de habilidad ofensivo no está limitado en el código actual. En la práctica, las diferencias de nivel muy grandes (más allá de +/-22 niveles) pueden producir valores extremos, pero esto es improbable en el juego normal porque las habilidades de arma tienen un límite de 100.

weaponAdjustment

Una curva lineal de dos partes basada en el nivel de objeto del arma vs el nivel del mob. Esto refleja la curva de reducción de equipo defensiva del Sistema de Defensa de Equipo.

weaponAdjustment = 0.5 + bonus

Por debajo de la igualación (weaponLevel es menor o igual que mobLevel):

bonus = 0.50 * (weaponLevel / mobLevel)

Escala linealmente desde 0 (sin arma) hasta 0.50 (igualado). Sin un arma equipada, el ajuste es 0.50 (la mitad del daño).

Por encima de la igualación (weaponLevel es mayor que mobLevel):

bonus = 0.50 + (weaponLevel - mobLevel) * 0.025
bonus = min(bonus, 0.75)

Un 2.5% fijo por nivel de arma por encima del mob, con un límite de 0.75 de bonificación. Requiere +10 niveles de arma por encima del mob para alcanzar el límite.

Escenario de ArmaBonificaciónAjuste de ArmaEfecto en los Golpes
Puños desnudos (sin arma)0.000.506 golpes (2x más lento)
Arma a medio nivel0.250.754 golpes
Arma igualada (weaponLevel = mobLevel)0.501.003 golpes (línea base)
+4 niveles por encima del mob0.601.10~2.7 golpes
+10 niveles por encima del mob (límite)0.751.25~2.4 golpes

cooldownOrVelocity

Para las armas cuerpo a cuerpo, este es el multiplicador de enfriamiento de ataque de Minecraft (0.0 a 1.0). Atacar antes de que se restablezca el enfriamiento reduce todo el daño de la fórmula proporcionalmente. A carga completa, cooldown = 1.0.

Para los ataques a distancia/con proyectil (arcos, ballestas, tridentes lanzados y flechas generadas por habilidades), esta es la velocidad de lanzamiento normalizada. La velocidad de un arco a tensión completa es aproximadamente 3.0; el valor se normaliza a min(velocity / 3.0, 1.0), limitado al rango [0, 1].

sweepMultiplier

Cuando un barrido de espada golpea a objetivos secundarios mediante ENTITY_SWEEP_ATTACK, esos objetivos reciben el 25% del daño del golpe principal:

sweepMultiplier = 0.25  (secondary sweep targets)
sweepMultiplier = 1.0 (primary target)

potionMultiplier (Ofensivo)

Los efectos de las pociones de Fuerza y Debilidad modifican el daño saliente del jugador:

potionMultiplier = 1.0 + strengthBonus - weaknessPenalty

Donde strengthBonus = (strengthAmplifier + 1) * strengthDamageMultiplier y weaknessPenalty = (weaknessAmplifier + 1) * weaknessDamageMultiplier. Ambos valores de configuración tienen un valor predeterminado de 0.2, coincidiendo con el comportamiento vanilla (Fuerza I = +20% de daño, Debilidad I = -20% de daño). Niveles iguales de Fuerza y Debilidad se cancelan exactamente. El multiplicador tiene un suelo de 0.

Las claves de configuración en MobCombatSettings.yml son:

KeyDefaultDescription
strengthDamageMultiplierV20.2Daño adicional por nivel de Fuerza
weaknessDamageMultiplierV20.2Penalización de daño por nivel de Debilidad

enchantmentMultiplier

Los encantamientos de Smite y Bane of Arthropods proporcionan una pequeña bonificación de daño contra sus respectivos tipos de mob, pero solo cuando useEliteEnchantments está desactivado en ItemSettings.yml. Cuando los encantamientos de elite están activados, este multiplicador es siempre 1.0.

Solo se cuentan los niveles de encantamiento por encima del máximo vanilla (niveles exclusivos de elite):

enchantmentMultiplier = 1.0 + eliteLevelsAboveVanillaMax * 0.025

Cada nivel de encantamiento exclusivo de elite proporciona una bonificación de daño del 2.5%. Por ejemplo, Smite VIII en un arma de elite (el máximo vanilla es V) contribuye con 3 niveles de elite: 1.0 + 3 * 0.025 = 1.075 (7.5% de bonificación contra no-muertos).

arrowDamageMultiplier

Las flechas generadas por las habilidades de habilidad de arma (como Multishot, Arrow Rain, etc.) llevan un multiplicador de daño almacenado en el contenedor de datos del proyectil. Esto permite que las flechas generadas por habilidades inflijan menos daño en comparación con un golpe de flecha estándar. Para las flechas normales disparadas por el jugador, este multiplicador es 1.0.

Daño de Thorns

El daño de Thorns usa una fórmula separada basada en el daño base del mob en lugar de la fórmula de ataque estándar. Solo cuentan los niveles de thorns exclusivos de elite (niveles por encima del máximo vanilla de III):

eliteThornsLevel = totalThornsLevel - vanillaMaxThornsLevel (per armor piece, summed across all 4 pieces)
thornsDamage = baseDamage * eliteThornsLevel * 0.02

Cada nivel de thorns de elite por encima del máximo vanilla contribuye con el 2% del daño base. Thorns III vanilla no activa el daño de thorns de elite. Por ejemplo, si las 4 piezas de armadura tienen Thorns V (2 niveles de elite cada una), el nivel total de thorns de elite es 8: baseDamage * 8 * 0.02 = 16% del daño base del mob por activación.

damageModifier

Modificador de daño por tipo de arma específico del jefe del archivo del Jefe Personalizado (damageModifiers). Esto permite que los jefes reciban más o menos daño de materiales de arma específicos (p. ej., un jefe que es resistente a las espadas pero débil a las hachas). Por defecto es 1.0 para todos los tipos de arma no configurados explícitamente.

combatMultiplier

Multiplicador global de MobCombatSettings.yml (scaledDamageToEliteMultiplier, normalizedDamageToEliteMultiplier o damageToEliteMobMultiplierV2 según el modo de combate). Por defecto es 1.0.

critMultiplier

Los golpes críticos multiplican el daño final por 1.5x. La probabilidad de crítico está determinada por las estadísticas de probabilidad de crítico del equipo de elite del jugador.

Limitación de Modificadores

El modificador de nivel de propósito general (usado para el escalado de HP del jefe y el combate estándar) está limitado entre MIN_MODIFIER = 0.125 y MAX_MODIFIER = 8.0 para evitar valores extremos con diferencias de nivel muy grandes. Estos límites se alcanzan aproximadamente con una diferencia de +/-15 niveles.

Sin embargo, los ajustes de habilidad ofensivos y defensivos usados en las fórmulas de daño de jugador a elite y de elite a jugador (calculateOffensiveSkillAdjustment y el ajuste de habilidad en eliteToPlayerDamageFormula) no están limitados en el código actual. En la práctica, los niveles de habilidad están acotados por el nivel máximo de habilidad (100), lo que limita naturalmente el rango de estos valores.

Ejemplos Resueltos

Ejemplo 1: Espada igualada de Nv25 vs elite de Nv25 (cuerpo a cuerpo)
Player: weaponSkillLevel=25, weapon=elite sword (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: mobHP(25) = 2.1875 * 2^5 = 70.0, baseDamage = 70.0/3 = 23.33
Step 2 -- Attack speed factor: sword speed=1.6, factor = 1.6/1.6 = 1.0
Step 3 -- Skill adjustment: 2^((25-25)/7.5) = 2^0 = 1.0
Step 4 -- Weapon adjustment: weaponLevel(25) == mobLevel(25), bonus=0.50, adj = 1.0
Step 5 -- Cooldown: full charge = 1.0
Step 6 -- Sweep: primary target = 1.0

formulaDamage = 23.33 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 = 23.33
Mob HP = 70.0 -> hits to kill = 70.0 / 23.33 = 3.0
Ejemplo 2: Hacha de Nv25 vs elite de Nv25 (compensación de ráfaga amortiguada)
Player: weaponSkillLevel=25, weapon=elite axe (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: 23.33 (same as above)
Step 2 -- Legacy attack speed factor: 1.6/1.0 = 1.6
Step 3 -- Axe burst damping: sqrt(1.6) = 1.265
Step 4 -- Skill adjustment: 1.0 (matched)
Step 5 -- Weapon adjustment: 1.0 (matched)
Step 6 -- Cooldown: full charge = 1.0

formulaDamage = 23.33 * 1.265 * 1.0 * 1.0 * 1.0 = 29.52
Hits to kill = 70.0 / 29.52 = 2.37
Ejemplo 3: Azada de Nv25 vs elite de Nv25 (factor heredado de arma rápida)
Player: weaponSkillLevel=25, weapon=elite hoe (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: 23.33 (same as above)
Step 2 -- Attack speed factor: hoe speed=4.0, factor = 1.6/4.0 = 0.4
Step 3 -- Skill adjustment: 1.0 (matched)
Step 4 -- Weapon adjustment: 1.0 (matched)
Step 5 -- Cooldown: full charge = 1.0

formulaDamage = 23.33 * 0.4 * 1.0 * 1.0 * 1.0 = 9.33
Hits to kill = 70.0 / 9.33 = 7.5
Ejemplo 4: Arco de Nv20 vs elite de Nv25 con healthMultiplier=2.0 (a distancia, por debajo de nivel)
Player: weaponSkillLevel=20, weapon=elite bow (itemLevel=20)
Mob: level=25, healthMultiplier=2.0, actual HP = 70.0 * 2 = 140.0

Step 1 -- Base damage: 23.33 (from normalized HP, NOT actual HP)
Step 2 -- Attack speed factor: ranged, N/A = 1.0
Step 3 -- Skill adjustment: 2^((20-25)/7.5) = 2^(-0.667) = 0.63
Step 4 -- Weapon adjustment: weaponLevel(20) < mobLevel(25), bonus = 0.5*(20/25) = 0.4, adj = 0.9
Step 5 -- Arrow velocity: full draw = 1.0

formulaDamage = 23.33 * 1.0 * 0.63 * 0.9 * 1.0 = 13.23
Hits to kill = 140.0 / 13.23 = 10.6 hits
(Under-leveled skill AND weapon, fighting a healthMultiplier=2.0 mob)

Herramienta de Depuración DamageBreakdown

EliteMobs incluye una herramienta de depuración integrada DamageBreakdown que rastrea y muestra cada componente de la fórmula de daño en tiempo real. Cuando está habilitada para un jugador, registra cada capa (daño base, factor de velocidad de ataque, ajuste de habilidad, ajuste de arma, enfriamiento, barrido, thorns, etc.) y puede mostrar:

  • Un desglose completo formateado que muestra todos los niveles, componentes de la fórmula, multiplicadores y el daño final calculado.
  • Un resumen compacto de una línea para una referencia rápida en el juego.
  • Una comparación de esperado vs real que señala discrepancias mayores del 10%, útil para diagnosticar conflictos de plugins o archivos de jefe mal configurados.

Esta es principalmente una herramienta de desarrollo y pruebas. Los administradores del servidor pueden usarla para verificar que el combate funciona como se pretende para encuentros específicos.

Progresión de XP de Habilidad

Las habilidades de arma y de armadura suben de nivel ganando XP al matar elite mobs. El sistema de XP usa requisitos de nivel cúbicos para crear una progresión suave con un límite suave más allá del nivel 100.

XP de las muertes: La XP ganada de un mob es igual a mobLevel^2. Los mobs de nivel más alto otorgan proporcionalmente más XP.

XP para el siguiente nivel:

Para los niveles 1 a 100:

xpToNextLevel = 8.5 * L^3

Para los niveles por encima de 100 (límite suave):

xpToNextLevel = 8.5 * L^3 * (1 + ((L - 100)^2 / 100))

El multiplicador del límite suave es continuo en el nivel 100 (multiplicador = 1.0) y crece cuadráticamente más allá de él. En el nivel 150, el multiplicador es aproximadamente 26x, haciendo la progresión posterior casi imposible. El nivel máximo de habilidad es 100 a efectos prácticos, aunque el sistema permite la progresión más allá de él a un coste exponencialmente creciente.

Mecánicas de Combate Adicionales

Prevención de Muertes de un Solo Golpe

EliteMobs evita que los jefes maten instantáneamente a los jugadores de un solo golpe. Independientemente del resultado del cálculo de daño, el daño tiene un límite de (el atributo generic_max_health del jugador - 1), asegurando que los jugadores siempre sobrevivan con al menos 1 punto de salud. El límite usa el atributo generic_max_health en lugar del HP actual, así que tiene en cuenta todos los modificadores de salud máxima (bonificación de habilidad de armadura, efectos de pociones, etc.).

Bloqueo con Escudo

Cuando los jugadores bloquean con un escudo, el daño entrante se reduce en un 80% (configurado como blockingDamageReduction en MobCombatSettings). Bloquear niega por completo los ataques de proyectil a distancia (el proyectil se elimina).

Bonificación de Salud de Habilidad de Armadura

Los jugadores ganan salud máxima adicional según su nivel de Habilidad de Armadura. Cada nivel por encima de 1 otorga +2 HP (+1 corazón). Esto se aplica como un modificador de atributo y es la forma principal en que los jugadores aumentan su supervivencia en niveles más altos.

Resumen del Escalado por Nivel

La siguiente tabla resume cómo las diferencias de nivel afectan al combate en ambas direcciones:

Diferencia de NivelModificador de HP del JefeModificador de Daño del JefeDificultad
-10 (jugador sobrenivel)0.25x HP~0.4x dañoTrivial
-5 (jugador sobrenivel)0.5x HP~0.6x dañoMuy fácil
0 (mismo nivel)1.0x HP1.0x dañoEquilibrado
+5 (jugador por debajo de nivel)2.0x HP~1.6x dañoDesafiante
+10 (jugador por debajo de nivel)4.0x HP~2.5x dañoMuy difícil

Combate Escalado

El combate escalado es un modo de combate alternativo diseñado para los elite mobs naturales del mundo superior y los jefes de evento. Hace que el jefe simule ser del mismo nivel que el jugador, de modo que el equipo y la habilidad siguen importando pero el nivel mostrado del mob no. El resultado es que cada jugador, independientemente de su nivel de progresión, se enfrenta a una pelea igualmente justa contra el mismo mob del mundo superior.

En qué se diferencia el Combate Escalado del Combate Normalizado

EliteMobs tiene tres modos de combate:

ModoUsado Para¿Importa el Nivel?Clave de Config
EstándarMobs básicos sin flags especialesSí -- el daño y la salud escalan con el nivel real del mobdamageToEliteMobMultiplierV2 / damageToPlayerMultiplierV2
NormalizadoJefes de mazmorra y regionales (normalizedCombat: true)Sí -- pero los jefes usan una línea base normalizada separada para un balance de mazmorra consistentenormalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier
EscaladoElites naturales del mundo superior y jefes de evento (scaledCombat: true o config global)No -- el jefe se simula al nivel del jugadorscaledDamageToEliteMultiplier / scaledDamageToPlayerMultiplier

La distinción clave: con el combate normalizado, un jefe de nivel 50 es más difícil que un jefe de nivel 10. Con el combate escalado, ambos se sienten como peleas del mismo nivel porque el sistema finge que el jefe tiene el nivel que tenga el jugador.

Cómo Funciona

Daño (Jefe a Jugador)

Cuando un jefe de combate escalado daña a un jugador, la fórmula de daño establece el nivel del jefe igual al nivel de habilidad de armadura del jugador:

mobLevel = armorSkillLevel  (instead of the boss's actual level)

Esto significa que el ajuste de habilidad se vuelve 1.0 (ya que bossLevel - armorSkillLevel = 0), y el daño depende enteramente del equipo y la habilidad de armadura del jugador -- no del nivel almacenado del mob. El resto de la fórmula (daño base, ajuste de equipo, pociones, etc.) funciona exactamente igual que se describe en las secciones anteriores.

Daño (Jugador a Jefe)

Cuando un jugador ataca a un jefe de combate escalado, la fórmula:

  1. Simula el jefe al nivel de habilidad de arma del jugador -- trata temporalmente al mob como si fuera del mismo nivel que la habilidad de arma del jugador.
  2. Ejecuta la fórmula de daño estándar contra ese nivel simulado, produciendo un resultado de "daño contra un mob del mismo nivel".
  3. Reescala al HP real del jefe -- convierte el daño de la fórmula de un porcentaje del HP del mob simulado al mismo porcentaje del conjunto de HP real del jefe.
simulatedMobLevel = playerWeaponSkillLevel
formulaDamage = playerToEliteDamageFormula(player, eliteEntity at simulatedMobLevel)
damagePercentage = formulaDamage / simulatedMobHP
actualDamage = damagePercentage * actualBossMaxHP

Esto significa que un jugador con el equipo adecuado siempre mata a un jefe de combate escalado en el mismo número de golpes relativo al arma, independientemente del nivel con el que esté almacenado el jefe. Para healthMultiplier: 1.0, la referencia es aproximadamente 3 golpes de espada; otras familias de armas siguen el factor de velocidad de ataque descrito más arriba.

Botín y Recompensas

Para los mobs de combate escalado, las recompensas de botín se basan en el nivel de combate del jugador en lugar del nivel del mob. Esto significa que un jugador de nivel alto matando a un elite escalado del mundo superior recibe botín apropiado a su progresión, mientras que un jugador de nivel bajo matando al mismo mob recibe botín de nivel apropiadamente más bajo.

Visualización del Nivel

Las entidades de combate escalado muestran un símbolo en lugar de un nivel numérico en su placa de nombre, ya que su nivel real es irrelevante para el jugador:

  • Entidades escaladas estándar (healthMultiplier 1.0 o inferior): muestra un símbolo de espada (por defecto: 「⚔」)
  • Entidades escaladas de alta amenaza (healthMultiplier superior a 1.0): muestra un símbolo de calavera (por defecto: )

Estos símbolos se pueden personalizar en MobCombatSettings.yml mediante scaledStandardLevelSymbol y scaledHighThreatLevelSymbol.

Activar el Combate Escalado

Para Todos los Elites Naturales (Config Global)

En MobCombatSettings.yml:

useScaledCombatForNaturalElites: true

Esto está activado por defecto en EliteMobs 10. Cuando está activado, todos los elite mobs generados naturalmente en el mundo superior usan el combate escalado automáticamente. Los jefes de mazmorra que usan normalizedCombat no se ven afectados por este ajuste.

Para Jefes Personalizados Individuales

En un archivo de configuración de Jefe Personalizado:

scaledCombat: true

Esto fuerza a un jefe personalizado específico a usar el combate escalado independientemente del ajuste global. Útil para jefes de evento o encuentros personalizados del mundo superior que deberían sentirse igualmente justos para todos los jugadores.

Nota: Si un jefe tiene normalizedCombat: true (o es un jefe regional/instanciado con la normalización activada globalmente), el combate normalizado tiene prioridad y el jefe no usará el combate escalado -- a menos que se establezca explícitamente scaledCombat: true en el archivo del jefe, en cuyo caso gana el combate escalado.

Claves de Configuración

Las siguientes claves de MobCombatSettings.yml controlan el comportamiento del combate escalado:

KeyDefaultDescription
useScaledCombatForNaturalElitestrueActivar el combate escalado para todos los elites generados naturalmente
scaledDamageToEliteMultiplier1.0Multiplicador global del daño del jugador a los jefes de combate escalado
scaledDamageToPlayerMultiplier1.0Multiplicador global del daño de los jefes de combate escalado a los jugadores
scaledStandardLevelSymbol「⚔」Símbolo mostrado en la placa de nombre para las entidades escaladas estándar
scaledHighThreatLevelSymbolSímbolo mostrado para las entidades escaladas con healthMultiplier superior a 1.0
useRecommendedHealthScalingtrueUsar el escalado de salud exponencial de EliteMobs 10 para los elites naturales (false = valores lineales heredados, ver más abajo)

Cuándo Usar Cada Modo de Combate

  • Combate normalizado (normalizedCombat: true): Para mazmorras, instancias y jefes regionales donde quieres un control preciso sobre la dificultad y el jefe tiene un nivel fijo que se espera que los jugadores igualen.
  • Combate escalado (scaledCombat: true o ajuste global): Para contenido del mundo superior, jefes de evento y cualquier encuentro donde los jugadores de todos los niveles deberían tener la misma experiencia.
  • Combate estándar (ningún flag): Para mobs donde el nivel bruto debería determinar directamente la dificultad, como los elites escalados por distancia cerca del spawn.

Escalado de Salud Heredado (useRecommendedHealthScaling: false)

Cuando useRecommendedHealthScaling se establece en false en MobCombatSettings.yml, los elite mobs naturales (no los jefes de mazmorra o regionales) usan una fórmula heredada simplificada en lugar del escalado exponencial:

baseDamage = level * 2
mobHealth = baseDamage * 3 (TARGET_HITS_TO_KILL_MOB)

Esto produce números de HP y daño mucho más pequeños, más cercanos al comportamiento de EliteMobs 9. Este ajuste existe por compatibilidad hacia atrás con servidores que construyeron integraciones en torno a los números de combate más antiguos de EliteMobs. No se recomienda porque hace que la progresión del jugador se sienta más plana. Este ajuste no afecta al combate normalizado de jefes regionales.

Usar estos datos para mazmorras

NOTA: ¡ESTO ASUME QUE ESTÁS USANDO LOS VALORES DE normalizedCombat! Esos valores se hicieron específicamente para balancear mazmorras más fácilmente.

Parte de la dificultad de un jefe es hacer que tenga la salud y el daño apropiados para el encuentro. Sin embargo, ten en cuenta que esto es solo una parte de ello, y que los poderes son igual de importantes.

Lo siguiente se presenta en el formato correcto para el archivo del Jefe Personalizado.

Los cálculos rápidos y fáciles

Con el sistema de escalado exponencial, healthMultiplier y damageMultiplier escalan directamente los valores base:

  1. Un healthMultiplier de 1.0 significa que el jefe necesita aproximadamente 3 golpes de espada para ser matado por un jugador del mismo nivel. Otras armas cuerpo a cuerpo varían según el factor de velocidad de ataque: las armas de ráfaga amortiguada como las hachas, mazas y tridentes cuerpo a cuerpo necesitan menos golpes que las espadas, mientras que las azadas necesitan más golpes porque conservan el antiguo factor de arma rápida. Un multiplicador de 2.0 duplica la salud, 0.5 la reduce a la mitad, y así sucesivamente.

  2. Un damageMultiplier de 1.0 significa que el jefe mata a un jugador del mismo nivel con el equipo adecuado en aproximadamente 5 golpes. Los multiplicadores más altos hacen al jefe más letal, los más bajos lo hacen más seguro.

Como el escalado es exponencial, estos recuentos de golpes relativos al arma se mantienen consistentes independientemente del nivel del jefe -- un jefe de nivel 10 con healthMultiplier: 2.0 necesita el mismo número de golpes relativos a la espada que un jefe de nivel 80 con healthMultiplier: 2.0 cuando lo pelea un jugador del mismo nivel.

Ten en cuenta que los jugadores tienden a priorizar las armas, y a menudo acaban con una armadura mucho peor que sus armas. A menos que diseñes tipos de arenas muy específicos con combate a distancia, probablemente no quieras infligir mucho daño por golpe. ¡Haz pruebas de juego con tu contenido!

Crear un mob de mazmorra promedio

Con el escalado de normalizedCombat, puedes aplicar una configuración muy minimalista:

normalizedCombat: true
healthMultiplier: 1.0 #~3 golpes de espada para matarlo
damageMultiplier: 1.0 #sobrevive a ~5 golpes

Nota: como 1.0 es el valor predeterminado, esto significa que también puedes simplemente no definir nada.

Crear grupos de basura (trash packs)

Los grupos de basura son numerosos pero no muy peligrosos:

normalizedCombat: true
healthMultiplier: 0.7 #~2 golpes de espada para matarlo
damageMultiplier: 0.5 #sobrevive a ~10 golpes

Crear refuerzos

Los refuerzos deberían morir muy fácilmente, pero suponer un peligro en cuanto a daño (estos valores se recomiendan para 4+ entidades cuerpo a cuerpo, el uso real puede variar):

normalizedCombat: true
healthMultiplier: 0.25 #~1 golpe de espada para matarlo
damageMultiplier: 0.6 #sobrevive a ~8 golpes

Crear minijefes

Los minijefes deberían mantenerse firmes y suponer un desafío de mecánicas para los jugadores. Debería ser una prueba de habilidad que dure un rato, pero no algo extremadamente letal:

normalizedCombat: true
healthMultiplier: 3.0 #~10 golpes de espada para matarlo
damageMultiplier: 1.2 #sobrevive a ~4 golpes

Crear jefes

Los jefes son un verdadero desafío, la culminación de una acumulación en una mazmorra y una verdadera prueba de habilidad con todo en juego. Los encuentros deberían ser largos y la muerte debería ser una amenaza presente.

normalizedCombat: true
healthMultiplier: 7.0 #~23 golpes de espada para matarlo
damageMultiplier: 1.4 #sobrevive a ~3.5 golpes

Crear Jefes de Mundo

Los jefes de mundo son peligrosos, pero sobre todo tienen mucha salud e invocan muchos refuerzos / tienen muchos ataques de área de efecto. Estos están pensados para que los peleen grupos grandes de jugadores durante la mayor cantidad de tiempo que debería durar un encuentro de elite. No son muy letales, pero tienen muchas mecánicas que pueden abrumar a los jugadores poco preparados.

normalizedCombat: true
healthMultiplier: 40.0 #~120 golpes de espada para matarlo
damageMultiplier: 1.5 #sobrevive a ~3 golpes

Estos son solo valores recomendados aproximados y cualquier valor final debería ajustarse en torno a los propios encuentros.