Sistema de habilidades
EliteMobs utiliza un sistema de progresión basado en habilidades en el que los jugadores suben de nivel luchando contra mobs élite. En lugar de un único nivel global, los jugadores desarrollan habilidades de armas individuales y una habilidad de armadura que, juntas, determinan su poder general.
Hay 11 tipos de habilidades:
| Habilidad | Arma | Notas |
|---|---|---|
| Espadas | Cualquier _SWORD | |
| Hachas | Cualquier _AXE | |
| Arcos | BOW | |
| Ballestas | CROSSBOW | |
| Tridentes | TRIDENT | |
| Azadas (Guadañas) | Cualquier _HOE | |
| Mazas | MACE | Requiere Minecraft 1.21+ |
| Lanzas | Cualquier _SPEAR | Requiere Minecraft 1.21.11+ (con paquete de recursos) |
| Bastones | experimental_arcane_staff | |
| Varitas | experimental_arcane_wand | |
| Armadura | Cascos, petos, grebas, botas | Sube de nivel pasivamente |
Las habilidades suben de nivel al usar el arma asociada para matar mobs élite. Tu Nivel de Combate -- calculado a partir de tus habilidades -- determina a qué contenido puedes acceder, qué equipamiento puedes equipar y qué dificultad de mobs aparece a tu alrededor.
Cómo suben de nivel las habilidades
Cuando matas a un mob élite, ganas XP según el nivel del mob. La XP se distribuye de la siguiente manera:
- La XP de armas se reparte según la contribución de daño entre las habilidades registradas al golpear o lanzar proyectiles. Cambiar de arma al morir el mob no redirige la XP.
- La XP de armadura se concede automáticamente con un multiplicador de 1/3 sobre tu parte de XP. Puede superar una habilidad de arma individual si utilizas varios tipos.
- Combates en grupo: Cuando varios jugadores dañan al mismo élite, la XP se reparte proporcionalmente a la contribución de daño de cada uno. Si causaste el 60% del daño, recibes el 60% de la XP base.
XP base de los mobs
La XP base obtenida al matar a un mob es:
mob_xp = mob_level ^ 2
| Nivel del mob | XP obtenida |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
Multiplicador de XP de jefe
Los mobs más duros valen más. La XP base de arriba se multiplica por un factor derivado del healthMultiplier y el damageMultiplier del mob:
bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)
El componente de HP usa un exponente sublineal (0.6) para que las peleas más largas paguen más sin hacer que los jefes con mucha salud sean desproporcionadamente rentables de farmear. El componente de daño está muy amortiguado, porque incluso pequeños aumentos de daño suben mucho la dificultad y una recompensa lineal empujaría a los jugadores hacia objetivos suicidas.
| healthMultiplier | damageMultiplier | Multiplicador de XP |
|---|---|---|
| 1.0 | 1.0 | 1.00x |
| 3.0 (minijefe) | 1.2 | 1.99x |
| 7.0 (jefe) | 1.4 | 3.41x |
| 40.0 (jefe de mundo) | 1.5 | 9.83x |
El orden completo de operaciones al matar es: nivel efectivo del mob (tras los topes anti-exploit de abajo) → XP base → multiplicador de jefe → reparto según la contribución de daño → XP de arma y XP de armadura.
Protecciones anti-exploit
Las tres se configuran en AntiExploit.yml y se omiten por completo cuando enableFarmingProtection es false. Consulta Protección contra farmeo para la tabla de configuración completa.
- Mobs de nivel bajo (por habilidad): Cada habilidad de arma o armadura solo gana XP si el mob está como máximo
farmingProtectionLevelDifferenceniveles por debajo del nivel de esa habilidad concreta (por defecto15). Esta comprobación usa el nivel individual de la habilidad, no el nivel de combate, y se omite por completo en el combate escalado, donde el mob se normaliza al jugador y no tiene sentido considerarlo de nivel demasiado bajo. - Mobs de nivel alto: La XP de habilidad utiliza un nivel efectivo de recompensa limitado a
combat_level + farmingProtectionLevelDifference(por defecto15). El mismo límite se aplica al botín de élites naturales; el botín de jefes personalizados no utiliza este límite de nivel de la protección contra el farmeo. Los demás requisitos para recibir XP siguen aplicándose. - Límite de farmeo de élites naturales: Las muertes de élites naturales (que no son jefes personalizados) se cuentan en una ventana móvil de
farmingProtectionMinutesde duración (por defecto30). SuperarfarmingProtectionKillsmuertes (por defecto20) dentro de esa ventana te bloquea las recompensas de élites naturales durante una ventana completa. Se te avisa por chat cuando empieza el bloqueo y de nuevo cuando se levanta. Los jefes personalizados están exentos.
Progresión de XP
La XP necesaria para avanzar de tu nivel actual al siguiente sigue esta fórmula:
Niveles 1-100:
xp_to_next_level = 8.5 * current_level ^ 3
Niveles superiores a 100 (límite blando):
xp_to_next_level = 8.5 * current_level ^ 3 * (1 + ((current_level - 100) ^ 2 / 100))
El multiplicador del límite blando es 1.0 en el nivel 100 (sin penalización extra) y crece de forma cuadrática. Para el nivel 150, el multiplicador alcanza 26x, lo que hace que el progreso adicional sea extremadamente difícil.
Tabla de XP por nivel
La tabla siguiente muestra la XP necesaria para pasar de un nivel dado al siguiente, y aproximadamente cuántas muertes de mobs del mismo nivel requiere (habilidad de arma, no de armadura):
| Nivel | XP al siguiente nivel | Muertes de mobs del mismo nivel |
|---|---|---|
| 10 | 8,500 | 85 |
| 25 | 132,812 | 213 |
| 50 | 1,062,500 | 425 |
| 75 | 3,585,937 | 638 |
| 100 | 8,500,000 | 850 |
La armadura gana XP a 1/3 del ritmo del arma, por lo que se necesitan aproximadamente 3 veces más muertes para subir de nivel la armadura en comparación con las cifras anteriores. En el nivel 50, eso significa unas 1,275 muertes del mismo nivel solo para la armadura.
Nivel de combate
Tu Nivel de Combate es la medida general de tu poder. Se calcula así:
combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3
El resultado se redondea hacia abajo (división entera).
El Nivel de Combate determina:
- El nivel de los mobs élite que aparecen a tu alrededor
- Qué equipamiento puedes equipar (el nivel del equipo debe ser igual o inferior a tu nivel de habilidad correspondiente)
- A qué mazmorras y contenido instanciado puedes acceder
- La elegibilidad para XP y botín (las comprobaciones anti-exploit usan el nivel de combate)
Visualización del nivel de combate
Tu nivel de combate se muestra como un número flotante sobre tu cabeza, visible para otros jugadores. Esto usa visualizaciones de texto basadas en paquetes y se actualiza automáticamente cada vez que cambian tus habilidades. El formato de la visualización es configurable (por defecto: Combat Lv. X).
Barra de XP
Cuando ganas XP de habilidad, aparece una barra de jefe animada que muestra tu progreso hacia el siguiente nivel. La barra incluye:
- Una animación suave que va subiendo a medida que ganas XP
- Un color diferente por tipo de habilidad (p. ej., rojo para Espadas, verde para Arcos, azul para Armadura)
- Efectos especiales de partículas y sonido al subir de nivel
- Se oculta automáticamente tras 5 segundos de inactividad
Restricciones de equipamiento
El equipamiento de EliteMobs tiene requisitos de nivel ligados al sistema de habilidades. Para equipar un objeto élite, tu nivel de habilidad para ese tipo de arma o armadura debe ser igual o superior al nivel del objeto.
Excepción: Los objetos de nivel 20 o inferior los puede equipar cualquiera independientemente de su nivel de habilidad. Esto garantiza que los jugadores nuevos puedan usar libremente el equipo de las primeras etapas sin quedar bloqueados.
Si intentas equipar un objeto por encima de tu nivel de habilidad, recibirás un mensaje de advertencia y el objeto no proporcionará ninguna bonificación élite.
Bonificaciones de habilidad
A medida que subes de nivel tus habilidades, desbloqueas habilidades de combate especiales en cuatro niveles. Cada nivel desbloquea un conjunto de bonificaciones para esa habilidad, no una sola:
| Nivel | Se desbloquea en |
|---|---|
| 1 | Nivel 10 |
| 2 | Nivel 25 |
| 3 | Nivel 50 |
| 4 | Nivel 75 |
Desbloquear un nivel no otorga una ranura. Puedes tener hasta 3 bonificaciones activas por tipo de arma o armadura a la vez, elegidas entre todo lo que hayas desbloqueado. Las bonificaciones de habilidad se gestionan a través del menú /em o visitando el NPC de Bonificaciones de Habilidad en el Gremio de Aventureros.
Los archivos skillbonuses/*.yml controlan la presentación (nombre visible, descripción, nivel de desbloqueo, tipo de bonificación, icono de menú y plantillas de lore) y parte del equilibrio. El plugin lee baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks y stackBonus cuando una bonificación consulta su configuración. Las bonificaciones que no leen esas claves usan constantes fijadas en el código. Consulta Bonificaciones de habilidad para saber qué valores toma cada bonificación de la configuración.
Consulta Bonificaciones de habilidad para ver la lista completa de las 84 bonificaciones y lo que hacen.
Notificaciones e interfaz
El sistema de habilidades proporciona varias formas de feedback:
- Subida de nivel: Mensaje de título, sonido de desafío completado y estallido de partículas de tótem de la inmortalidad en cada subida de nivel.
- Hitos: Solo se envía un anuncio a todo el servidor cuando un jugador alcanza un nivel hito (cada 5 niveles: 5, 10, 15, ...). Las subidas de nivel normales no se anuncian. El anuncio se puede desactivar en
dungeons.yml. - Visualización del nivel de combate: Número flotante sobre tu cabeza, visible para otros jugadores. Se actualiza automáticamente al subir de nivel.
- Barra de XP: Barra de jefe animada que muestra el progreso de la XP de habilidad durante el combate.
- Mensajes de ganancia de XP: Mensajes opcionales de XP por muerte (desactivados por defecto, ya que pueden saturar el chat).
La mayoría de lo anterior se configura en skills.yml; el anuncio de subida de nivel hito y su mensaje viven en dungeons.yml.
Comandos de administrador
| Comando | Permiso | Descripción |
|---|---|---|
/em skill check <player> | elitemobs.skill.check | Ver los niveles de habilidad de un jugador, el progreso de XP y los porcentajes |
/em skill set <player> <skillType> <level> | elitemobs.skill.admin | Fijar una habilidad específica a un nivel determinado |
/em skill setAll <player> <level> | elitemobs.skill.admin | Fijar todas las habilidades al mismo nivel |
/em debug combat start | elitemobs.admin | Iniciar las pruebas automatizadas del sistema de combate |
/em debug combat test <type> | elitemobs.admin | Probar un tipo de arma específico (p. ej., espadas, arcos) |
/em debug combat results | elitemobs.admin | Ver los resultados de la última prueba de combate |
/em debug combat cancel | elitemobs.admin | Cancelar una prueba de combate activa |
El argumento skillType de /em skill set acepta: ARMOR, SWORDS, AXES, BOWS, CROSSBOWS, TRIDENTS, HOES, MACES, SPEARS, STAVES, WANDS.
Configuración del servidor
El sistema de habilidades se configura en skills.yml. Ajustes clave:
| Ajuste | Por defecto | Descripción |
|---|---|---|
skillSystemEnabled | true | Activa o desactiva todo el sistema de habilidades |
armorSkillHealthBonusEnabled | true | Si la habilidad de Armadura otorga salud máxima adicional (+1 corazón por nivel por encima de 1) |
scalePlayerHealthDisplayToVanilla | false | Mantiene los PV máximos de EliteMobs, pero escala visualmente el HUD del jugador de vuelta a los 10 corazones vanilla |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | Cuando la bonificación de salud de la armadura está desactivada, fuerza a los jugadores a los 20 PV máximos vanilla al conectarse |
skillWorldExclusions | (vacío) | Lista de nombres de mundos donde el sistema de habilidades está inactivo. Los jugadores en estos mundos no reciben XP de habilidad, bonificación de salud de armadura, barras de XP ni visualización del nivel de combate. Útil para mundos de eventos donde todos deben estar en igualdad. La coincidencia no distingue mayúsculas de minúsculas |
skillsMenuTitle | &5&lYour Skills | Título del menú de habilidades |
showCombatLevelDisplay | true | Mostrar el número de nivel de combate sobre los jugadores |
showXPBar | true | Mostrar la barra animada de progreso de XP durante el combate |
skillBarTitleFormat | &6$skillName &7Lv.$level$xpText | Formato del título de la barra de XP |
skillLevelUpTitleFormat | &e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦ | Formato del título de la barra de jefe al subir de nivel |
combatLevelFormat | &6&lCombat Lv. $level | Formato de la visualización del nivel de combate |
Para la referencia completa de configuración, consulta la página de Configuración de EliteMobs.
Combate experimental
Las compilaciones actuales incluyen un sistema experimental de clases independiente. En plugins/EliteMobs/Experimental Combat.yml, enabled es true por defecto; usa false y recarga EliteMobs para desactivarlo. Las clases y su equilibrio están fijados en el plugin durante esta fase. Comprueba la versión instalada y la configuración generada antes de aplicar esta sección a un servidor antiguo.
/em class abre el perfil, /em class info <class> explica una forma y /em class select <class> selecciona una forma desbloqueada. Requieren elitemobs.command. Las clases base son paladin, berserker, ranger, cleric y spellcaster. Spellcaster requiere FreeMinecraftModels compatible con su bastón y varita incluidos; permanece bloqueado si faltan. Bastones y varitas usan identidades de objetos registradas: un palo, lanza o vara de blaze normal no es automáticamente un arma mágica.
/em class input java_hotbar_layer usa F seguido de 1/2/3 para Mobility, Signature y Utility. /em class input focus_item selecciona el control alternativo con un objeto Focus, obtenido con /em class focus. Los controles están activos en contenido de combate EliteMobs. allowClassAbilitiesOutsideEliteMobsWorlds vale true por defecto y permite activarlos fuera durante la sesión pulsando F dos veces mientras te agachas.
Con el módulo activo, GUILD_GREETER abre Guild Training; desactivado, abre la selección de bonificaciones de armas. La progresión de clases es independiente de armas y armadura. El daño de habilidades de clase sin identidad de arma no otorga XP de armas.