Aller au contenu principal

Difficulté des donjons instanciés

Les donjons instanciés disposent d'un réglage spécial permettant de définir facilement différentes difficultés pour le donjon.

Fonctionnement

Les difficultés peuvent définir une valeur levelSync, inspirée de la synchronisation de niveau de Final Fantasy 14. Elle modifie le niveau utilisé par le cache des objets du joueur, sans réécrire l'objet dans son inventaire.

La synchronisation n'est pas un plafond universel d'équipement

Les calculs actuels d'attaque au corps à corps et de défense d'armure lisent le niveau brut de l'objet. La capture de combat des projectiles lit également l'attaque brute de l'arme, et les tridents lancés lisent le niveau de leur objet à l'impact. Ne comptez pas uniquement sur levelSync pour égaliser les armes et armures.

Tranchant et Puissance contribuent à un multiplicateur d'attaque d'équipement distinct. Chaque objet équipé admissible apporte 0.025 * (Sharpness level + Power level), et les contributions des six emplacements s'additionnent. La synchronisation ne plafonne pas cette contribution des enchantements. Il s'agit d'une contribution à un multiplicateur, pas d'un nombre fixe de points de dégâts.

La santé de base des boss double tous les cinq niveaux avant les limites de santé, mais l'attaque du joueur utilise ses propres calculs de compétences, d'objets, d'enchantements et de classe. Consultez le système de dégâts avant d'équilibrer les rencontres. Combinez la synchronisation avec des pouvoirs, valeurs de boss et récompenses propres à chaque difficulté, et vérifiez les équipements réels des joueurs.

Système de groupe

EliteMobs dispose de groupes limités à la session. Les invitations ordinaires permettent jusqu'à cinq membres ; les groupes automatiques de donjon peuvent inclure un effectif admis plus important. Lorsqu'un membre sélectionne un donjon instancié, EliteMobs enregistre la composition actuelle et lance une confirmation cliquable. L'initiateur est automatiquement prêt ; chaque autre membre doit accepter précisément ce donjon et cette difficulté avant la préparation du monde. Les demandes de donjon dynamique incluent également le niveau sélectionné. Un refus, une expiration, un changement de composition, un membre indisponible, un échec de permission, un manque de places, un conflit d'instance active ou l'annulation du contrôle préalable MatchJoinEvent d'EliteMobs interrompt l'entrée du groupe plutôt que de n'y déplacer qu'une partie. L'événement PlayerJoinDungeonEvent d'EliteMobs est une notification non annulable émise après l'admission.

Les défis personnels d'enchantement d'objet restent en solo, car le défi prend temporairement le contrôle de l'objet du joueur initiateur.

Les auteurs peuvent choisir des pouvoirs qui deviennent plus dangereux avec davantage de joueurs. Les boss de donjon reçoivent aussi un bonus de santé selon le nombre de participants de l'instance au moment où leur santé est définie, notamment au début de la partie. La formule est : scaledHealth = baseHealth * 0.75 * playerCount. Par exemple, avec 2 joueurs, le boss a 1,5 fois ses points de vie de base, avec 3 joueurs 2,25 fois, et avec 5 joueurs 3,75 fois.

Remarque : la mise à l'échelle des points de vie ne s'applique que lorsque 2 joueurs ou plus se trouvent dans l'instance. Les joueurs en solo affrontent des boss avec des valeurs de points de vie standard.

Comment définir une difficulté

Les difficultés sont définies dans le YAML du package du donjon instancié, sous /plugins/EliteMobs/content_packages/, éventuellement dans un sous-dossier du package. Placez difficulties à côté des autres réglages de premier niveau, tels que contentLevel et name.

Prenons un exemple :

difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic

Cela définit trois difficultés. name fournit le libellé du menu. levelSync et id sont facultatifs ; sans levelSync, aucune synchronisation n'est appliquée. Les noms reconnus peuvent fournir un ID manquant, comme expliqué ci-dessous. Préférez des IDs explicites dans les nouveaux packages.

name est le nom de la difficulté, tel qu'il apparaîtra dans le réglage de difficulté en jeu. Il peut s'agir de n'importe quel nom.

levelSync fixe le plafond de niveau pour les chemins de calcul décrits ci-dessus. Il ne plafonne pas tous les calculs de dégâts ou de défense.

Vous pouvez définir autant ou aussi peu de difficultés que vous le souhaitez. Il suffit d'ajouter ou de retirer des entrées au réglage difficulties en utilisant le même format.

Synchronisation de niveau relative​

La synchronisation de niveau peut également utiliser des valeurs relatives plutôt que des nombres absolus. Mettez toujours la valeur entre guillemets. YAML résout un +5 non quoté en simple entier 5, et le + initial a disparu au moment où EliteMobs le lit — levelSync: +5 devient donc silencieusement une synchronisation absolue au niveau 5, et levelSync: +0 devient un 0 absolu, ce qui désactive complètement la synchronisation de niveau. Les valeurs négatives non quotées comme levelSync: -10 survivent par hasard, car le - est conservé et EliteMobs la lit toujours comme relative — mais quoter chaque valeur est la seule forme non ambiguë :

difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard

Les valeurs relatives sont calculées à partir du niveau de contenu de base du donjon, et le résultat ne peut jamais descendre sous 1. Par exemple, si un donjon a un niveau de contenu de 60 :

  • levelSync: '+5' devient 65
  • levelSync: '+0' devient 60
  • levelSync: '-10' devient 50

C'est particulièrement utile pour les donjons dynamiques dont le niveau de contenu peut varier. Sur un donjon dynamique, le niveau de contenu n'est connu qu'une fois l'instance créée : la valeur relative est donc résolue à ce moment-là.

Un levelSync: 0 absolu — ou toute valeur qu'EliteMobs ne parvient pas à analyser — signifie aucune synchronisation de niveau pour cette difficulté.

Champ d'ID de difficulté facultatif​

Définissez id sur chaque difficulté pour les filtres de pouvoirs et de butin. La correspondance numérique standard est 0 = NORMAL, 1 = HARD, 2 = MYTHIC.

L'implémentation reconnaît aussi Normal/Hard/Mythic et les anciens noms Easy/Medium/Hard, sans tenir compte de la casse, des couleurs ou des espaces extérieurs. Le package entier détermine le schéma : un ID explicite Normal ou Mythic choisit le schéma standard. Sinon, un ID Easy ou Medium choisit l'ancien ; les noms ne le choisissent que si Easy ou Medium apparaît sans Normal ni Mythic. La détection précède la traduction et les IDs numériques gardent leur signification fixe. Un nom reconnu fournit un ID manquant ou un palier pour un ID personnalisé.

Les définitions inconnues déclenchent un avertissement en console avec le fichier du package. Les IDs personnalisés restent utilisables dans les filtres après normalisation de la casse, des couleurs et des espaces. Pour le butin automatique, une correspondance explicite de l'ID original dans ClassLootSettings.yml est prioritaire, suivie du palier résolu puis de la valeur par défaut configurée. Donnez des IDs explicites aux noms inhabituels.

difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1

Pouvoirs basés sur la difficulté​

Il est possible de configurer des boss pour qu'ils ne disposent de certains pouvoirs qu'à des difficultés précises. Prenons un exemple :

powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2

Remarque : ceci fait partie du fichier de configuration du custom boss !

Dans ce cas, le boss ne bénéficiera de l'invulnérabilité au feu que pour les difficultés dont l'ID est 1 et 2.

difficultyID accepte un ID ou une liste YAML pour les pouvoirs et le butin défini par l'auteur. Un filtre de pouvoir vide ou invalide ne correspond à aucune difficulté ; dans une entrée de butin, une liste vide ou un ID vide entraîne le rejet de cette entrée au chargement du fichier. Les filtres de pouvoirs s'appliquent aux boss instanciés associés à un donjon ainsi qu'aux boss apparus dans l'instance d'un autre plugin via l'API des boss instanciés, en utilisant la difficulté attribuée par ce plugin. Ils ne restreignent pas un boss ordinaire du monde ouvert.

Butin basé sur la difficulté​

Il est possible de configurer des boss pour qu'ils lâchent du butin spécifique à une difficulté de donjon instancié. Prenons un exemple :

uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0

Remarque : ceci fait partie du fichier de configuration du custom boss !

Dans un donjon, cette entrée autorise himiko_boss_drop_axe_tank_normal.yml à la difficulté 0, avec un tirage à 5 % soumis aux règles habituelles d'admissibilité au butin. La vérification utilise le donjon actuel du destinataire ; elle ne bloque pas l'entrée hors d'un donjon. L'équipement admissible passe par le butin de groupe du donjon, tandis que les autres objets restent personnels. Consultez le butin de groupe.

Équilibrer les récompenses Normal, Hard et Mythic​

L'exemple précédent limite un fichier d'objet à une difficulté. Pour fournir un équipement adapté à chaque classe sans maintenir trois versions de chaque objet, utilisez le butin automatique par classe. Il sélectionne les profils d'enchantements selon la difficulté et le rang, tout en conservant le nom et la description de chaque objet à un seul endroit.

Le guide contient un tableau des plafonds d'enchantements principaux et la formule du budget des objets générés. Augmenter la difficulté ne multiplie pas automatiquement la santé du boss ou les statistiques du butin ; synchronisation, pouvoirs, valeurs du boss et profils de récompenses contrôlent chacun leur partie de la rencontre.