Système de dégâts
Ceci est une analyse complète de la façon dont la santé / les dégâts évoluent dans EliteMobs. Cela devrait servir de référence lors de la conception de donjons.
Cette page porte sur les attaques ordinaires impliquant des boss personnalisés. Les élites naturels utilisent les mêmes courbes de base, avec les options de combat mis à l'échelle et de santé héritée décrites plus bas. Les dégâts bruts des scripts, les armes magiques et les capacités de classe peuvent suivre d'autres calculs ; voir Dégâts personnalisés et absorption.
Avant de commencer !
Vous n'avez pas besoin de lire tout ceci si vous voulez seulement faire des ajustements rapides. Passez à la section « Utiliser ces données pour les donjons » pour voir des calculs rapides très simplifiés et une série de paramètres recommandés préfabriqués !
Mise à l'échelle générale
EliteMobs combine des ajustements exponentiels de compétence avec des modificateurs d'équipement. La formule de santé des boss sans plafonnement double tous les 5 niveaux, tandis que les ajustements offensifs et défensifs de compétence doublent tous les 7,5 niveaux de différence. La santé des boss et les dégâts de base des joueurs cessent de croître avec le seul niveau du mob au plafond de santé configuré de Minecraft. Ces courbes ne garantissent donc pas des combats identiques à tous les niveaux.
La puissance du joueur combine deux couches calculées indépendamment :
- Niveau de Compétence d'Arme — gagné en tuant des Elite Mobs avec un type d'arme spécifique (épées, haches, arcs, arbalètes, tridents, houes, masses d'armes, lances, bâtons ou baguettes).
- Niveau d'Objet — le niveau élite de l'arme ou de la pièce d'armure que le joueur a équipée.
Les joueurs gagnent aussi de l'XP d'Armure lors des morts d'élites admissibles, à partir d'un tiers de leur part d'XP de base avant ses propres modificateurs et arrondis. Subir des coups ne suffit pas à gagner cette XP. Armure accorde +1 cœur par niveau au-dessus de 1 si les réglages de santé et les règles du monde le permettent, et détermine l'ajustement défensif face aux boss.
Compétences d'arme
L’XP d’arme est répartie selon les dégâts entre les compétences enregistrées au moment des coups ou du lancement des projectiles. Changer d’arme à la mort du mob ne redirige pas l’XP.
Les compétences d'arme disponibles sont :
| Compétence | Arme |
|---|---|
| Épées | Tous les types d'épées |
| Haches | Tous les types de haches |
| Arcs | Arc |
| Arbalètes | Arbalète |
| Tridents | Trident |
| Houes | Tous les types de houes |
| Masses d'Armes | Masse d'armes (1.21+) |
| Lances | Tous les types de lances (1.21.11+) |
| Bâtons | Armes à modèle personnalisé portant weaponType: STAVES |
| Baguettes | Armes à modèle personnalisé portant weaponType: WANDS |
| Armure | Compétence défensive progressant avec les morts d'élites admissibles |
La valeur initiale d'XP est mobLevel^2, modifiée par la santé/les dégâts du boss, la contribution, les limites de récompense par niveau et les avantages d'XP. Le niveau 100 est un seuil progressif, pas un maximum : l'XP requise continue d'augmenter. Voir Système de compétences.
Bonus de compétence
Les dix compétences d'armes et Armure disposent de bonus de compétence débloqués en montant de niveau. Le joueur choisit ceux qu'il active. Ils se répartissent en cinq types :
- Passif — toujours actif lorsqu'équipé (par ex., augmentation de dégâts forfaitaire).
- Conditionnel — actif uniquement lorsqu'une condition spécifique est remplie (par ex., bonus de dégâts quand la cible est en dessous de 30 % de santé).
- Proc — déclenchement basé sur la chance lors d'événements spécifiques (par ex., chance de causer un saignement en frappant).
- Cumulatif — s'accumule au fil d'actions consécutives (par ex., les frappes consécutives augmentent les dégâts).
- Recharge — effet puissant avec une recharge interne (par ex., survivre à des dégâts mortels une fois toutes les 60 secondes).
Les bonus de compétence offensifs des compétences d'arme sont appliqués comme des multiplicateurs de dégâts additifs par-dessus les dégâts de base infligés aux boss. Les bonus de compétence défensifs de la compétence d'armure réduisent les dégâts entrants des boss par divers mécanismes (réduction forfaitaire, esquive, boucliers de dégâts, etc.).
Les joueurs peuvent avoir jusqu'à 3 bonus actifs par type d'arme ou d'armure. Comme toutes les courbes de cette page sont tracées sans eux, consultez Les bonus de compétence dans le pipeline de dégâts pour savoir comment ils se composent en dégâts réels avant d'utiliser ces chiffres pour équilibrer une rencontre.
Dégâts infligés par les boss personnalisés
Les dégâts des boss dans EliteMobs 10 utilisent trois couches multiplicatives sans pré-compensation. Le système est conçu pour qu'un joueur correctement équipé survive à environ 5 coups d'un contenu de même niveau.
La formule de dégâts pour les Boss Personnalisés est :
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 = source Strength/Weakness multiplier * player Resistance multiplier
8. finalDamage = max(scaledDamage, 1) * potionMultiplier * customBossDamageMultiplier * specialMultiplier * configMultiplier
9. capHealth = [Alpha] Advanced Combat System active ? max(1, actualMaxHealth - 30) : actualMaxHealth
10. finalDamage = min(finalDamage, capHealth - 1)
Les trois couches sont :
- Dégâts de base — combien de PV par coup le joueur est censé perdre (
playerMaxHealth / 5). - Ajustement de compétence — mise à l'échelle exponentielle à partir de la différence entre le niveau du boss et le niveau de la Compétence d'Armure du joueur.
- Ajustement d'équipement — réduction tenant compte du type de dégâts, basée sur l'armure équipée du joueur et les enchantements de protection (voir Système de Défense de l'Équipement ci-dessous).
Le plafond utilise la santé maximale réelle moins 1 en combat ordinaire. Avec [Alpha] Advanced Combat System actif, il retire d'abord ses 30 HP supplémentaires. Cette réserve augmente la santé sans augmenter les dégâts de base reçus. Le plafond intervient dans la formule, avant le blocage et les listeners. Les dégâts bruts personnalisés le contournent et un joueur blessé peut toujours mourir d'un coup.
playerMaxHealth
Avec les réglages de santé d'Armure par défaut, la base vaut 20 PV plus 2 par niveau au-dessus de 1. Le niveau 50 donne donc 118 PV avant les autres modificateurs. Le bonus peut être désactivé dans skills.yml et ne s'applique pas aux mondes exclus. La base de 20 PV est fixe, sans réglage dans ce fichier. Lorsque [Alpha] Advanced Combat System est activé, ses règles de mondes de combat gérés déterminent aussi où le bonus s'applique.
baseDamage
Les dégâts de base sont simplement playerMaxHealth / 5.0. C'est la quantité de dégâts qu'un joueur correctement équipé et de même niveau est censé recevoir par coup. Contrairement à l'ancien système, il n'y a pas de pré-compensation — la valeur de base est le dégât cible, et non une valeur brute gonflée.
skillAdjustment
L'ajustement de compétence utilise une mise à l'échelle exponentielle pour rendre la différence de niveau entre le boss et la Compétence d'Armure du joueur significative :
skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)
Chaque écart de 7,5 niveaux double ou divise par deux les dégâts du boss. Cette courbe est plus lente que sa santé non plafonnée, qui double tous les 5 niveaux. L'ajustement d'équipement ajoute son propre effet.
| Différence de Niveau | Ajustement de Compétence | Nombre Approximatif de Coups pour Tuer (équipement adapté) |
|---|---|---|
| Même niveau (0) | 1.0x | ~5 coups |
| +5 niveaux | ~1.6x | ~3 coups |
| +10 niveaux | ~2.5x | ~2 coups |
| +15 niveaux | 4.0x | ~1,25 coups |
Défense de l'équipement
Le système de défense de l'équipement remplace l'ancienne rampe d'équipement. Au lieu de supposer un multiplicateur de pré-compensation forfaitaire basé sur le niveau de compétence, le système lit désormais l'équipement réellement équipé du joueur et calcule une réduction d'équipement tenant compte du type de dégâts.
Types de dégâts
Le système classe les dégâts entrants en cinq catégories. Le type de dégâts détermine quels enchantements de protection contribuent au score d'équipement :
| Type de Dégâts | Causes de l'Événement | Enchantements de Protection Utilisés |
|---|---|---|
| MELEE | Attaque directe, attaque balayée | Protection uniquement |
| PROJECTILE | Flèches, boules de feu | Protection + Protection contre les Projectiles |
| EXPLOSION | Explosion de creeper, de ghast | Protection + Protection contre les Explosions |
| FIRE | Feu, tick de feu | Protection + Protection contre le Feu |
| OTHER | Tout le reste | Protection uniquement |
Score d'équipement
Le score d'équipement combine le niveau d'armure et les bonus d'enchantement en une seule valeur qui peut être comparée au niveau du mob attaquant :
gearScore = (sum of armorLevel for 4 armor slots) / 4
+ (sum of enchantBonus for all 6 slots) / 4
Le niveau d'armure est déterminé par objet :
- Les objets élites utilisent
materialTier + 4 * eliteDefenseAttribute. Une armure générée normalement correspond au niveau prévu, mais modifier seulement son niveau stocké ne change pas cette défense. Les paliers élites sont 3 pour cuir/or/tortue, 5 pour mailles, 6 pour fer, 7 pour diamant et 8 pour netherite. Ils diffèrent de la table vanilla ci-dessous. - Les objets vanilla utilisent une recherche basée sur le matériau :
| Matériau | Niveau d'Armure |
|---|---|
| Cuir | 1 |
| Or | 2 |
| Cotte de mailles | 3 |
| Fer | 4 |
| Carapace de tortue | 4 |
| Diamant | 5 |
| Netherite | 7 |
| Cuivre (versions de serveur qui le proposent) | 2 |
Seuls les 4 emplacements d'armure (casque, plastron, jambières, bottes) contribuent au niveau d'armure.
Le bonus d'enchantement convertit les niveaux d'enchantement de protection en unités équivalentes au niveau d'armure :
enchantBonus = (general Protection level + type-specific Protection level) * (1/3)
Les 6 emplacements d'équipement (4 armures + main principale + main secondaire) contribuent au bonus d'enchantement. Cela signifie que les boucliers ou les armes avec des enchantements de Protection fournissent une défense supplémentaire. La normalisation /4 sur la somme signifie qu'avoir des enchantements sur les 6 emplacements donne jusqu'à 50 % de contribution d'enchantement de plus que de les avoir uniquement sur 4 pièces d'armure.
Exemple détaillé : équipement adapté Lv25 + Prot IV contre Lv25 (mêlée)
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 (material tier + 4 * elite defense attribute)
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
Exemple détaillé : diamant vanilla Lv1 contre squelette Lv5 (projectile)
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 l'armure de diamant avait également Protection contre les Projectiles IV, chaque pièce gagnerait un bonus d'enchantement de 4 * (1/3) = 1.333. Le score d'équipement monterait à 5.0 + (1.333*4)/4 = 6.333, augmentant la réduction à 53,3 % et améliorant sensiblement la survie contre les flèches.
Courbe de réduction de l'équipement
La réduction de l'équipement utilise une courbe linéaire en deux parties qui effectue une transition au point où le score d'équipement est égal au niveau du mob :
En dessous de l'adéquation (gearScore est inférieur ou égal à mobLevel) :
reduction = 0.50 * (gearScore / mobLevel)
Évolue linéairement de 0 % (nu) à 50 % (adapté). La pente dépend du niveau du mob — contre un mob de niveau 5, chaque niveau d'équipement donne 10 % de réduction, tandis que contre un mob de niveau 50, chacun en donne 1 %. Cela rend naturellement l'armure vanilla de bas niveau efficace contre les mobs de bas niveau mais sans pertinence contre ceux de haut niveau.
Au-dessus de l'adéquation (gearScore est supérieur à mobLevel) :
reduction = 0.50 + (gearScore - mobLevel) * 0.025
2,5 % forfaitaire par niveau d'équipement au-dessus du mob. Atteint le plafond strict de 75 % à +10 niveaux d'équipement au-dessus du mob.
L'ajustement d'équipement convertit la réduction en un multiplicateur de dégâts :
gearAdjustment = 2.0 * (1 - gearReduction)
| Situation d'Équipement | Réduction d'Équipement | Ajustement d'Équipement | Coups pour Tuer (même niveau de compétence) |
|---|---|---|---|
| Nu (aucun équipement) | 0 % | 2.0 | ~2,5 |
| Équipement à moitié adapté | 25 % | 1.5 | ~3,3 |
| Équipement adapté (gearScore = mobLevel) | 50 % | 1.0 | ~5,0 |
| +4 niveaux au-dessus du mob | 60 % | 0.8 | ~6,25 |
| +10 niveaux au-dessus du mob (plafond) | 75 % | 0.5 | ~10,0 |
Tableau de scénarios
Les nombres de coups suivants supposent une santé complète avec la base ordinaire de 20 PV plus le bonus de compétence d'armure, les multiplicateurs de dégâts par défaut et aucune santé supplémentaire, potion ou bonus de compétence. [Alpha] Advanced Combat System ajoute 30 HP sans augmenter les dégâts de base reçus : les joueurs dans ce mode peuvent donc subir davantage de coups.
| Scénario | Aj. Compétence | Réd. Équip. | Aj. Équip. | Coups |
|---|---|---|---|---|
| Lv1 nu contre Lv1 | 1.0 | 0 % | 2.0 | 2,5 |
| Lv1 nu contre Lv5 | 1.45 | 0 % | 2.0 | ~1,7 |
| Diamant vanilla Lv1 contre Lv5 | 1.45 | 50 % | 1.0 | ~3,5 |
| Adapté Lv25 contre Lv25 | 1.0 | 50 % | 1.0 | 5,0 |
| Adapté+ProtIV Lv25 contre Lv25 | 1.0 | 53,3 % | 0.93 | 5,4 |
| Adapté Lv25 contre Lv30 | 1.59 | 41,7 % | 1.17 | 2,7 |
| Équipement optimal Lv25 contre Lv25 | 1.0 | 75 % | 0.50 | 10,0 |
| Adapté Lv50 contre Lv50 | 1.0 | 50 % | 1.0 | 5,0 |
Objectifs de conception clés :
- 5 coups à niveau adapté : Avec la santé ordinaire de référence ci-dessus, un joueur correctement équipé et en pleine santé est vaincu en environ 5 coups normaux d'un elite mob de même niveau.
- 2,5 coups nu — aucun équipement signifie le double de dégâts via l'ajustement d'équipement de 2.0. Incitation immédiate à équiper n'importe quelle armure.
- L'armure vanilla compte — un joueur de niveau 1 en armure de diamant survit à ~3,5 coups d'un mob de niveau 5 au lieu de ~1,7 nu.
- Les enchantements sont significatifs mais pas dominants — Protection IV sur les 4 pièces d'armure ajoute ~1,33 au score d'équipement, faisant passer la réduction de 50 % à 53,3 %. Notable (~8 % de survie en plus) mais pas déséquilibrant.
- Référence cohérente par niveau : Aux niveaux 25 et 50, le combat à niveau adapté vise environ 5 coups dans ces conditions. La santé supplémentaire d'[Alpha] Advanced Combat System change le nombre réel.
- Plafond d'équipement optimal à 10 coups — même avec le meilleur équipement possible (+10 niveaux au-dessus du mob), les joueurs subissent toujours des dégâts significatifs.
potionMultiplier défensif
Les dégâts entrants combinent Force/Faiblesse de l'élite attaquant avec Résistance du joueur. La partie Résistance est :
potionMultiplier = max(0, 1.0 - (resistanceAmplifier + 1) * resistanceDamageMultiplier)
La clé de configuration est resistanceDamageMultiplierV2 dans MobCombatSettings.yml (par défaut : 0.2). Cela correspond au comportement vanilla : Résistance I = 20 % de réduction, Résistance V = 100 % de réduction (immunisé).
customBossDamageMultiplier
C'est le multiplicateur de dégâts dans le fichier du Boss Personnalisé. Vaut 1 par défaut.
configMultiplier défensif
C'est le multiplicateur dans MobCombatSettings.yml. Pour le combat normalisé, il utilise normalizedDamageToPlayerMultiplier (par défaut 1.0). Pour le combat mis à l'échelle, il utilise scaledDamageToPlayerMultiplier (par défaut 1.0). Pour les mobs standards, il utilise damageToPlayerMultiplierV2 (par défaut 1.0).
specialMultiplier
Un pouvoir fournit ce multiplicateur pour un appel de dégâts précis. L'événement correspondant le consomme une seule fois ; les coups ultérieurs indépendants ou imbriqués ne l'héritent pas. Il vaut 1.0 par défaut.
Atténuation des dégâts d'explosion
Le creeper utilise la distance jusqu'à lui et son rayon d'explosion. La branche du ghast mesure la distance jusqu'au ghast, avec le rayon de sa boule de feu, et non jusqu'au point d'impact. Les deux utilisent max(0, 1 - distance / radius). La formule impose ensuite un minimum de 1 avant les autres multiplicateurs ; l'éloignement seul ne garantit donc pas des dégâts nuls.
Santé maximale des Boss Personnalisés
La formule de santé des boss sans plafonnement dans EliteMobs 10 double tous les 5 niveaux. La santé réelle est limitée par le plafond de Minecraft, appliqué avant et après healthMultiplier : ce doublement s'arrête donc lorsqu'un plafond de santé est atteint.
La formule de santé pour les Boss Personnalisés est :
baseHealth = min(2.1875 * 2^(bossLevel / 5), minecraftMaxHealth)
health = max(1, min(baseHealth * customBossHealthMultiplier, minecraftMaxHealth))
Mise à l'échelle exponentielle
La constante de base (2.1875) est réglée de sorte qu'un boss de niveau 25 ait environ 70 PV. Exemples de valeurs de santé (avant le plafond de santé maximale décrit plus bas) :
| Niveau du Boss | Santé selon la formule | Santé à +5 Niveaux |
|---|---|---|
| 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) |
Le plafond de santé maximale de Minecraft
Minecraft lui-même refuse d'accorder à une entité plus de santé que settings.attribute.maxHealth.max dans spigot.yml. EliteMobs lit cette valeur au démarrage et, si elle est inférieure à 2048, la relève à 2048 et enregistre le fichier. Appelons cette valeur MAX.
Le plafond est appliqué deux fois — une fois à la formule de niveau brute, puis de nouveau après application du healthMultiplier :
effectiveHealth = min( min(2.1875 * 2^(level / 5), MAX) * healthMultiplier, MAX )
Le plafonnement interne explique pourquoi même un healthMultiplier inférieur à 1.0 finit par cesser de progresser : la formule brute franchit 2048 au niveau 50 quel que soit le multiplicateur utilisé, et tout ce qui suit travaille ensuite à partir d'une valeur figée. Le plafonnement externe mord alors encore plus tôt pour les multiplicateurs supérieurs à 1.0.
Sur un serveur par défaut (MAX = 2048) :
| healthMultiplier | Usage typique | La santé cesse de croître au | Figée à |
|---|---|---|---|
| 0.25 | Renforts | Niveau 50 | 512 PV |
| 0.7 | Pack de trash | Niveau 50 | ~1 434 PV |
| 1.0 | Mob de donjon standard | Niveau 50 | 2 048 PV |
| 3.0 | Mini-boss | Niveau 42 | 2 048 PV |
| 7.0 | Boss | Niveau 36 | 2 048 PV |
| 40.0 | Boss de monde | Niveau 23 | 2 048 PV |
Au-delà de ces niveaux, la santé ne progresse plus : un boss de monde de niveau 60 et un de niveau 90 ont les mêmes PV. Le calcul final avertit lorsque la multiplication dépasse le plafond. Le plafonnement préalable de la santé de base est silencieux ; l'absence d'avertissement ne prouve donc pas que le plafond n'est pas atteint. Utilisez un healthMultiplier positif et fini ; une valeur invalide est remplacée par 1.0.
Si vous construisez du contenu au-dessus du niveau 35 environ avec de grandes valeurs de healthMultiplier, augmentez vous-même settings.attribute.maxHealth.max dans spigot.yml. Sinon, vos paliers de boss s'aplatissent les uns sur les autres — les valeurs de healthMultiplier recommandées plus loin sur cette page cessent de différencier les rencontres dès que toutes plafonnent au même nombre.
Les dégâts de base du joueur utilisent la santé de niveau plafonnée, divisée par 3. Ils cessent donc de croître avec le seul niveau du mob après le plafond interne. Les multiplicateurs d’armes, de compétences et autres restent applicables. Un healthMultiplier élevé perd son endurance supplémentaire au plafond final de santé.
customBossHealthMultiplier
C'est le multiplicateur dans le fichier du Boss Personnalisé. Vaut 1 par défaut.
Dégâts infligés aux boss personnalisés
Les dégâts du joueur utilisent des couches multiplicatives de mise à l'échelle exponentielle et linéaire pour maintenir un combat cohérent à travers les niveaux tout en laissant les différentes familles d'armes se ressentir différemment. La formule sépare la puissance du joueur en deux axes indépendants — le niveau de compétence d'arme (ajustement de compétence exponentiel) et le niveau d'objet de l'arme (ajustement d'arme linéaire) — afin que l'investissement en compétence et l'équipement contribuent tous deux à la puissance de combat.
Le changement important par rapport aux anciennes versions est que la vitesse d'attaque des armes de mêlée n'essaie plus de faire en sorte que chaque type d'arme ait un DPS théorique identique. Les épées restent le point de référence, tandis que les haches, les masses d'armes et les tridents de mêlée reçoivent une compensation de burst amortie. Les familles d'armes qui s'étaient déjà bien comportées aux tests, comme les houes et les lances, conservent l'ancien facteur de vitesse d'attaque.
Formule de dégâts
La formule complète de dégâts joueur-vers-élite est :
formulaDamage = baseDamage * attackSpeedFactor * skillAdjustment * weaponAdjustment * cooldownOrVelocity * sweepMultiplier * potionMultiplier * equipmentEnchantmentMultiplier * enchantmentMultiplier * arrowDamageMultiplier
finalDamage = roundToTwoDecimals(formulaDamage * damageModifier * combatMultiplier) * critMultiplier
damageAfterSkills = finalDamage * (1 + sum of every active skill bonus fraction)
Chaque composant est décrit ci-dessous. Les bonus s'appliquent dans un listener de priorité HIGH pendant l'événement de dégâts EliteMobs ; les listeners suivants peuvent encore modifier le résultat. Voir Bonus de compétence dans le calcul des dégâts.
baseDamage
Les dégâts de base par coup sont dérivés des PV normalisés du mob (à healthMultiplier=1.0) divisés par le nombre cible de coups pour tuer :
baseDamage = normalizedMobHP / 3.0
Ici normalizedMobHP = min(2.1875 * 2^(mobLevel / 5), minecraftMaxHealth), comme expliqué dans la section sur la santé maximale. La constante 3.0 (TARGET_HITS_TO_KILL_MOB) vise environ 3 coups d'épée entièrement chargés avec compétence et équipement adaptés, avant les autres modificateurs et arrondis.
Ces estimations supposent un équipement et des compétences adaptés ainsi qu’une marge sous le plafond final de santé. healthMultiplier: 2.0 double la santé de base seulement si le résultat tient sous ce plafond ; six coups d’épée ne sont pas garantis à chaque niveau.
attackSpeedFactor
C'est la couche de cadence de la vitesse d'attaque de mêlée. Elle part de l'ancien facteur legacy :
legacyFactor = 1.6 / weaponAttackSpeed
Il s'agit de la vitesse de l'arme calculée par EliteMobs ; l'attribut actuel du joueur sert séparément au temps de recharge. La référence de 1.6 est celle de l'épée. Le facteur final dépend de la famille d'armes :
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
Cela signifie que le système n'essaie pas de faire en sorte que chaque arme de mêlée ait un DPS identique. Les armes de burst lentes frappent toujours plus fort par coup, mais les haches, les masses d'armes et les tridents de mêlée ne reçoivent plus le multiplicateur de burst complet 1.6 / speed. Les houes et les lances restent intentionnellement sur l'ancien facteur car les tests ont montré que leur cadence était déjà acceptable.
Exemples à niveau de compétence et d'arme adaptés :
| Type d'Arme | Exemple de Vitesse d'Attaque | Facteur | Coups de la Formule contre healthMultiplier: 1.0 |
|---|---|---|---|
| Épée | 1.6 | 1.00x | 3.0 |
| Hache | 1.0 | 1.26x | ~2,4 |
| Masse d'armes | 0.6 | 1.63x | ~1,8 |
| Houe | 4.0 | 0.40x | 7,5 |
| Trident, mêlée | 1.1 | 1.21x | ~2,5 |
| Lance, exemple diamant | ~0.95 | ~1.68x | ~1,8 |
| Projectile arc/arbalète | N/A | 1.00x | la vélocité du projectile décide de la charge |
Pour les attaques à projectile, y compris les arcs, les arbalètes et les tridents lancés, le facteur de vitesse d'attaque de mêlée n'est pas appliqué. La charge/force du projectile est représentée par cooldownOrVelocity à la place.
Note : Les armes uniquement à distance (arcs, arbalètes) utilisées en mêlée sont traitées comme des frappes à mains nues — niveau d'arme 0 et niveau de compétence 1, avec une vitesse d'attaque par défaut de 4.0 (vitesse du poing). Cela les rend très faibles en mêlée, incitant les joueurs à les utiliser à distance.
skillAdjustment
Mise à l'échelle exponentielle à partir de la différence entre le niveau de compétence d'arme du joueur et le niveau du mob :
skillAdjustment = 2 ^ ((weaponSkillLevel - mobLevel) / 7.5)
Chaque différence de 7,5 niveaux double (ou divise par deux) les dégâts du joueur. Cela correspond au taux de mise à l'échelle de compétence défensive utilisé dans les dégâts boss-vers-joueur, produisant un combat symétrique.
| Différence de Compétence | Ajustement de Compétence | Effet |
|---|---|---|
| -15 | 0.25x | Quart de dégâts |
| -7,5 | 0.50x | Moitié de dégâts |
| 0 (adapté) | 1.0x | Référence |
| +7,5 | 2.0x | Double de dégâts |
| +15 | 4.0x | Quadruple de dégâts |
La santé du boss est plafonnée par le serveur, mais l'ajustement offensif de compétence n'est pas plafonné. Des écarts importants, au-delà d'environ +/-22 niveaux, peuvent produire des valeurs extrêmes. Le niveau 100 n'est qu'un seuil progressif d'XP.
weaponAdjustment
Une courbe linéaire en deux parties basée sur le niveau d'objet de l'arme par rapport au niveau du mob. Cela reflète la courbe de réduction d'équipement défensive du Système de Défense de l'Équipement.
L'arme utilise son niveau stocké lorsqu'il existe. Sinon, EliteMobs calcule un niveau à partir des dégâts et de la vitesse d'attaque, avec un repli sur le niveau d'armure pour les valeurs faibles. Les armes vanilla peuvent donc avoir un niveau effectif non nul. Ce calcul diffère de celui de la défense d'armure.
weaponAdjustment = 0.5 + bonus
En dessous de l'adéquation (weaponLevel est inférieur ou égal à mobLevel) :
bonus = 0.50 * (weaponLevel / mobLevel)
Évolue linéairement de 0 (aucune arme) à 0.50 (adapté). Sans arme équipée, l'ajustement est de 0.50 (moitié de dégâts).
Au-dessus de l'adéquation (weaponLevel est supérieur à mobLevel) :
bonus = 0.50 + (weaponLevel - mobLevel) * 0.025
bonus = min(bonus, 0.75)
2,5 % forfaitaire par niveau d'arme au-dessus du mob, plafonné à 0.75 de bonus. Nécessite +10 niveaux d'arme au-dessus du mob pour atteindre le plafond.
| Scénario d'Arme | Bonus | Aj. Arme | Effet sur les Coups |
|---|---|---|---|
| Arme de niveau 0, en isolant cet ajustement | 0.00 | 0.50 | 6 coups (2x plus lent) |
| Arme à demi-niveau | 0.25 | 0.75 | 4 coups |
| Arme adaptée (weaponLevel = mobLevel) | 0.50 | 1.00 | 3 coups (référence) |
| +4 niveaux au-dessus du mob | 0.60 | 1.10 | ~2,7 coups |
| +10 niveaux au-dessus du mob (plafond) | 0.75 | 1.25 | ~2,4 coups |
Les coups à mains nues utilisent aussi une compétence de niveau 1 et leur propre facteur de vitesse. Le tableau isole l'ajustement d'arme en conservant les autres facteurs de référence de l'épée.
cooldownOrVelocity
En mêlée, EliteMobs mesure les ticks depuis le coup principal précédent, puis divise par la recharge 20 / attackSpeed, avec un maximum de 1.0. Les coups contre des non-élites actualisent aussi ce compteur, contrairement aux coups dans le vide. Le premier coup enregistré est entièrement chargé. L'attribut actuel de vitesse du joueur détermine la recharge ; la vitesse de l'objet sert de repli si l'attribut manque, est invalide ou indique encore la base 4.0 avec une arme plus lente. Un arc/une arbalète en mêlée utilise 4.0.
Pour les attaques à distance/projectile (arcs, arbalètes, tridents lancés et flèches générées par les compétences), c'est la vélocité de lancement normalisée. La vélocité d'un arc à pleine tension est d'environ 3.0 ; la valeur est normalisée à min(velocity / 3.0, 1.0), limitée à la plage [0, 1].
Pour les tirs ordinaires, le niveau d'arme, l'identité/le niveau de compétence et le résultat critique sont capturés au lancement, y compris pour les arcs/arbalètes en main secondaire. Le trident lancé fournit son propre niveau d'objet. La vitesse de lancement est prioritaire ; si elle manque, la vitesse actuelle est utilisée. Sans données d'arme/compétence, les niveaux deviennent 0/1 sans emprunter la compétence de l'arme tenue à l'impact. Les potions et la somme des enchantements de dégâts des six emplacements restent consultées à l'impact.
sweepMultiplier
Pour ENTITY_SWEEP_ATTACK, le multiplicateur vaut 0.25 et la charge est complète sans actualiser le compteur du coup principal. Les autres facteurs sont évalués par cible, avec un nouveau tirage critique ; le résultat n'est donc pas forcément 25 % des dégâts reçus par la cible principale :
sweepMultiplier = 0.25 (secondary sweep targets)
sweepMultiplier = 1.0 (primary target)
potionMultiplier offensif
Les effets de potion de Force et de Faiblesse modifient les dégâts sortants du joueur :
potionMultiplier = 1.0 + strengthBonus - weaknessPenalty
Ici strengthBonus = (strengthAmplifier + 1) * strengthDamageMultiplier et weaknessPenalty = (weaknessAmplifier + 1) * weaknessDamageMultiplier. Les deux réglages valent 0.2 par défaut : Force I ajoute 20 % et Faiblesse I retire 20 % dans cette formule EliteMobs. Des niveaux égaux s'annulent. Le multiplicateur a un minimum de 0.
Les clés de config dans MobCombatSettings.yml sont :
| Clé | Par défaut | Description |
|---|---|---|
strengthDamageMultiplierV2 | 0.2 | Dégâts bonus par niveau de Force |
weaknessDamageMultiplierV2 | 0.2 | Pénalité de dégâts par niveau de Faiblesse |
equipmentEnchantmentMultiplier
Les niveaux de Tranchant et de Puissance sur les objets équipés du joueur apportent un bonus de dégâts en pourcentage. Chaque niveau vaut 2,5 %, et les deux enchantements sont comptés sur chaque objet :
perItemBonus = (Sharpness level + Power level) * 0.025
equipmentEnchantmentMultiplier = 1.0 + sum of perItemBonus across all six slots
La somme couvre les six emplacements (4 pièces d'armure + main principale + main secondaire) : le Tranchant sur un bouclier ou sur une armure contribue donc aussi. Il s'agit d'une couche distincte du enchantmentMultiplier ci-dessous, qui ne couvre que les enchantements liés au type de mob (Châtiment, Fléau des Arthropodes).
enchantmentMultiplier
Les enchantements Châtiment et Fléau des Arthropodes fournissent un petit bonus de dégâts contre leurs types de mobs respectifs, mais uniquement lorsque useEliteEnchantments est désactivé dans ItemSettings.yml. Lorsque les enchantements élites sont activés, ce multiplicateur est toujours de 1.0.
Seuls les niveaux d'enchantement au-dessus du maximum vanilla sont comptés (niveaux élites uniquement) :
enchantmentMultiplier = 1.0 + eliteLevelsAboveVanillaMax * 0.025
Chaque niveau supplémentaire donne 2,5 %. Châtiment VIII, dont le maximum vanilla est V, apporte trois niveaux : 1.0 + 3 * 0.025 = 1.075. Cette branche consulte la main principale actuelle, même à l'impact d'un projectile. Fléau vérifie Spider/Silverfish ; Châtiment vérifie Zombie/Skeleton/Wither/SkeletonHorse/ZombieHorse/Zombified Piglin, y compris les sous-types de ces classes Java. Elle n'utilise pas une catégorie complète de mobs Minecraft.
arrowDamageMultiplier
Les flèches générées par les capacités de compétence d'arme (telles que Tir Multiple, Pluie de Flèches, etc.) portent un multiplicateur de dégâts stocké dans le conteneur de données du projectile. Cela permet aux flèches générées par les compétences d'infliger des dégâts réduits par rapport à un coup de flèche standard. Pour les flèches normales tirées par le joueur, ce multiplicateur est de 1.0.
Dégâts des Épines
Avec useEliteEnchantments activé, la branche de l'événement THORNS utilise les dégâts de base du joueur contre l'élite, pas la formule complète d'arme. Seuls les niveaux au-dessus d'Épines III comptent. Ce calcul ne programme ni ne garantit lui-même un déclenchement d'épines.
eliteThornsLevel = totalThornsLevel - vanillaMaxThornsLevel (per armor piece, summed across all 4 pieces)
thornsDamage = baseDamage * eliteThornsLevel * 0.02
Chaque niveau supplémentaire apporte 2 % des dégâts de base. Épines III vanilla n'apporte pas de dégâts d'épines élites. Quatre pièces avec Épines V totalisent huit niveaux supplémentaires : baseDamage * 8 * 0.02 = 16% des dégâts de base joueur-vers-élite par déclenchement.
Le combat standard/normalisé utilise le niveau réel du mob. Le combat mis à l'échelle utilise la compétence d'arme actuelle du joueur, puis convertit le résultat vers la santé réelle du boss. Les modificateurs de matériau, de combat et les critiques interviennent ensuite.
damageModifier
Modificateur de dégâts par type d'arme spécifique au boss, issu du fichier du Boss Personnalisé (damageModifiers). Cela permet aux boss de prendre plus ou moins de dégâts de matériaux d'arme spécifiques (par ex., un boss résistant aux épées mais faible face aux haches). Vaut 1.0 par défaut pour tous les types d'arme non explicitement configurés.
La mêlée consulte le matériau actuellement en main principale. Un projectile utilise le matériau de son arme d'origine seulement s'il est enregistré dans les données de projectiles personnalisés d'EliteMobs ; sinon, il utilise la recherche par défaut. Capturer le niveau de l'arme ne fournit pas à lui seul ce modificateur de matériau.
combatMultiplier
Multiplicateur global de MobCombatSettings.yml (scaledDamageToEliteMultiplier, normalizedDamageToEliteMultiplier, ou damageToEliteMobMultiplierV2 selon le mode de combat). Vaut 1.0 par défaut.
critMultiplier
Les coups critiques multiplient les dégâts finaux par 1,5x. La chance de critique est additionnée sur les six emplacements d'équipement (4 pièces d'armure + main principale + main secondaire) à partir des statistiques de chance de critique de l'équipement élite du joueur, puis plafonnée :
critChance = min(sum of all six slots, maximumCriticalStrikeChance)
maximumCriticalStrikeChance se trouve dans MobCombatSettings.yml et vaut 0.40 (40 %) par défaut. Sans ce plafond, cumuler la chance critique sur six emplacements peut atteindre 100 %, et à ce moment-là chaque coup est un coup « critique » — le critique cesse d'être perçu comme un événement tout en versant le multiplicateur complet de 1,5x. Les valeurs supérieures à 0.5 sont déconseillées pour cette raison. Le plafond est ramené dans l'intervalle [0.0, 1.0] quelle que soit la valeur configurée.
Les coups critiques sont appliqués avant le déclenchement de l'événement de dégâts, ce qui en fait une étape multiplicative distincte de la couche additive des bonus de compétence décrite ci-dessous : un gros bonus de compétence ne peut donc jamais avaler le critique.
Dégâts des bâtons et des baguettes
Les boules de feu et les frappes de mêlée des bâtons ainsi que les projectiles des baguettes issus des armes magiques de FMM n'utilisent pas la formule de mêlée ou d'arc ci-dessus. Lorsque l'un d'eux touche un élite, EliteMobs calcule :
formulaLevel = scaled combat ? magicSkillLevel : mobLevel
magicDamage = baseDamage(formulaLevel)
* 2 ^ ((magicSkillLevel - formulaLevel) / 7.5)
* weaponAdjustment(itemLevel, formulaLevel)
* basePower * impactScale
* scaledCombatRescale
* damageModifier
* combatMultiplier
* (1 + 0.025 * (Sharpness + Power levels on the weapon))
magicSkillLevelest le niveau de la compétence Bâtons ou Baguettes, capturé au moment où l'attaque est lancée (niveau 1 dans les mondes exclus des compétences).baseDamage, l'ajustement de compétence,weaponAdjustment,damageModifieretcombatMultipliersont les éléments décrits plus haut.damageModifierse base sur le matériau porteur de l'arme.basePowerest la puissance configurée de l'attaque FMM.impactScalevaut 1 pour un coup direct ; l'explosion d'un bâton le fait passer de 1 au centre à 0,35 au bord.scaledCombatRescalevaut 1 hors du combat mis à l'échelle. En combat mis à l'échelle, il convertit le résultat vers la réserve de santé réelle du boss, comme dans Dégâts du joueur au boss.- Le tirage critique est lui aussi capturé au lancement ; un coup critique multiplie le résultat par 1,5.
Ce calcul ne comporte aucun facteur de vitesse d'attaque, de charge, de balayage ou de potion. Le coup applique ensuite les bonus de compétence Bâtons ou Baguettes comme décrit dans Les bonus de compétence dans le pipeline de dégâts. Contre une cible non élite, le coup inflige les dégâts autonomes de FMM multipliés par le même facteur Sharpness/Power.
Limitation des modificateurs
Les ajustements offensifs et défensifs utilisent 2 ^ (levelDifference / 7.5) sans plafonnement du multiplicateur. L'ancien utilitaire getLevelModifierFromDifference et ses limites 0.125/8.0 n'existent plus. Ne les appliquez pas aux calculs actuels.
La santé du boss suit le plafond décrit plus haut. Le niveau 100 est un seuil progressif d'XP et ne limite aucun des deux ajustements de compétence.
Les plafonnements qui bornent réellement les dégâts issus des compétences sont le plafond de chance critique et les deux plafonds de réduction défensive, tous décrits dans la section suivante.
Les bonus de compétence dans le pipeline de dégâts
Tout ce qui précède décrit les courbes sans bonus. Un joueur réel dispose aussi de jusqu'à trois bonus de compétence actifs par type d'arme, et ceux-ci se posent par-dessus la formule. Si vous équilibrez une rencontre uniquement sur ces courbes, vous sous-estimerez systématiquement les dégâts réellement infligés par les joueurs.
L'équilibrage des bonus de compétence est partagé. Les fichiers skillbonuses/*.yml portent la présentation (nom d'affichage, description, palier de déblocage, type de bonus, icône de menu, modèles de description) ainsi que les clés d'équilibrage baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks et stackBonus. Les bonus qui consultent leur configuration utilisent ces valeurs ; les autres utilisent des constantes codées en dur. Quelques-uns (Harvester, Legion's Discipline, Depth Charge) bornent la valeur configurée par une courbe approuvée : les modifier ne peut donc que les affaiblir.
Le calcul configurable commun de déclenchement utilise min(1, procChance + 0.002 * skillLevel). Celui de recharge impose un minimum égal à la moitié de la valeur configurée à cooldownSeconds * (1 - 0.005 * skillLevel) ; les appels arrondissent généralement en secondes entières avec un minimum d'une seconde. Les bonus ayant leurs propres formules peuvent différer. Voir Bonus de compétence.
Où s'exécute la couche offensive
Les bonus offensifs ordinaires s'appliquent pendant l'événement EliteMobs :
... formula → damageModifier × combatMultiplier → critical hit (×1.5)
→ EliteMobDamagedByPlayerEvent listeners run
→ HIGH-priority skill-bonus listener applies bonuses
→ remaining listeners can modify or cancel
→ final damage set
Le multiplicateur critique est déjà présent lorsque le listener de compétences s'exécute ; son multiplicateur additif le préserve. Les dégâts personnalisés/bypass du joueur sautent ce listener ordinaire pour éviter les déclenchements récursifs. Le coup propre d'un bâton ou d'une baguette fait exception : ce sont des dégâts personnalisés, mais il applique quand même ses bonus Bâtons ou Baguettes. Les capacités de classe ont leurs propres règles.
Les bonus offensifs s'additionnent
Chaque bonus actif ne contribue que par sa fraction de bonus, et ces fractions sont additionnées :
totalMultiplier = 1.0 + (m1 - 1.0) + (m2 - 1.0) + (m3 - 1.0) + ...
Trois bonus à 1,2x chacun produisent donc 1,6x, et non les 1,73x que donnerait un cumul multiplicatif. Cela s'applique uniformément à tous les types d'armes.
C'est un changement par rapport au comportement précédent, où les haches seules utilisaient une règle du « plus grand l'emporte » : un seul bonus, le plus élevé, s'appliquait, et tout coup de hache où une compétence dépassait 1,5x écartait entièrement et silencieusement le coup critique. Faire tourner une famille d'armes sur une règle de cumul différente rendait aussi les dégâts des haches impossibles à comparer au reste.
La même somme couvre les affaiblissements de la cible Hunter's Mark, Death Mark, Judgment, Expose Weakness, Hex Brand et Unravel. Riposte agit séparément : elle multiplie directement les dégâts de l'événement, puis le multiplicateur additif combiné s'applique à ce résultat.
Conséquence pratique : un joueur avec trois bonus offensifs bien choisis inflige réalistement entre 1,4x et 2x la courbe publiée avant les procs, et davantage lorsqu'une capacité à récupération se déclenche. L'objectif de conception « 3 coups d'épée » décrit un joueur sans aucun bonus sélectionné.
Les bonus défensifs ont deux plafonds
Les bonus de compétence d'armure réduisent les dégâts entrants et, contrairement au volet offensif, ils se composent multiplicativement — chacun fait passer les dégâts déjà réduits par damage * (1 - reduction). C'est pourquoi il existe deux limites distinctes :
| Limite | Valeur | Portée |
|---|---|---|
| Plafond par compétence | 80 % | Borne la réduction d'une compétence isolée |
| Plafond global | 85 % | Borne l'ensemble des sources de compétences combinées, par coup |
Le plafond par compétence ne suffit pas à lui seul : trois sources à 80 % chacune se multiplieraient en 0.2 x 0.2 x 0.2 = 99,2 % de réduction totale — une immunité de fait, alors que chaque plafond individuel est respecté.
Le plafond global comble cette faille. Il est appliqué une seule fois, tout à la fin, en comparant les dégâts entrés dans le pipeline de compétences à ceux qui en sont sortis, et en refusant que le rapport tombe sous 1 - 0.85 :
finalDamage = max(damageAfterSkills, incomingDamage * 0.15)
Travailler sur le rapport plutôt que sur une somme courante de réductions est ce qui le rend robuste. Les branches individuelles ont des formes différentes — certaines multiplient, certaines assignent directement une valeur, certaines cumulent, certaines lisent la configuration — et l'ordre comme le nombre de contributeurs n'ont aucune incidence sur le résultat. Un build défensif entièrement cumulé encaisse toujours au moins 15 % de chaque coup entrant.
L'annulation complète reste hors du plafond. Evasion, Last Stand, Spell Mirror, Death's Embrace, Divine Shield et Phoenix Mantle annulent l'événement plutôt que d'appliquer une réduction partielle. Le plafond de 85 % couvre ce calcul de compétences ; il n'impose pas de minimum au coup original après potions, blocage, absorption et autres listeners.
Une fois le plafond global atteint, une réduction supplémentaire ne diminue plus ce coup.
Exemples détaillés
Les exemples ci-dessous excluent délibérément les bonus de compétence afin que la courbe sous-jacente reste visible. Ajoutez par-dessus le multiplicateur additif des compétences décrit dans la section précédente pour obtenir les chiffres réels.
Exemple 1 : épée adaptée Lv25 contre élite Lv25 (mêlée)
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
Exemple 2 : hache Lv25 contre élite Lv25 (compensation de burst amortie)
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
Exemple 3 : houe Lv25 contre élite Lv25 (ancien facteur d'arme rapide)
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
Exemple 4 : arc Lv20 contre élite Lv25 avec healthMultiplier=2.0 (à distance, sous-niveau)
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)
Outil de débogage DamageBreakdown
Exécutez /em debug comme joueur disposant d'elitemobs.debug pour activer les diagnostics. Reproduisez le coup, puis répétez la commande pour les arrêter. La formule, le mode/multiplicateur choisi, le blocage/bypass et le résultat de l'événement apparaissent dans le chat et le journal du serveur. Recherchez [EM-Debug: et [EM-Damage: dans le journal.
L'utilitaire interne distinct DamageBreakdown, utilisé par les outils de développement, peut afficher :
- Une analyse formatée complète montrant tous les niveaux, les composants de la formule, les multiplicateurs et les dégâts finaux calculés.
- Un résumé compact sur une ligne pour une référence rapide en jeu.
- Une comparaison attendu vs réel qui signale les écarts supérieurs à 10 %, utile pour diagnostiquer les conflits de plugins ou les fichiers de boss mal configurés.
Son résultat reconstruit n'est pas une mesure définitive des dégâts appliqués : il impose un minimum de 1 à la formule, omet le multiplicateur ultérieur de compétences et ne reproduit pas tous les ajustements du combat mis à l'échelle ou des listeners. Un écart ne prouve pas à lui seul un conflit de plugins. Pour un combat réel, utilisez les diagnostics du calcul actif et observez la variation de santé.
Progression de l'XP de compétence
Les compétences d'arme et d'armure montent de niveau en gagnant de l'XP en tuant des elite mobs. Le système d'XP utilise des exigences de niveau cubiques pour créer une progression fluide avec un plafond progressif au-delà du niveau 100.
XP des morts d'élites : mobLevel^2 est la valeur initiale avant les multiplicateurs du boss, les parts de contribution, les limites de récompense par niveau et les avantages. Voir Système de compétences.
XP pour le niveau suivant :
Pour les niveaux 1 à 100 :
xpToNextLevel = floor(8.5 * L^3)
Pour les niveaux au-dessus de 100 (plafond progressif) :
xpToNextLevel = floor(floor(8.5 * L^3) * (1 + ((L - 100)^2 / 100)))
Le multiplicateur est continu au niveau 100, où il vaut 1.0, puis croît de façon quadratique. Au niveau 150, il vaut environ 26x, ce qui rend la progression très difficile. Il n'existe pas de maximum strict de niveau 100 : l'exigence cubique est ensuite multipliée par le facteur quadratique ci-dessus.
Mécaniques de combat supplémentaires
Prévention des morts en un coup
La formule ordinaire du boss est plafonnée à la santé maximale réelle moins 1. Avec [Alpha] Advanced Combat System actif, le plafond est max(1, actualMaxHealth - 30) - 1, retirant uniquement ses 30 HP supplémentaires. Les autres modificateurs de santé maximale comptent. Un joueur blessé peut mourir d'un coup puisque le plafond utilise la santé maximale et non actuelle. Les dégâts bruts peuvent le contourner et les listeners modifier le résultat ensuite.
Blocage au bouclier
Pour un coup sans projectile qui atteint ce gestionnaire pendant le blocage, EliteMobs réduit les dégâts calculés de 80 % par défaut, via blockingDamageReduction dans MobCombatSettings.yml. Les dégâts bruts bypass remplacent cette valeur réduite. Un projectile bloqué est supprimé, puis le gestionnaire s'arrête avant la formule ; cette branche n'annule toutefois pas l'événement Bukkit et ne met pas ses dégâts à zéro. Elle ne garantit pas l'immunité à chaque projectile ou coup créé par un plugin.
Chaque blocage traité tente de consommer 5 points de durabilité du bouclier, avec une fréquence réduite par Solidité native. Le bouclier en main principale est choisi avant celui en main secondaire.
Dégâts personnalisés et absorption
Certains pouvoirs soumettent des dégâts bruts. Ils remplacent le résultat ordinaire, y compris le plafond par coup et la réduction du bouclier, avant l'événement EliteMobs. Les compétences défensives peuvent encore les réduire ou les annuler. Les dégâts personnalisés/bypass du joueur sautent la formule d'arme, les multiplicateurs de matériau/globaux et les déclenchements de compétences d'arme. Un critique capturé d'arme magique ou garanti explicitement par une classe peut encore s'appliquer, et le coup propre d'un bâton ou d'une baguette applique toujours ses bonus d'arme (voir Dégâts des bâtons et des baguettes).
Après l'événement ordinaire élite-vers-joueur, l'absorption actuelle est affectée aux dégâts finaux. Les modificateurs vanilla d'armure et de résistance sont effacés car EliteMobs calcule déjà ces réductions. La formule joueur-vers-élite efface aussi les réductions natives ; l'armure du boss est donc cosmétique pour cette voie.
Coups de mêlée rapides
Le limiteur d'autoclic est activé par défaut. Plus de 5 coups principaux contre des élites dans une fenêtre glissante d'une seconde déclenchent une pénalité de 5 secondes sur cette voie. Les réglages sont autoclickerThrottleMaxHitsPerSecond et autoclickerThrottlePenaltySeconds dans MobCombatSettings.yml, avec autoclickerThrottleEnabled pour l'activation. Les coups dans le vide, balayages, projectiles, épines et dégâts personnalisés/bypass ne comptent pas et ne passent pas par ce contrôle. Se reconnecter ne supprime pas une pénalité active.
Bonus de santé d'Armure
Chaque niveau d'Armure au-dessus de 1 ajoute +2 PV, un cœur, à la santé maximale. Ce modificateur suit les réglages de skills.yml, les exclusions de mondes et les règles de mondes de combat gérés expliquées plus haut.
Résumé de la mise à l'échelle par niveau
Le tableau suivant résume les modificateurs de niveau avant l'application des plafonds de santé et des autres modificateurs de combat. Les rapports de santé des boss ne sont plus valables dès que l'un des deux plafonds est atteint.
| Différence de Niveau | Modificateur PV du Boss | Modificateur Dégâts du Boss | Difficulté |
|---|---|---|---|
| -10 (joueur sur-niveau) | 0.25x PV | ~0.4x dégâts | Trivial |
| -5 (joueur sur-niveau) | 0.5x PV | ~0.6x dégâts | Très Facile |
| 0 (même niveau) | 1.0x PV | 1.0x dégâts | Équilibré |
| +5 (joueur sous-niveau) | 2.0x PV | ~1.6x dégâts | Difficile |
| +10 (joueur sous-niveau) | 4.0x PV | ~2.5x dégâts | Très Dur |
Combat mis à l'échelle
Ce mode simule le boss au niveau de compétence d'arme de l'attaquant ou d'Armure du défenseur. Il retire le niveau stocké du boss du calcul des attaques ordinaires. L'équipement, la famille d'armes, les bonus, pouvoirs et modificateurs de santé différencient toujours les combats. Il convient aux élites naturels et à certains boss d'événement ; ces derniers nécessitent leur propre scaledCombat: true.
Différences entre combat mis à l'échelle et normalisé
EliteMobs a trois modes de combat :
| Mode | Utilisé Pour | Le Niveau Compte-t-il ? | Clé de Config |
|---|---|---|---|
| Standard | Mobs basiques sans flags spéciaux | Oui — les dégâts et la santé évoluent avec le niveau réel du mob | damageToEliteMobMultiplierV2 / damageToPlayerMultiplierV2 |
| Normalisé | Boss de donjon et régionaux (normalizedCombat: true) | Oui ; mêmes courbes de base, avec des multiplicateurs de configuration distincts | normalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier |
| Mis à l'échelle | Élites naturels de l'overworld et boss d'événement (scaledCombat: true ou config globale) | Non — le boss est simulé au niveau du joueur | scaledDamageToEliteMultiplier / scaledDamageToPlayerMultiplier |
Les attaques standard et normalisées utilisent le niveau réel du mob. Leur formule exponentielle actuelle ignore les anciens réglages normalizedBaselineDamageV3 et normalizedRegionalBossBaselineHealthV3. Le mode mis à l'échelle substitue un niveau de compétence du joueur ; le niveau stocké reste disponible pour d'autres systèmes.
Fonctionnement
Dégâts du boss au joueur
Lorsqu'un boss en combat mis à l'échelle inflige des dégâts à un joueur, la formule de dégâts fixe le niveau du boss égal au niveau de compétence d'armure du joueur :
mobLevel = armorSkillLevel (instead of the boss's actual level)
Cela signifie que l'ajustement de compétence devient 1.0 (puisque bossLevel - armorSkillLevel = 0), et que les dégâts dépendent entièrement de l'équipement et de la compétence d'armure du joueur — et non du niveau stocké du mob. Le reste de la formule (dégâts de base, ajustement d'équipement, potions, etc.) fonctionne exactement comme décrit dans les sections ci-dessus.
Dégâts du joueur au boss
Lorsqu'un joueur attaque un boss en combat mis à l'échelle, la formule :
- Simule le boss au niveau de compétence d'arme du joueur — traite temporairement le mob comme s'il était du même niveau que la compétence d'arme du joueur.
- Exécute la formule de dégâts standard contre ce niveau simulé, produisant un résultat de « dégâts contre un mob de même niveau ».
- Remet à l'échelle vers les PV réels du boss — convertit les dégâts de la formule d'un pourcentage des PV du mob simulé vers le même pourcentage du pool de PV réel du boss.
simulatedMobLevel = playerWeaponSkillLevel
formulaDamage = playerToEliteDamageFormula(player, eliteEntity at simulatedMobLevel)
simulatedMobHP = baseHPAtSimulatedLevel * bossHealthMultiplier
damagePercentage = formulaDamage / simulatedMobHP
actualDamage = damagePercentage * actualBossMaxHP
Le niveau stocké disparaît du calcul en pourcentage. Les multiplicateurs de santé, d'arme et de compétence, les plafonds de santé et les arrondis influencent encore le nombre de coups. Avec healthMultiplier: 1.0, la référence reste environ 3 coups d'épée ; les autres armes suivent leur facteur de vitesse.
Butin et récompenses
Le calcul des récompenses mises à l'échelle utilise le niveau de combat du joueur, pas celui stocké du mob. Le butin normal, le butin de classe, l'XP de compétences et les pièces bonus l'utilisent, puis appliquent leurs propres règles. Les objets fixes, récompenses explicites, probabilités, critères d'admissibilité et plafonds restent en vigueur ; voir Tables de butin et Système de compétences.
Affichage du niveau
Les entités en combat mis à l'échelle affichent un symbole au lieu d'un niveau numérique sur leur plaque de nom, puisque leur niveau réel n'a pas d'importance pour le joueur :
- Entités standards mises à l'échelle (healthMultiplier 1.0 ou moins) : affiche un symbole d'épée (par défaut :
「⚔」) - Entités à haute menace mises à l'échelle (healthMultiplier au-dessus de 1.0) : affiche un symbole de crâne (par défaut :
☠)
Ces symboles peuvent être personnalisés dans MobCombatSettings.yml via scaledStandardLevelSymbol et scaledHighThreatLevelSymbol.
Activer le combat mis à l'échelle
Pour les élites naturels, configuration globale
Dans MobCombatSettings.yml :
useScaledCombatForNaturalElites: true
Ce réglage est activé par défaut pour les élites naturels dans les mondes admissibles, pas seulement la dimension Overworld. Ceux des mondes utilisant useDistanceBasedNaturalEliteLevels emploient leur niveau réel même si ce réglage est true. Les boss normalisés ne sont pas affectés ; un boss personnalisé/d'événement n'en hérite pas simplement parce qu'il apparaît dehors.
Pour un boss personnalisé
Dans un fichier de configuration de Boss Personnalisé :
scaledCombat: true
Cela force un boss personnalisé spécifique à utiliser le combat mis à l'échelle quel que soit le paramètre global. Utile pour les boss d'événement ou les rencontres personnalisées de l'overworld qui devraient être tout aussi équitables pour tous les joueurs.
Note : Si un boss a normalizedCombat: true (ou est un boss régional/instancié avec la normalisation activée globalement), le combat normalisé prend la priorité et le boss n'utilisera pas le combat mis à l'échelle — sauf si scaledCombat: true est explicitement défini dans le fichier du boss, auquel cas le combat mis à l'échelle l'emporte.
Clés de configuration
Les clés de MobCombatSettings.yml suivantes contrôlent le comportement du combat mis à l'échelle :
| Clé | Par défaut | Description |
|---|---|---|
useScaledCombatForNaturalElites | true | Active ce mode pour les élites naturels, sauf ceux utilisant les niveaux par distance |
scaledDamageToEliteMultiplier | 1.0 | Multiplicateur global pour les dégâts du joueur aux boss en combat mis à l'échelle |
scaledDamageToPlayerMultiplier | 1.0 | Multiplicateur global pour les dégâts des boss en combat mis à l'échelle aux joueurs |
scaledStandardLevelSymbol | 「⚔」 | Symbole affiché sur la plaque de nom pour les entités standards mises à l'échelle |
scaledHighThreatLevelSymbol | ☠ | Symbole affiché pour les entités mises à l'échelle avec healthMultiplier au-dessus de 1.0 |
useRecommendedHealthScaling | true | Utilise la mise à l'échelle de santé exponentielle d'EliteMobs 10 pour les élites naturels (false = valeurs linéaires legacy, voir ci-dessous) |
Quand utiliser chaque mode
- Combat normalisé (
normalizedCombat: true) : Pour les donjons, les instances et les boss régionaux où vous voulez un contrôle précis de la difficulté et où le boss a un niveau fixe que les joueurs sont censés égaler. - Combat mis à l'échelle (
scaledCombat: trueou paramètre global) : Pour simuler des niveaux de compétence adaptés lors des attaques ordinaires. L'équipement et les capacités influencent toujours la difficulté. - Combat standard (aucun flag) : Pour les mobs où le niveau brut devrait directement déterminer la difficulté, comme les élites mis à l'échelle par distance près du spawn.
Santé héritée (useRecommendedHealthScaling: false)
Lorsque useRecommendedHealthScaling est défini sur false dans MobCombatSettings.yml, les elite mobs naturels (pas les boss de donjon ou régionaux) utilisent une formule legacy simplifiée au lieu de la mise à l'échelle exponentielle :
baseDamage = level * 2
mobHealth = baseDamage * 3 (TARGET_HITS_TO_KILL_MOB)
Ici level vaut au moins 1. Cette formule remplace la santé des élites naturels et les dégâts de base des joueurs contre eux, pas la formule d'Armure des dégâts reçus. Les valeurs linéaires sont plus proches d'EliteMobs 9 : supérieures aux valeurs exponentielles à certains bas niveaux, bien inférieures aux hauts niveaux. La santé finale conserve son multiplicateur et le plafond du serveur. Les boss régionaux personnalisés ne sont pas affectés.
Utiliser ces données pour les donjons
NOTE : CECI SUPPOSE QUE VOUS UTILISEZ LES VALEURS normalizedCombat ! Ces valeurs ont été spécialement conçues pour équilibrer les donjons plus facilement.
Une partie de la difficulté d'un boss consiste à lui donner la santé et les dégâts appropriés pour la rencontre. Cependant, gardez à l'esprit que ce n'est qu'une partie de la chose, et que les powers sont tout aussi importants.
Ce qui suit est présenté dans le format correct pour le fichier du Boss Personnalisé.
Calculs rapides
Avec le système de mise à l'échelle exponentiel, healthMultiplier et damageMultiplier mettent directement à l'échelle les valeurs de base :
-
Un
healthMultiplierde 1.0 signifie que le boss prend environ 3 coups d'épée pour être tué par un joueur de même niveau. Les autres armes de mêlée varient selon le facteur de vitesse d'attaque : les armes de burst amorties comme les haches, les masses d'armes et les tridents de mêlée prennent moins de coups que les épées, tandis que les houes prennent plus de coups car elles conservent l'ancien facteur d'arme rapide. Un multiplicateur de 2.0 double la santé, 0.5 la divise par deux, et ainsi de suite. -
Un
damageMultiplierde 1.0 signifie que le boss tue un joueur de même niveau correctement équipé en environ 5 coups. Des multiplicateurs plus élevés rendent le boss plus mortel, des multiplicateurs plus bas le rendent plus sûr.
Ces estimations supposent un équipement et des compétences adaptés ainsi qu’une marge sous le plafond final de santé. healthMultiplier: 2.0 double la santé de base seulement si le résultat tient sous ce plafond ; six coups d’épée ne sont pas garantis à chaque niveau.
Gardez à l'esprit que les joueurs ont tendance à prioriser les armes, et finissent souvent avec une armure bien pire que leurs armes. À moins que vous ne conceviez des types d'arènes très spécifiques avec du combat à distance, vous ne voulez probablement pas infliger beaucoup de dégâts par coup. Testez votre contenu !
Ces nombres de coups excluent aussi :
- Les bonus de compétence. Chaque décompte ci-dessus suppose zéro bonus actif. Un joueur avec trois bonus offensifs tue nettement plus vite, et un joueur avec trois bonus défensifs survit nettement plus longtemps (jusqu'au plafond global de 85 %). Traitez ces nombres comme un plancher de puissance du joueur, pas comme une prédiction.
- La santé d'Advanced Combat. Ses 30 HP supplémentaires augmentent la survie sans augmenter les dégâts de base reçus.
- Le plafond de santé maximale. Au-dessus des niveaux listés dans Le plafond de santé maximale de Minecraft,
healthMultipliercesse totalement d'augmenter les PV. Le préréglage de boss de monde en particulier plafonne à partir du niveau 23 sur un serveur par défaut.
Créer un mob de donjon moyen
Avec la mise à l'échelle de normalizedCombat, vous pouvez appliquer une configuration très minimaliste :
normalizedCombat: true
healthMultiplier: 1.0 #~3 sword hits to slay
damageMultiplier: 1.0 #survives ~5 hits
Les deux multiplicateurs valent 1.0 par défaut et peuvent être omis. Conservez normalizedCombat: true sauf si la configuration régionale, d'instance ou d'arène normalise déjà le boss.
Créer des groupes de petits ennemis
Les packs de trash sont nombreux mais pas très dangereux :
normalizedCombat: true
healthMultiplier: 0.7 #~2 sword hits to slay
damageMultiplier: 0.5 #survives ~10 hits
Créer des renforts
Les renforts devraient mourir très facilement, mais représenter un danger en termes de dégâts (ces valeurs sont recommandées pour 4+ entités de mêlée, l'usage réel peut varier) :
normalizedCombat: true
healthMultiplier: 0.25 #~1 sword hit to slay
damageMultiplier: 0.6 #survives ~8 hits
Créer des miniboss
Les minibosses devraient tenir bon, et représenter un défi mécanique pour les joueurs. Cela devrait être une épreuve de compétence qui dure un petit moment, mais pas quelque chose d'extrêmement mortel :
normalizedCombat: true
healthMultiplier: 3.0 #~9 sword hits to slay
damageMultiplier: 1.2 #survives ~4 hits
Créer des boss
Les boss sont un véritable défi, la conclusion d'une montée en puissance dans un donjon et une véritable épreuve de compétence avec tout en jeu. Les rencontres devraient être longues et la mort devrait être une menace présente.
normalizedCombat: true
healthMultiplier: 7.0 #~21 sword hits to slay
damageMultiplier: 1.4 #survives ~3.5 hits
Créer des boss de monde
Les boss de monde sont dangereux, mais surtout ils ont beaucoup de santé et invoquent beaucoup de renforts / ont beaucoup d'attaques de zone d'effet. Ils sont conçus pour être combattus par de grands groupes de joueurs sur la plus longue durée qu'une rencontre élite devrait durer. Ils ne sont pas très mortels, mais ont beaucoup de mécaniques qui peuvent submerger les joueurs mal préparés.
normalizedCombat: true
healthMultiplier: 40.0 #~120 sword hits to slay
damageMultiplier: 1.5 #survives ~3 hits
Ce ne sont que des valeurs recommandées approximatives et toutes les valeurs finales devraient être ajustées autour des rencontres elles-mêmes.