Aller au contenu principal

Créer des Boss

webapp_banner.jpg

Créer des boss personnalisés​

Avant de commencer

Où placer les fichiers de boss ?​

Les fichiers de boss vont dans le dossier de configuration ~/plugins/EliteMobs/custombosses.

Il est possible de créer des sous-dossiers, comme ~/plugins/EliteMobs/custombosses/mybosses. C'est recommandé pour garder les choses bien organisées.

Un fichier définit un boss, même s'il est possible de faire apparaître le même boss plusieurs fois et même de définir plusieurs emplacements d'apparition pour un même fichier de boss.

Utilisez Nightbreak Forge pour créer des configurations de boss personnalisés.

Configuration minimale possible​

Le plus petit fichier de configuration possible pour un Boss Personnalisé est :

Remarquez qu'il s'agit simplement d'un fichier vide. Cela fera malgré tout apparaître un boss personnalisé de type zombie avec un nom personnalisé, car ce sont les valeurs par défaut. Tout ce qui figure sur cette page est optionnel !

Réutiliser un autre fichier de boss​

Un fichier de boss peut partir d'un autre fichier de boss avec extends, puis ne modifier que ce qui diffère :

extends: my_base_boss.yml
name: '&cEnraged Copy'
healthMultiplier: 3

Le fichier hérite de toutes les valeurs de la base et remplace les clés qu'il définit. Les sections imbriquées, comme patrol, sont fusionnées clé par clé ; une liste, comme uniqueLootList, remplace entièrement la liste de la base. Désignez la base par son seul nom de fichier, sans chemin de dossier. Il doit s'agir d'un autre fichier de custombosses, sous-dossiers compris, et cette base peut elle-même étendre une autre base.

isEnabled, spawnLocation, spawnLocations, leashRadius, powers et eliteScript ne sont jamais hérités : définissez-les dans chaque fichier qui en a besoin. Une base avec isEnabled: false sert de modèle : elle ne peut pas apparaître seule, mais les fichiers qui l'étendent se chargent quand même. EliteMobs n'écrit pas de valeurs par défaut dans un fichier qui utilise extends, qui reste donc aussi court que vous l'avez écrit. Une base introuvable, un chemin dans extends ou une boucle de références extends désactive le fichier avec un avertissement dans la console.

Exemple de boss​

Voyons à quoi ressemble un fichier de boss.

Exemple
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"

Paramètres de base​

isEnabled​

Définit si le boss est activé.

CléValeursDéfaut
isEnabledtrue / falsetrue
Exemple
isEnabled: true

entityType​

Définit le type d'entité du boss.

CléValeursDéfaut
entityTypeUne créature pouvant apparaître, issue de EntityType, avec des propriétés de mob enregistrées dans EliteMobs. Un type non pris en charge désactive la configuration du boss.ZOMBIE
Cubes de magma et Slimes

Comme ces types d'entités n'attaquent pas directement les joueurs mais infligent des dégâts par contact, cela peut provoquer de fortes rafales de dégâts en très peu de temps. Pour cette raison, nous déconseillons généralement de les utiliser fréquemment comme mobs Elite. Toutefois, si vous souhaitez malgré tout les utiliser, nous suggérons de régler damageMultiplier autour de 0.1.

Nous recommandons également d'utiliser l'EliteScript suivant pour empêcher les Cubes de magma ou les Slimes de bloquer les joueurs en stun-lock :

eliteScript:
NerfDamage:
Events:
- ZoneEnterEvent
- ZoneLeaveEvent
Zone:
shape: SPHERE
radius: 1
Target:
targetType: SELF
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 10
Exemple
entityType: ZOMBIE

name​

Définit le nom du boss.

CléValeursDéfaut
nameString, accepte les color codes et les espaces réservés listés ci-dessous"Default Name"
Exemple
name: "$normalLevel &cCool boss!"

create_boss_name_pic_no_level.jpg

Si vous souhaitez inclure le niveau du boss dans son champ de nom, utilisez simplement l'un des espaces réservés suivants.

Espace réservéDescriptionExempleRésultat (pour un boss de niveau 10)
$levelRemplacé par le niveau"$level Cool boss"10 Cool boss
$normalLevelRemplacé par le niveau, conçu pour les mobs normaux"$normalLevel Cool boss"[10] Cool boss
$minibossLevelRemplacé par le niveau, conçu pour les mini-boss"$minibossLevel Cool boss"〖10〗 Cool boss
$bossLevelRemplacé par le niveau, conçu pour les boss"$bossLevel Cool boss"『10』 Cool boss
$reinforcementLevelRemplacé par le niveau, conçu pour les renforts"$reinforcementLevel Cool boss"〔10〕 Cool Boss
$eventBossLevelRemplacé par le niveau, conçu pour les boss d'événement"$eventBossLevel Cool boss"「10」 Cool boss
Exemple
name: "$normalLevel &cCool boss!"

create_boss_name_pic.jpg


level​

Définit le niveau du boss.

CléValeursDéfaut
levelNombres Integer positifs ou dynamicdynamic

dynamic prend le plus haut niveau d'apparition naturelle calculé pour les joueurs du même monde à moins de 16 * (distance de vue du serveur + 2) blocs, avec un minimum de 1. Les boss dynamiques enregistrés sont réévalués toutes les 5 secondes ; leur niveau peut donc changer après apparition. Un niveau d'apparition explicite remplace ce comportement. Utilisez un niveau fixe pour les rencontres régionales qui nécessitent une difficulté stable.

Exemple
level: 1

scale​

Définit l'échelle (la taille) du boss.

CléValeursDéfaut
scaleMultiplier1.0

Lors de la mise à l'échelle, 1.0 représente la taille par défaut. Pour agrandir l'entité, augmentez la valeur (par exemple 1.2). Pour la rétrécir, diminuez la valeur (par exemple 0.8).

Exemple
scale: 1.2

bossType​

Classe le boss pour des systèmes comme le butin automatique de classe. Les barres de vie utilisent healthMultiplier et les paramètres de MobCombatSettings.yml, plutôt que cette étiquette.

CléValeursDéfaut
bossTypeNORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENTNORMAL

Pour le butin automatique de classe, MINIBOSS choisit le rang mini-boss, BOSS et EVENT le rang boss, et les boss ordinaires le rang ennemi commun, sauf remplacement par classLootRank.

REINFORCEMENT est une classification configurée, pas une étiquette attribuée automatiquement à chaque invocation. Le suivi des renforts invoqués et des montures contrôle séparément leur droit aux récompenses.

Exemple
bossType: MINIBOSS

silent​

Définit si les sons du boss doivent être coupés.

CléValeursDéfaut
silentBooleanfalse

Avec true, les sons Minecraft natifs de l'entité sont coupés. Ce paramètre ne contrôle pas les sons joués séparément par les scripts ni la musique du boss.

Exemple
silent: true

healthMultiplier​

Multiplie les points de vie du boss. L'affichage de santé consulte aussi cette valeur : une barre de boss distincte exige displayBossBarForHighMultiplier et un multiplicateur supérieur à bossBarHealthMultiplierThreshold dans MobCombatSettings.yml.

CléValeursDéfaut
healthMultiplierMultiplier1.0
La santé du boss est plafonnée, pas ses dégâts

La santé de base exponentielle est d'abord plafonnée à la limite du serveur. EliteMobs applique ensuite healthMultiplier, impose un minimum de 1 PV et plafonne à nouveau le résultat à settings.attribute.maxHealth.max dans spigot.yml. EliteMobs relève cette valeur à 2048 au démarrage si elle est inférieure, mais jamais au-delà ; 2048 est donc le plafond effectif par défaut.

Ces limites concernent le calcul de base du boss. Les boss d'instance appliquent ensuite le multiplicateur de groupe 0.75 * playerCount si au moins deux joueurs participent, sans nouveau plafonnement par le plugin. Le tableau ci-dessous ne garantit donc ni la santé finale dans une instance, ni l'acceptation par le serveur d'une valeur supérieure à la limite de l'attribut.

Les points de vie de base suivent la formule 2.1875 × 2^(level / 5), ils doublent donc tous les 5 niveaux. Combiné au plafonnement, chaque healthMultiplier possède un niveau au-delà duquel le boss cesse totalement de gagner des points de vie alors que ses dégâts continuent d'augmenter :

healthMultiplierLes points de vie cessent d'augmenter au niveau
1.050
2.045
5.038
7.036
10.033
20.028
40.023

Au-delà de ce niveau, augmenter le niveau configuré n'augmente plus la santé maximale réelle. Les dégâts dépendent toujours du système de combat, des compétences relatives, des statistiques des armes et des multiplicateurs ; le plafond ne garantit pas un nombre fixe de coups dans un sens ou dans l'autre. EliteMobs avertit lorsque la santé multipliée dépasse la limite, mais le premier plafonnement de la santé de base est silencieux. Un multiplicateur inférieur à 1 s'applique à cette base déjà plafonnée.

Si vous avez réellement besoin de plus de 2048 PV, augmentez vous-même settings.attribute.maxHealth.max dans spigot.yml ; le plafonnement lit la valeur active du serveur, et non une constante codée en dur.

Exemple
healthMultiplier: 1.5

damageMultiplier​

Définit le multiplicateur de dégâts du boss.

CléValeursDéfaut
damageMultiplierMultiplier1.0
Exemple
damageMultiplier: 1.5

isBaby​

Définit si le boss utilise la variante bébé du mob. Ne peut s'appliquer qu'aux mobs disposant d'une variante bébé. Si vous souhaitez déguiser le boss tout en le gardant bébé sous son déguisement (assurez-vous que l'entité de déguisement prend également en charge la variante bébé), vous pouvez utiliser ce paramètre :

disguise: HOGLIN:baby
CléValeursDéfaut
isBabytrue / falsefalse
Exemple
isBaby: true

helmet/chestplate/leggings/boots/mainHand/offHand​

Définit l'armure et les objets tenus par le boss. Certains types d'entités et modèles personnalisés ne peuvent pas afficher ces emplacements. L'armure équipée ne fournit pas de points d'armure dans le combat ordinaire d'EliteMobs, mais les objets tenus peuvent modifier les attaques natives, par exemple un squelette utilisant un arc.

CléValeursDéfaut
helmetMaterial, UUIDaucun
chestplateMaterialaucun
leggingsMaterialaucun
bootsMaterialaucun
mainHandMaterialaucun
offHandMaterialaucun

Utilisez des noms de matériaux en majuscules. Ces champs créent de l'équipement à partir de matériaux ; ils ne chargent pas de fichiers .yml d'objets personnalisés. Pour les objets autres que le cuir, ajoutez un entier de données de modèle personnalisé sous la forme ITEM_MATERIAL:ID. Par exemple, DIAMOND_SWORD:1 sélectionne les données de modèle personnalisé 1 du pack de ressources.

Note 2 : Ce champ vous permet également de définir des couleurs de cuir personnalisées avec le format ITEM_MATERIAL:CODE, où le code est la représentation hexadécimale de la couleur. Exemple : LEATHER_LEGGINGS:ffa500 créerait des jambières orange. Vous pouvez utiliser des codes hexadécimaux, il suffit de retirer le # du code. Vous pouvez obtenir des codes hexadécimaux ici.

Note 3 : Un UUID de joueur en minuscules avec tirets crée une tête via la recherche de profil de joueur hors ligne de Bukkit. Le joueur n'a pas besoin d'être connecté ; l'apparence dépend de la résolution de ce profil par le serveur.

Exemple
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

create_boss_armor.jpg


powers​

Définit les pouvoirs dont dispose le boss.

CléValeursDéfaut
powersReportez-vous à la liste ci-dessousaucun
Exemple
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua

Note : vous pouvez consulter cette page si vous souhaitez voir une liste des pouvoirs préfabriqués que vous pouvez utiliser.

Note : les pouvoirs peuvent être des fichiers .yml (EliteScript) ou .lua (scripts Lua). Les deux types sont pris en charge et peuvent être mélangés librement dans la liste powers. Presque tous les pouvoirs préfabriqués sont désormais en .lua.

Les anciens noms de pouvoirs .yml fonctionnent toujours

Si un pouvoir .lua de même nom de base est chargé, EliteMobs résout automatiquement une demande .yml ou .yaml vers celui-ci. Par exemple, attack_arrow.yml sélectionne le attack_arrow.lua chargé. La seule présence du fichier sur disque ne suffit pas. Les nouvelles configurations devraient nommer directement le fichier .lua.


Configuration intermédiaire - Faire apparaître des renforts​

Les renforts entrent également dans la catégorie des pouvoirs, en utilisant les paramètres suivants :

Note : les renforts se configurent dans la section powers de votre fichier de configuration de boss, et non dans une section distincte.

Paramètres des renforts
CléDescriptionValeursDéfaut
summonTypeCe qui déclenche l'apparition du renfort. Obligatoire.Reportez-vous à la liste ci-dessousaucun
filenameFichier du boss à invoquer. Obligatoire sauf pour les cristaux.Stringaucun
chanceProbabilité d'une vague d'invocations ordinaires. Ignorée par GLOBAL et les cristaux. Optionnel.Double1.0
amountDéfinit le nombre de renforts à faire apparaître. Optionnel.Integer1
inheritAggroFait hériter au renfort l'aggro du boss. Optionnel.true / falsefalse
spawnNearbyFait apparaître les renforts dans une zone de 30x30 blocs, ±15 en X et Z, autour du point d'apparition. Optionnel.true / falsefalse
inheritLevelFait hériter au renfort le niveau du boss. Optionneltrue / falsefalse
customSpawnFait apparaître le renfort via le système de spawns personnalisés. Utilisé uniquement pour summonType: GLOBALNom de fichier du Spawn Personnaliséaucun
locationDécalage d'apparition relatif. Optionnel.x,y,z, toujours relatif au boss. Pour un boss régional, le décalage part de son emplacement d'apparition.aucun
lightningRodParamètre de summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Les cristaux font apparaître des éclairs autour d'eux. Optionnel.true / falsefalse
difficultyIDLimite l'entrée à certaines difficultés de donjon instancié. Optionnel.String ou liste de chaînesaucun

Les types d'invocation définissent les conditions d'apparition des renforts. Voici la liste des types d'invocation valides :

Types d'invocation
ValeurDescription
ONCETente une vague lors de dégâts admissibles d'un joueur jusqu'à ce qu'un essai soit marqué comme invoqué. Un jet de probabilité raté peut être retenté au coup suivant.
ON_HITTente une vague lorsqu'un joueur blesse le boss. Exige une IA active, un événement non annulé et au moins 3 points de dégâts.
ON_COMBAT_ENTERFait apparaître les renforts lorsque le boss entre en combat.
ON_DEATHFait apparaître les renforts lorsque le boss meurt.
GLOBALMet en file amount invocations via customSpawn dès l'apparition du boss puis toutes les 10 secondes, même hors combat. Cesse d'ajouter des invocations dès que le nombre suivi atteint 30 * joueurs du monde d'apparition. Exige un spawn personnalisé valide.
ON_COMBAT_ENTER_PLACE_CRYSTALPlace un cristal de l'End au décalage configuré à l'entrée en combat. Ignore amount et chance ; prévu pour les combats de dragon personnalisés.

ONCE exige la même IA active et le même minimum de 3 dégâts que ON_HIT. GLOBAL utilise sa configuration d'apparition personnalisée plutôt que les champs ordinaires location, spawnNearby, inheritLevel et inheritAggro. Consultez Renforts pour le comportement complet.

Notez qu'il est également possible de faire apparaître des renforts via les Elite Scripts, ce qui offre des méthodes d'apparition encore plus personnalisables.

Exemple
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
location: 10,20,30
lightningRod: false

Configuration experte - Créer vos propres pouvoirs​

Il est possible de créer vos propres pouvoirs, soit dans le fichier du boss lui-même, soit dans un nouveau fichier de configuration placé dans le dossier des pouvoirs. Vous pouvez en apprendre davantage ici.

Note : vous pouvez également définir les comportements du boss directement dans le fichier de configuration du boss à l'aide du champ eliteScript. Pour la documentation complète sur l'utilisation des Elite Scripts, consultez le guide des pouvoirs.

En alternative à EliteScript, vous pouvez aussi écrire des pouvoirs à l'aide de scripts Lua. Les pouvoirs Lua sont placés dans le dossier des pouvoirs avec l'extension .lua et référencés par leur nom de fichier dans la liste powers. Consultez le guide Lua Getting Started pour plus d'informations.

Limiter les pouvoirs selon la difficulté d'un donjon instancié​

Les donjons instanciés peuvent avoir des réglages de difficulté, et il est possible de faire en sorte qu'un pouvoir donné ne soit activé que pour certaines difficultés.

Options de limitation des pouvoirs
CléDescriptionValeursDéfaut
filenameNom du fichier du pouvoir.Stringaucun
difficultyIDUn ID de difficulté ou une liste, résolus selon la convention numérique ou nommée du donjon.Chaîne, nombre ou listeaucun

Cela ne s'applique qu'aux boss instanciés : les boss des donjons instanciés, et les boss instanciés qu'un autre plugin fait apparaître avec une difficulté via l'API d'EliteMobs.

Exemple
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3

spawnMessage​

Définit le message à envoyer lorsque le boss apparaît. Nécessite la configuration de announcementPriority.

CléValeursDéfaut
spawnMessageStrings et color codesaucun
Exemple
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages​

Définit les messages envoyés à la mort du boss s'il a des attaquants enregistrés. doCustomEliteMobsDeathMessages doit être activé dans MobCombatSettings.yml (true par défaut). La priorité 0 les envoie en privé aux attaquants ; les priorités positives les diffusent.

CléValeursDéfaut
deathMessagesStrings, color codes et les espaces réservés ci-dessousaucun
Exemple
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4The Test Boss has been killed!'
- '&c&l 1st Damager: $damager1name &cwith $damager1damage damage!'
- '&6&l 2nd Damager: $damager2name &6with $damager2damage damage!'
- '&e&l 3rd Damager: $damager3name &ewith $damager3damage damage!'
- '&4Slayers: $players'
- '&e&l---------------------------------------------'

create_boss_death_message.jpg

Les messages de mort utilisent les espaces réservés suivants :

Espaces réservés
ValeurDescription
$damager1nameNom d'affichage du principal attaquant
$damager1NamePseudo du principal attaquant
$damager2nameNom d'affichage du deuxième attaquant par dégâts
$damager2NamePseudo du deuxième attaquant par dégâts
$damager3nameNom d'affichage du troisième attaquant par dégâts
$damager3NamePseudo du troisième attaquant par dégâts
$damager1damageLa quantité de dégâts du principal attaquant
$damager2damageLa quantité de dégâts du deuxième plus gros attaquant
$damager3damageLa quantité de dégâts du troisième plus gros attaquant
$playersListe les noms d'affichage de tous les attaquants
$playersNameListe les pseudos de tous les attaquants

deathMessage​

Définit un message unique à la mort du boss. Il est utilisé si deathMessages est vide, avec les mêmes règles de priorité et le même paramètre global. Il accepte $players et $playersName, mais pas les espaces réservés des attaquants individuels.

CléValeursDéfaut
deathMessageString, color codes, $players et $playersNameaucun
Exemple
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'

onKillMessage​

Définit le message de mort du joueur tué par ce boss. Il utilise le traitement de mort du joueur et ne nécessite pas announcementPriority.

CléValeursDéfaut
onKillMessageStrings et color codesaucun

Espaces réservés :

ValeurDescription
$playerLe nom d'affichage du joueur qui a été tué
$playerNameLe pseudo du joueur qui a été tué
$entityNom du boss
Exemple
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize​

Définit la taille du boss slime, mais ne fonctionne que pour les Slimes et les Cubes de magma.

CléValeursDéfaut
slimeSizeInteger4
Exemple
slimeSize: 5

neutral​

Empêche EliteMobs de forcer les entités neutres, comme les loups et golems de fer, à cibler les joueurs. Empêche aussi le lancement d'un programme Mind. Le comportement natif reste actif ; ce paramètre ne rend pas passif un type d'entité hostile.

CléValeursDéfaut
neutralBooleanfalse
Exemple
neutral: true

Paramètres avancés​

timeout​

Définit la durée en minutes avant la disparition du boss personnalisé. 0 désactive ce délai.

CléValeursDéfaut
timeoutDurée (en minutes) Integer0
Exemple
timeout: 20

Fait s'échapper le boss au bout de 20 minutes.


isPersistent​

Conserve l'état logique du boss pour le restaurer au rechargement de son chunk. Les corps ordinaires sont supprimés puis recréés ; un corps Mind natif persistant peut être suspendu puis rattaché dans la même session du serveur. Ce paramètre ne maintient pas les chunks chargés et ne conserve pas entre redémarrages un boss quelconque créé par commande. Les emplacements régionaux et délais de réapparition sont enregistrés séparément.

CléValeursDéfaut
isPersistenttrue / falsefalse
Exemple

Exemple :

isPersistent: true

damageModifiers​

Définit des multiplicateurs de dégâts selon le matériau Bukkit de l'arme attaquante. Les projectiles suivis utilisent le matériau enregistré de leur tireur. Les dégâts personnalisés qui contournent les vérifications ordinaires n'appliquent pas ce modificateur de matériau.

CléValeursDéfaut
damageModifiersMaterialaucun
Exemple
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0

Dans cet exemple, les boss ne subiront que 80 % des dégâts des épées en diamant (soit 20 % de moins), mais subiront 200 % des dégâts des tridents (soit 2 fois plus).


normalizedCombat​

Sélectionne le combat normalisé et ses paramètres normalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier. Les formules actuelles de santé et de dégâts liés aux compétences sont décrites dans Système de dégâts. normalizeRegionalBosses dans MobCombatSettings.yml force la normalisation des boss régionaux et instanciés même si ce champ vaut false. Les rencontres à phases utilisent le réglage de normalisation de la phase 1.

CléValeursDéfaut
normalizedCombattrue / falsefalse
Exemple

Exemple :

normalizedCombat: true

scaledCombat​

Sélectionne le combat mis à l'échelle, qui calcule les dégâts selon le niveau de progression effectif du joueur attaquant ou défenseur, puis convertit les dégâts du joueur vers la réserve de santé réelle du boss. Le boss garde une seule réserve partagée et son niveau enregistré. Le niveau des récompenses et l'admissibilité au butin sont contrôlés séparément ; ce réglage ne garantit ni une difficulté identique ni un butin sans restriction pour chaque joueur.

Le combat mis à l'échelle est principalement conçu pour les boss d'événement du monde normal et les boss personnalisés qui doivent rester accessibles aux joueurs de tous niveaux. Pour du contenu de donjon avec une difficulté fixe voulue, utilisez plutôt normalizedCombat.

Lorsque scaledCombat: true est défini, il est prioritaire même si le boss utiliserait autrement le combat normalisé. Les mobs elite apparus naturellement utilisent le combat mis à l'échelle par défaut (contrôlé par le paramètre useScaledCombatForNaturalElites dans MobCombatSettings.yml).

Consultez la page Système de dégâts pour tous les détails sur le fonctionnement du combat mis à l'échelle.

CléValeursDéfaut
scaledCombattrue / falsefalse
Exemple
scaledCombat: true

escapeMessage​

Définit le message diffusé aux joueurs lorsque le boss s'échappe via le mécanisme de timeout. Nécessite que announcementPriority soit configuré.

CléValeursDéfaut
escapeMessageStringaucun
Exemple
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage​

Définit le message de localisation dans la barre de suivi. Le suivi exige announcementPriority d'au moins 1 et showCustomBossLocation activé dans MobCombatSettings.yml. Le message est optionnel : absent ou vide, il utilise $name: $distance blocks away!.

CléValeursDéfaut
locationMessageString, Color codes et les espaces réservés listés ci-dessous$name: $distance blocks away! si absent ou vide

Espaces réservés :

ValeurDescription
$nameNom d'affichage du boss personnalisé
$distanceRemplacé par la distance séparant le joueur du Boss Personnalisé. C'est l'option à privilégier.
$locationRemplacé par les coordonnées x y z du Boss Personnalisé
Exemple
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

create_boss_location_message.jpg

Cela afficherait quelque chose comme Cool boss: At 414,55,347 only 10 blocks away!


uniqueLootList​

Définit les Objets Personnalisés que le boss laisse tomber.

CléValeursDéfaut
uniqueLootListListaucun

Les entrées de butin du Butin Personnalisé suivent le format des Tables de Butin. Plus d'informations ici ! Notez que certains fichiers plus anciens peuvent utiliser des tables de butin obsolètes, dont l'aspect diffère de l'exemple.

Exemple
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- magmaguys_toothpick.yml:0.5:elitemobs.*

dropsEliteMobsLoot​

Définit si le boss laisse tomber du butin EliteMobs, hors objets de uniqueLootList. Cela inclut les pièces.

CléValeursDéfaut
dropsEliteMobsLoottrue / falsetrue

Il est recommandé de le régler sur false pour les mobs de renfort.

Exemple
dropsEliteMobsLoot: true

dropsVanillaLoot​

Définit si le Boss Personnalisé laissera tomber le butin vanilla habituellement associé à son type de mob vanilla.

CléValeursDéfaut
dropsVanillaLoottrue / falsetrue
Exemple
dropsVanillaLoot: true

dropsRandomLoot​

Définit si le Boss Personnalisé laissera tomber du butin généré de façon procédurale par EliteMobs. N'inclut pas les pièces elite.

CléValeursDéfaut
dropsRandomLoottrue / falsetrue
Exemple
dropsRandomLoot: true

dropsSkillXP​

Définit si le boss donne de l'XP de compétence à sa mort. Cette XP fait progresser les compétences d'armes et d'armure et leurs bonus. Le gestionnaire d'XP exclut les renforts et les montures même si ce réglage vaut true.

CléValeursDéfaut
dropsSkillXPtrue / falsetrue

Il est recommandé de le régler sur false pour les mobs de renfort ou les boss qui ne doivent pas contribuer à la progression des compétences.

Exemple
dropsSkillXP: false

Butin automatique de classe​

classLoot active un tirage séparé d'équipement de base. Il est activé par défaut sauf pour bossType: REINFORCEMENT. classLootDifficulty accepte AUTO, NORMAL, HARD ou MYTHIC ; classLootRank accepte AUTO, TRASH, MINIBOSS ou BOSS. Tous deux valent AUTO par défaut ; les valeurs incorrectes produisent un avertissement et reviennent à AUTO.

Définissez l'équipement de classe comme des objets ordinaires avec itemType: CLASS_LOOT, référencés dans uniqueLootList. Ils participent à la sélection de classe plutôt qu'à des tirages indépendants de butin unique. L'ancien champ classLootItems du boss n'est pas lu. Consultez le butin automatique de classe pour les critères, plafonds, familles, profils et la résolution de difficulté.

trails​

Définit la traînée que le boss laisse derrière lui lorsqu'il se déplace.

CléValeursDéfaut
trailsParticles ou matériaux d'objetsaucun

Seules les particules sans données supplémentaires fonctionnent comme traînées, soit les particules simples de la liste des particules valides. Celles exigeant des données, comme DUST et ITEM, sont ignorées. BLOCK et LAVA arrêtent le traitement du reste de la liste ; évitez ces entrées. Les noms de matériaux produisent une traînée d'objets animée. Les traînées fonctionnent tant que le boss est valide, même immobile.

Exemple
trails:
- CLOUD

onDamageMessages​

Choisit une ligne aléatoire pour remplacer temporairement le nom du boss lorsqu'il blesse un joueur. Le nom revient après 80 ticks ; des coups rapprochés peuvent remplacer la ligne ou restaurer le nom avant l'expiration du délai de la dernière ligne.

CléValeursDéfaut
onDamageMessagesListaucun
Exemple
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


onDamagedMessages​

Choisit une ligne aléatoire pour remplacer temporairement le nom du boss lors d'un événement de dégâts EliteMobs. Ce n'est pas limité aux dégâts des joueurs. Le nom revient après 80 ticks ; des événements rapprochés peuvent remplacer la ligne ou restaurer le nom avant l'expiration du délai de la dernière ligne.

CléValeursDéfaut
onDamagedMessagesListaucun
Exemple
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

create_boss_damaged_message.jpg


mountedEntity​

Définit l'entité que le boss va chevaucher.

CléValeursDéfaut
mountedEntityFilename of the boss to mount ou type d'entitéaucun

N'essayez pas de faire chevaucher le boss par lui-même.

Exemple
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

Note : les boss régionaux partagent leur laisse avec l'entité qu'ils chevauchent, ce qui signifie que tous deux seront ramenés à l'emplacement d'apparition s'ils dépassent la distance autorisée par leur laisse.


announcementPriority​

Définit le niveau de priorité des annonces. Les priorités basses signifient qu'aucune annonce n'est faite ; les priorités élevées permettent d'annoncer non seulement dans le chat, mais aussi sur Discord si celui-ci est configuré.

CléValeursDéfaut
announcementPriorityInteger0

Note : si la clé manque dans un fichier contenant un texte d'annonce, soit locationMessage, spawnMessage, deathMessage, escapeMessage ou une liste deathMessages non vide, EliteMobs écrit announcementPriority: 0 au chargement pour rendre le réglage visible. La priorité reste 0 tant que vous ne la changez pas.

Voici la liste de ce que font les différentes priorités :

ValeurDescription
0Valeur par défaut. Pas de diffusion d'apparition ou d'évasion ni de suivi ; le texte de mort configuré peut encore être envoyé en privé aux attaquants.
1Permet les messages configurés d'apparition, de mort et d'évasion dans le chat. Le suivi via /em est disponible si showCustomBossLocation est activé ; locationMessage est optionnel.
2Identique à 1 pour les Boss Personnalisés — il n'existe pas de traitement distinct pour la priorité 2. (Les événements personnalisés traitent en revanche le 2 différemment ; voir Announcement Priority System.)
3En plus de ce que fait 1, les messages diffusés seront répercutés sur Discord s'il est configuré. Informations sur la configuration de Discord ici.

Voici un exemple de boss traçable, capable d'envoyer des messages d'apparition/de mort/d'évasion dans le chat et sur Discord :

Exemple
announcementPriority: 3

Note : configurez spawnMessage, deathMessage/deathMessages et escapeMessage pour les annonces correspondantes dans le chat et sur Discord. Le suivi possède un message de localisation par défaut ; définissez locationMessage seulement pour le personnaliser.


followDistance​

Définit la distance à laquelle les boss deviennent agressifs et entrent en combat. Mesurée depuis le mob lui-même.

CléValeursDéfaut
followDistanceInteger0

Un followDistance positif remplace l'attribut natif de portée de suivi ; 0 le laisse inchangé.

Note 1 : les boss régionaux non alertes divisent leur portée actuelle par 3 lorsqu'ils sont ralentis à l'apparition ou en quittant le combat. L'entrée en combat rétablit la portée enregistrée. Cela évite une agression trop lointaine et des problèmes avec la laisse.

Note 2 : plus le followDistance est élevé, plus le boss est gourmand en CPU pour le serveur. À utiliser avec prudence et discernement !

Exemple
followDistance: 30

Définit une portée de 30 blocs : si un joueur s'approche du boss à cette distance, celui-ci se mettra à le poursuivre et à l'attaquer.


onDeathCommands​

Définit la liste des commandes à exécuter à la mort d'un boss personnalisé.

CléValeursDéfaut
onDeathCommandsListaucun

Les commandes sont exécutées depuis la console. Une commande contenant $chance=x$ et $players fait un tirage séparé pour chaque attaquant. La liste accepte les espaces réservés suivants :

ValeurDescription
$levelEspace réservé pour le niveau du boss.
$nameEspace réservé pour le nom du boss.
$chance=x$Fait en sorte qu'une commande n'ait qu'une certaine probabilité de s'exécuter.
$playersFait exécuter la commande une fois pour chaque joueur de la liste des attaquants, en la remplaçant à chaque fois par le pseudo d'un joueur différent de cette liste.
$locationWorldNameNom du monde au moment de la mort.
$locationXCoordonnée X du boss au moment de sa mort.
$locationYCoordonnée Y du boss au moment de sa mort.
$locationZCoordonnée Z du boss au moment de sa mort.
$damager1namePseudo du principal attaquant
$damager2namePseudo du deuxième plus gros attaquant
$damager3namePseudo du troisième plus gros attaquant

Consultez l'exemple ci-dessous pour mieux comprendre leur fonctionnement.

Exemple
onDeathCommands:
- "say $players has killed $name! That was level $level!"
- "$chance=0.5$ say What a kill!"

create_boss_mounted.jpg

Si Player1, Player2 et Player3 ont tous infligé des dégâts au boss avant de le tuer, voici ce que la commande produira dans la console :

say Player1 has killed CustomBossName! That was level X!
say Player2 has killed CustomBossName! That was level X!
say Player3 has killed CustomBossName! That was level X!

De plus, il y a 50 % de chances que le message suivant soit également affiché :

say What a kill!

onSpawnCommands​

Définit la liste des commandes qui s'exécuteront à l'apparition du boss.

CléValeursDéfaut
onSpawnCommandsListaucun

Les commandes sont exécutées depuis la console et acceptent $chance=x$. Cet événement ne fournit pas les espaces réservés de boss, de position ou de joueur disponibles dans onDeathCommands.

Exemple
onSpawnCommands:
- say Boss has spawned!

create_boss_mounted.jpg


onCombatEnterCommands​

Définit la liste des commandes qui s'exécuteront lorsque le boss entre en combat.

CléValeursDéfaut
onCombatEnterCommandsListaucun

Les commandes sont exécutées depuis la console et acceptent $chance=x$. Cet événement ne fournit pas les espaces réservés de boss, de position ou de joueur disponibles dans onDeathCommands.

Exemple
onCombatEnterCommands:
- say Boss has entered combat!

create_boss_mounted.jpg


onCombatLeaveCommands​

Définit la liste des commandes à exécuter lorsque le boss quitte le combat.

CléValeursDéfaut
onCombatLeaveCommandsListaucun

Les commandes sont exécutées depuis la console et acceptent $chance=x$. Cet événement ne fournit pas les espaces réservés de boss, de position ou de joueur disponibles dans onDeathCommands.

Exemple
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise​

Définit le déguisement LibsDisguises si ce plugin est activé. Plus d'informations ici.

CléValeursDéfaut
disguiseStringaucun
customDisguiseDataStringaucun
Exemple de déguisement
disguise: CHICKEN

create_boss_mounted.jpg

Exemple de déguisement personnalisé
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}

create_boss_mounted.jpg

Définit un déguisement personnalisé issu de skindex. Consultez cette page pour apprendre à formater correctement ces données.


customModel​

Définit le modèle personnalisé à utiliser, si vous disposez d'un modèle personnalisé et des plugins FreeMinecraftModels ou ModelEngine. Plus d'informations sur la création et l'utilisation de modèles personnalisés ici.

CléValeursDéfaut
customModelStringaucun
Exemple
customModel: your_model

customModelMountPointID​

Définit l'ID du point d'attache pour les modèles personnalisés lorsque le boss chevauche une autre entité ou est chevauché par elle.

CléValeursDéfaut
customModelMountPointIDStringaucun
Exemple
customModelMountPointID: your_mount_point_id


frozen​

Met l'attribut de vitesse de déplacement à zéro et annule la vélocité immédiatement puis un tick après un événement de dégâts EliteMobs. Les boss figés gardent leur IA et peuvent attaquer. Ce paramètre n'arrête ni les scripts, ni les téléportations, ni toutes les mécaniques de déplacement propres aux entités.

CléValeursDéfaut
frozentrue / falsefalse
Exemple
frozen: true

ai​

Définit si l'IA du boss est activée. Lorsque ce paramètre est réglé sur false, le boss ne se déplacera ni n'attaquera de lui-même. C'est utile pour les boss entièrement contrôlés par des Elite Scripts.

CléValeursDéfaut
aitrue / falsetrue
Exemple
ai: false

behavior​

behavior sélectionne un programme Lua Mind réutilisable dans plugins/EliteMobs/behaviors/. Par exemple :

entityType: ZOMBIE
ai: true
behavior: basic_melee.lua

Le programme fourni basic_melee.lua combine les modules de ciblage, poursuite, mêlée et déplacement libre de behaviors/modules/. Modifiez ou copiez un programme de comportement à cet emplacement ; il ne s'agit pas d'un pouvoir et il ne va pas dans powers/.

Si le boss omet behavior, il utilise le réglage des propriétés de son type d'entité. behavior: native sélectionne explicitement l'IA native. ai: false et les boss neutres ne lancent pas de programme. Le chargeur habituel du boss reste responsable de l'apparition, de l'équipement, des pouvoirs, de la persistance et du nettoyage.

Les programmes exigent le service Mind natif sur une version de serveur compatible. Un fichier inconnu ou invalide est une erreur de configuration, pas une demande de choisir silencieusement une autre IA. Les ID de programme doivent utiliser l'espace de noms elitemobs: ; les sous-dossiers utilisent des barres /. Consultez la référence du contexte Mind pour l'API.

alwaysShowName​

Garde le nom visible hors combat. Le paramètre global alwaysShowEliteMobNameTags peut aussi l'activer. FreeMinecraftModels actuel utilise un os tag_, tel que tag_head, pour placer le nom lorsqu'il existe ; sinon, le nom apparaît au-dessus de la boîte de collision du modèle. Les anciennes versions de FMM peuvent exiger un ancrage dans le modèle. Consultez les modèles personnalisés pour les détails propres aux modèles.

CléValeursDéfaut
alwaysShowNametrue / falsefalse
Exemple
alwaysShowName: true

reinforcement​

Marque la définition du boss comme renfort. Cela ignore l'initialisation des emplacements régionaux ordinaires et exclut le butin automatique de classe. L'enregistrement des emplacements instanciés suit son propre traitement. Ce réglage n'invoque pas le boss et ne définit pas d'invocateur ; le suivi des renforts et montures à l'exécution contrôle séparément les autres exclusions de récompenses.

CléValeursDéfaut
reinforcementtrue / falsefalse
Exemple
reinforcement: true

song​

Définit la musique proposée aux joueurs proches après l'apparition du boss. Le pack de ressources doit définir la clé du son et son audio .ogg.

CléValeursDéfaut
songStringaucun

Définissez un followDistance positif pour la portée de démarrage. Toutes les 10 ticks, le boss recherche les joueurs de son monde dans cette distance configurée. Ensuite, la musique continue tant que le joueur est connecté, dans le même monde et à moins de 1,5 fois la portée de suivi enregistrée du boss. La suppression du boss l'arrête. La musique du boss est prioritaire sur l'ambiance du donjon ; chaque joueur entend une seule piste gérée à la fois.

Utilisez name=SOUND_KEY length=MILLISECONDS, avec un espace entre les deux champs. Les durées sont des entiers en millisecondes convertis en ticks, arrondis vers le bas, avec un délai minimal d'un tick. La lecture utilise la catégorie MUSIC, au volume 1 et à la hauteur 1.

Exemple

Il existe deux façons de configurer les musiques. Voici la première :

song: name=elitemobs:ice_queen.idle length=76370

Cela jouera la musique ice_queen.idle pendant 76370 millisecondes, puis la mettra en boucle. Notez que l'emplacement de la musique est déterminé par le pack de ressources.

Voici la seconde façon de configurer les musiques :

song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657

Cela jouera la musique ice_queen.end_transition pendant 14328 millisecondes, puis enchaînera sur ice_queen.end_loop pendant 28657 millisecondes, en mettant end_loop en boucle.

Cela permet aux boss d'avoir une musique d'« intro » ou de « transition », puis une piste principale qui tourne en boucle.


cullReinforcements​

Contrôle la suppression des renforts suivis, y compris GLOBAL, lors du nettoyage du boss. La sortie de combat et la récupération complète de santé suppriment séparément les renforts ordinaires suivis ; false ne garantit donc pas la survie de toutes les invocations.

CléValeursDéfaut
cullReinforcementstrue / falsetrue
Exemple
cullReinforcements: true

movementSpeedAttribute​

Définit la vitesse de déplacement du boss.
Note : au-delà de 0.36, cela risque d'être trop rapide.

CléValeursDéfaut
movementSpeedAttributeDoubleaucun
Exemple
movementSpeedAttribute: 0.3

patrol​

Ajoute à ce Boss personnalisé un itinéraire natif avec recherche automatique de chemin. Les nœuds sont des décalages depuis le point d'apparition défini pour le boss, ou des coordonnées exactes dans son monde avec patrol.relative: false. patrol.startNodeWaitSeconds fait se reposer le boss au premier nœud une fois par tour. Les longs segments sont calculés et divisés automatiquement sans forcer le chargement des chunks ; la patrouille s'interrompt pendant le combat et reprend ensuite. Le boss doit utiliser ai: true, avoir une vitesse de déplacement positive et ne pas être passager. Consultez Patrouilles des PNJ et boss pour le schéma, l'éditeur, les règles de persistance et les contrôles Lua.

Phases de boss​

Les boss peuvent avoir des phases qui changent lorsque le boss atteint un certain pourcentage de points de vie. Lorsque cela se produit, le boss se met à utiliser un fichier de configuration différent, ce qui signifie que tout peut changer chez le boss, y compris des éléments comme le type d'entité.
Pour en savoir plus sur les phases de boss, cliquez ici.

CléDescriptionValeursDéfaut
phasesDéfinit les phases que le boss aura. ObligatoireListaucun
phaseSpawnLocationDéfinit l'endroit où le boss de la phase apparaît. OptionnelStringaucun
Exemple

Pour cet exemple, nous allons montrer trois fichiers de configuration différents.

Premier fichier de configuration de boss : phase_1_boss.yml

name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30

Deuxième fichier de configuration de boss : phase_2_boss.yml

name: "Phase 2"
entityType: SKELETON

Troisième fichier de configuration de boss : phase_3_boss.yml

name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER

Ce boss basculerait vers le fichier de configuration phase_2_boss.yml à 60 % de points de vie, puis vers le fichier de configuration phase_3_boss.yml à 30 % de points de vie, dans le même monde que la phase 2 et aux coordonnées x=10, y=64 et z=100. Le type d'entité et le nom du boss changeraient également.

Le format d'une entrée est filename:healthPercentage, où le pourcentage est une fraction supérieure ou égale à 0 et inférieure à 1. Une entrée d'un autre format, une fraction hors de cette plage ou un fichier de boss manquant empêche le boss d'apparaître.

phaseSpawnLocation est optionnel ; s'il n'est pas défini, le boss changera de phase là où il se trouve.

Voici les points importants à connaître lors de la conception d'un boss à phases :

  • Le fichier de configuration de la première phase définit toutes les phases du boss.
  • La menace / les dégâts comptabilisés sont conservés d'une phase à l'autre pour les joueurs.
  • Le coup qui franchit le seuil est annulé et la phase suivante commence au pourcentage de santé configuré. Modifier healthMultiplier change les PV absolus à ce seuil. Les dégâts excédentaires ne passent pas à la forme suivante.
  • Les boss à phases non instanciés reviennent à la phase 1 lorsqu'ils récupèrent toute leur santé, y compris par régénération après combat. Les boss instanciés ignorent cette réinitialisation.
  • Les boss à phases qui sont également des boss régionaux partagent le même rayon de laisse et le même mécanisme de timeout sur toutes les phases, et réapparaîtront en tant que boss de phase 1 une fois le minuteur écoulé.
  • Le fichier de configuration de la dernière phase définit le butin du boss.
  • Les phases ne peuvent pas être sautées : des dégâts excédentaires feront tout de même changer le boss de phase au pourcentage défini.
  • Le changement de phase supprime la monture précédente. La nouvelle phase peut définir sa propre monture.
  • Les changements de phase et réinitialisations à pleine santé utilisent une apparition silencieuse, sans annonce ordinaire d'apparition.

Boss régionaux​

Les boss régionaux sont un type particulier de Boss Personnalisés qui apparaissent à un emplacement configuré précis et sont capables de réapparaître à cet emplacement après un délai. De plus, ils peuvent avoir des laisses qui garantissent qu'ils restent dans une zone donnée, entre autres fonctionnalités.

Ils sont utilisés pour tout le contenu de donjon. Pour en savoir plus sur les boss régionaux, cliquez ici.

CléDescriptionValeursDéfaut
isRegionalBossDéfinit si le boss est régional. Doit être true si vous voulez un boss régional.true / falsefalse
spawnLocationsDéfinit les emplacements d'apparition du boss.Ajoutez-les via la commande /em place boss [filename.yml] !aucun
spawnCooldownDéfinit le délai de réapparition du boss, en minutes.Integer0
leashRadiusDéfinit la distance que le boss peut parcourir depuis son point d'apparition avant d'être ramené en arrière. Mesurée depuis le point d'apparition.Doubleaucun
onSpawnBlockStatesDéfinit les blocs que le boss modifiera lorsqu'il apparaît.Voir les commandes ci-dessousaucun
onRemoveBlockStatesApplique les blocs enregistrés à la mort, à la commande de mise à mort ou au passage de phase ; exclut expiration, réinitialisation à pleine santé, rechargement et arrêt.Voir les commandes ci-dessousaucun

Comme indiqué, les Boss Régionaux peuvent avoir des onSpawnBlockStates et des onRemoveBlockStates.

C'est une fonctionnalité très utile pour modifier les arènes de combat pendant le combat, en particulier lorsqu'elle est combinée aux changements de phase, car il devient possible d'ouvrir et de fermer les arènes en modifiant les états des blocs.

Le format de ces données est trop complexe pour être écrit manuellement, c'est pourquoi quelques commandes existent pour vous aider à les configurer :

CommandeDescription
/em transitiveBlocks register [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE]Démarre l'enregistrement de sélections manuelles de blocs pour les états à l'apparition ou à la disparition.
/em transitiveBlocks edit [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE]Modifie les états de blocs à l'apparition ou à la disparition.
/em transitiveBlocks registerArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE]Permet aux administrateurs de sélectionner de grandes zones de blocs à enregistrer comme états.
/em transitiveBlocks editArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE]Permet aux administrateurs de modifier de grandes zones de blocs à enregistrer comme états.
Exemple d'utilisation :

Supposons que vous vouliez créer un combat où un boss apparaît dans une arène dotée d'une porte ouverte, et que vous souhaitiez que la porte se ferme au début du combat et se rouvre à la fin.

Pour cela, vous aurez besoin de deux phases de boss et devrez enregistrer trois jeux différents d'états de blocs. Pour cet exemple, je nommerai ces phases respectivement phase_1_boss.yml et phase_2_boss.yml.

  1. Utilisez /em transitiveBlocks register phase_1_boss.yml ON_SPAWN ou /em transitiveBlocks edit phase_1_boss.yml ON_SPAWN pour enregistrer les blocs de la porte dans leur état ouvert.

Cela revient à enregistrer les blocs d'air. La sélection par zone est recommandée ici.

C'est nécessaire pour garantir que la porte est ouverte à l'apparition du boss, afin que les joueurs aient assurément un moyen d'entrer.

  1. Utilisez /em transitiveBlocks register phase_2_boss.yml ON_SPAWN ou /em transitiveBlocks edit phase_2_boss.yml ON_SPAWN pour enregistrer les blocs de la porte dans leur état fermé.

Cela revient à enregistrer les blocs solides de la porte qui empêcheraient le joueur de sortir.

C'est nécessaire pour rendre la porte solide lorsque le boss entre en phase 2, empêchant ainsi les joueurs de sortir.

  1. Utilisez /em transitiveBlocks register phase_2_boss.yml ON_REMOVE ou /em transitiveBlocks edit phase_2_boss.yml ON_REMOVE pour enregistrer les blocs de la porte dans leur état ouvert.

Cela revient à enregistrer de nouveau les mêmes blocs qu'à la première étape (les blocs d'air).

C'est nécessaire pour ouvrir la porte à la mort du boss, permettant aux joueurs de quitter l'arène.


alert​

Définit si le boss est en alerte. Par défaut, les Boss Régionaux sont ralentis et ont une distance d'agression réduite lorsqu'ils sont hors combat. Ce paramètre empêche les Boss Régionaux d'être ralentis et d'avoir une distance d'agression réduite hors combat : ils se comporteront donc toujours de la même manière, en combat comme hors combat.

CléValeursDéfaut
alertBooleanfalse
Exemple
alert: true

removeAfterDeath​

Supprime définitivement cet emplacement régional après mort ou expiration du délai. Utilisé pour les rencontres uniques, comme les sanctuaires de BetterStructures. La définition partagée du boss peut conserver d'autres emplacements.

CléValeursDéfaut
removeAfterDeathBooleanfalse
Exemple
removeAfterDeath: true

Boss instanciés​

Les boss instanciés sont un sous-type de Boss Régionaux utilisé dans les Donjons Instanciés.

CléDescriptionValeursDéfaut
instancedRend le boss personnalisé instancié. Obligatoire.true / falsefalse

Régler les boss sur instanciés est obligatoire pour que les donjons instanciés fonctionnent correctement. Nous recommandons également de retirer les laisses de tous les boss instanciés.

Exemple
instanced: true