Aller au contenu principal

Créer des boss de monde

Les Boss de Monde sont aussi parfois appelés Boss Régionaux.

Que sont-ils ?​

Les Boss de Monde sont des Boss Personnalisés configurés pour apparaître à un emplacement spécifique avec un délai spécifique. Ce sont aussi les boss utilisés dans les Donjons. Cependant, dans cette section, nous parlerons spécifiquement de la création de Boss de Monde destinés à être utilisés en dehors des donjons.

À quoi servent-ils ?​

Les Boss de Monde permettent aux joueurs d'affronter un défi fixe tout en sachant que le butin sera gratifiant.

De quoi ai-je besoin pour créer un boss de monde ?​

  1. Un emplacement. Une salle de boss est recommandée, avec un rayon d'environ 15 blocs (30 blocs de large) en raison de la portée d'aggro de Minecraft. De plus, assurez-vous que le terrain est protégé par une région WorldGuard (afin que les joueurs ne puissent pas construire de pièges) et que le terrain ne puisse pas être exploité pour le combat.
  2. Un temps de réapparition. Le minuteur de réapparition est essentiel. Je ne recommande pas un minuteur de réapparition de moins de 30 minutes, sinon la réapparition du boss sera moins un événement. 1 heure est un assez bon temps, mais vous pourriez aussi vouloir faire en sorte que le boss réapparaisse une fois par jour ou même une fois par semaine.
  3. Un temps de fuite. Plus la réapparition est longue, plus le temps de fuite devrait être long. Tenez également compte du fait que le temps de fuite devrait être suffisamment long pour que les gens puissent affronter confortablement le boss. Les minuteurs de fuite sont importants si vous ne voulez pas permettre aux joueurs de tuer le boss en kamikaze. Ce n'est pas obligatoire, ni même recommandé si vous voulez faire des boss massifs avec une réapparition d'une semaine.
  4. Un Boss Personnalisé. Les Boss de Monde ne sont en réalité que des Boss Personnalisés avec des règles d'apparition personnalisées. Assurez-vous de sélectionner des powers ayant une bonne compatibilité de combat à l'échelle d'un raid.
  5. Un butin intéressant. Le grand attrait des Boss de Monde, défi mis à part, est le butin. Assurez-vous que les joueurs puissent en tirer quelque chose qu'ils ne peuvent tout simplement pas obtenir ailleurs.
  6. Un thème. Un bon boss Régional devrait avoir un thème, avec un emplacement thématique et un butin thématique.

Options de configuration des boss de monde​

Ces paramètres sont ajoutés aux fichiers de configuration normaux des Boss Personnalisés. Une page wiki détaillée à leur sujet est disponible ici.


isRegionalBoss​

Définit si le boss est un boss régional. Les boss régionaux sont un autre nom pour les Boss de Monde, vous voudrez donc définir cela sur true.

CléValeursDéfaut
isRegionalBossBooleanfalse
Exemple
isRegionalBoss: true

spawnLocations​

Les emplacements d'apparition doivent être définis depuis le jeu à l'aide de la commande /em place boss <filename.yml>.

Exécutez-la en tant que joueur avec elitemobs.place.admin, après avoir chargé une configuration avec isRegionalBoss: true. Chaque utilisation ajoute un autre emplacement du même boss. La commande centre la position dans un bloc puis cherche un espace traversable vers le haut. Vérifiez qu'il y a assez de place pour votre boss.

Bien qu'il soit possible d'ajouter manuellement des emplacements depuis la configuration, je ne recommande pas d'essayer de le faire car il est tout simplement trop facile de se tromper.

CléValeursDéfaut
spawnLocationsString Listaucun
Exemple

Emplacements dans les fichiers de configuration (pour utilisateurs avancés) Les fichiers de configuration du Boss Régional stockent toutes les instances de ce Boss Régional dans un seul fichier en enregistrant plusieurs emplacements d'apparition ainsi que des minuteurs de réapparition.

En termes pratiques, cela signifie que cette entrée :

spawnLocations:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
- elitemobs_sewer_maze,-135.02262355317436,168.2,-153.28849346821508,-98.53906,60.750263:1609026066482
- elitemobs_sewer_maze,-70.43846307626053,168.2,-174.13499832314378,-271.24023,64.19999:1610710886530
- elitemobs_sewer_maze,-130.39762674971664,168.2,-171.67396911490718,-47.532227,51.900173:1609026066482
- elitemobs_sewer_maze,-117.12782160766056,162.2,-166.40989416757444,-71.37402,-1.4997427:1610710974882
- elitemobs_sewer_maze,-105.13138759611667,168.2,-169.85898023126538,-124.34766,41.24988:1610710945331
- elitemobs_sewer_maze,-106.21847515732084,169.2,-152.3609257554766,-170.86523,21.450315:1610537606222

contient 7 Boss Régionaux différents, à des emplacements différents, et avec des minuteurs de réapparition différents.

Décomposons les détails, en examinant le premier Boss Régional :

- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931

Comme cela suit le format world,x,y,z,yaw,pitch:unixTimeStamp, le boss apparaît dans un monde appelé elitemobs_sewer_maze à x = -70.17178578884845, y = 168.2, z = -173.17112099568718, yaw = -271.24023, pitch = 64.19999.

L'horodatage conserve l'échéance de réapparition en millisecondes depuis l'époque Unix, y compris après un redémarrage. Utilisez un convertisseur qui accepte les millisecondes pour le consulter.

Pour supprimer une échéance enregistrée, arrêtez le serveur avant de modifier le fichier, puis retirez le suffixe :unixTimeStamp, deux-points compris. L'entrée devient world,x,y,z,yaw,pitch. Le plugin en cours d'exécution sauvegarde régulièrement les emplacements et peut écraser vos modifications manuelles. Sans échéance, le boss est restauré sans annonce d'apparition lorsque son monde et son chunk permettent son apparition.


spawnCooldown​

Définit le délai entre la mort ou la fuite par expiration et la prochaine tentative d'apparition, en minutes. 0 programme une tentative immédiate ; une valeur négative désactive la réapparition programmée. Le monde et le chunk doivent être disponibles pour que l'entité apparaisse. Un boss en patrouille doit aussi se trouver dans une zone où les entités sont mises à jour.

Note : des réapparitions plus longues sont recommandées pour les gros boss !.

CléValeursDéfaut
spawnCooldownInteger0
Exemple
spawnCooldown: 20

timeout​

Définit le délai de fuite depuis l'apparition, en minutes, et non depuis le début du combat. Les valeurs inférieures à 1 le désactivent. Restaurer un boss régional après le chargement d'un chunk ou d'un monde, ou après un redémarrage, relance le délai complet. Ce n'est pas une échéance persistante. Les changements de phase conservent le minuteur de la rencontre.

Note : cela devrait être suffisamment long pour que les joueurs puissent terminer confortablement le combat.

CléValeursDéfaut
timeoutInteger0
Exemple
timeout: 60

Configure le boss pour qu'il s'échappe après 60 minutes s'il n'est pas vaincu.


leashRadius​

Définit la limite de retour autour du point de placement. Avec la navigation native, les créatures compatibles commencent un retour souple à la moitié du rayon, et le retour forcé utilise le rayon complet. Le boss peut être téléporté s'il n'atteint pas sa destination. Les Ender Dragons sont exclus de ces objectifs natifs. Sans navigation native, une vérification toutes les 3 secondes ramène les boss qui dépassent le rayon complet ; cette solution exige un rayon d'au moins 1. À la fin d'un retour natif, le boss ne regagne toute sa santé que si regenerateCustomBossHealthOnCombatEnd est activé dans MobCombatSettings.yml (true par défaut).

Note : essayez d'éviter de créer des zones de combat nécessitant des leashes de moins de 20 blocs, car cela rendra le combat pire.

CléValeursDéfaut
leashRadiusDouble0 (désactivé)
Exemple
leashRadius: 30

escapeMessage​

Définit le message envoyé aux joueurs du monde du boss lors de sa fuite par expiration. Il faut un message non vide et une valeur announcementPriority d'au moins 1. À partir de 3, le message passe aussi par l'intégration Discord configurée. La fuite retire le boss et démarre le délai de réapparition, sauf si removeAfterDeath: true supprime définitivement son emplacement.

CléValeursDéfaut
escapeMessageStringaucun
Exemple
escapeMessage: "&cThe World Boss has escaped!"

announcementPriority​

Contrôle les annonces et l'accès au suivi. Les messages doivent être configurés. Le suivi exige aussi showCustomBossLocation dans MobCombatSettings.yml ; locationMessage est facultatif.

NiveauComportement
0Aucune annonce d'apparition/fuite ni suivi ; les messages de mort configurés peuvent encore atteindre les attaquants
1Messages d'apparition/mort/fuite configurés et suivi via /em s'il est activé
2Identique au niveau 1 (aucun comportement supplémentaire)
3Niveau 1 + notifications Discord (si configurées)

L'annonce d'apparition respecte announcementBroadcastWorldOnly dans events.yml. À priorité positive, les messages de mort sont diffusés sur tout le serveur et nécessitent doCustomEliteMobsDeathMessages dans MobCombatSettings.yml. La fuite est annoncée uniquement dans le monde du boss. Un boss restauré peut être suivi sans répéter l'annonce d'apparition. Définissez explicitement la priorité : ajouter un message ne change pas automatiquement la valeur par défaut 0.

CléValeursDéfaut
announcementPriorityInteger0
Exemple
announcementPriority: 3

Configure le boss pour qu'il s'annonce dans le chat et sur Discord, et permet aux joueurs de le suivre.


isPersistent​

Conserve le boss pour le restaurer après le déchargement de son chunk. L'entité active est retirée pendant le déchargement, puis restaurée au chargement du chunk concerné. Cela ne maintient ni le chunk chargé ni le boss au combat.

Les boss régionaux placés activent déjà la persistance par leur propre cycle de vie, indépendamment de ce paramètre des boss personnalisés ordinaires.

Note : Trop de boss persistants (des centaines) peuvent causer des problèmes de performance.

CléValeursDéfaut
isPersistentBooleanfalse
Exemple
isPersistent: true

removeAfterDeath​

Détermine si le Boss de Monde est définitivement supprimé après avoir été vaincu. Utile pour les boss d'événement uniques ou les rencontres spéciales qui ne devraient pas réapparaître.

Avec false, la valeur par défaut, la mort ou la fuite par expiration programme une nouvelle apparition après spawnCooldown, sauf si cette valeur est négative.

Avec true, la mort ou la fuite par expiration retire définitivement ce boss placé de la liste des emplacements.

CléValeursDéfaut
removeAfterDeathBooleanfalse
Exemple
removeAfterDeath: true

Blocs Transitifs​

Les blocs transitifs se configurent avec onSpawnBlockStates et onRemoveBlockStates. Ces options enregistrent les changements de blocs pour les états ON_SPAWN et ON_REMOVE décrits ci-dessous.

C'est ainsi que vous pouvez faire en sorte que les boss ouvrent ou ferment des portes / zones ou même modifient une arène pendant le combat si vous l'utilisez avec des boss à phases !

CléValeursDéfaut
onSpawnBlockStatesVoir l'Explication Détailléeaucun
CléValeursDéfaut
onRemoveBlockStatesVoir l'Explication Détailléeaucun
Explication Détaillée

Tous les blocs sont relatifs à l'emplacement d'apparition. Assurez-vous d'avoir votre emplacement d'apparition final avant de commencer à définir des blocs.

L'éditeur exige un joueur avec elitemobs.transitiveblocks. Placez un seul exemplaire du boss régional pendant l'enregistrement ; plusieurs emplacements de la même configuration sont refusés. Les fichiers de phase peuvent utiliser leur boss régional parent. Ces paramètres enregistrent les données de blocs, pas les inventaires ni les autres contenus d'entités de bloc. Ils ne sont pas pivotés selon le yaw du boss.


Si vous avez déjà créé une grande zone de Blocs Transitifs et que vous devez maintenant déplacer le boss, mais que vous ne voulez pas refaire les Blocs Transitifs. Alors vous pouvez utiliser l'action EliteScript Teleport pour déplacer le boss vers le bon emplacement après son apparition. Gardez à l'esprit que vous devrez ajuster votre leash en conséquence.

En raison de la complexité de la définition des blocs, il n'est pas recommandé de le faire manuellement. Vous devriez utiliser les commandes suivantes pour le faire :

  • /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
  • /em transitiveBlocks edit <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
  • /em transitiveBlocks registerArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
  • /em transitiveBlocks editArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
  • /em transitiveBlocks cancel

Décomposons cela.

/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>

Exécutez la commande pour commencer une nouvelle sélection ON_SPAWN ou ON_REMOVE, puis à nouveau pour l'enregistrer. Un nouvel enregistrement remplace la liste précédente de cet état. Terminez ou annulez la sélection avant de commencer un autre fichier ou état ; une autre commande valide d'enregistrement ou d'édition valide la session active.

ON_SPAWN applique les blocs enregistrés à l'apparition ou à la réapparition du boss régional. ON_REMOVE s'applique à sa mort ou à la commande de mise à mort, et lors du passage à la phase suivante avant de remplacer la configuration des blocs. La fuite par expiration, la remise à zéro des phases après guérison complète, le rechargement et l'arrêt n'appliquent pas l'état de défaite.

Pendant l'enregistrement, faites un clic droit pour sauvegarder l'état actuel du bloc, ou un clic gauche pour enregistrer de l'air à cet endroit. Ces clics sont annulés : ils sélectionnent l'état sans placer ni casser de bloc. Chaque position n'est enregistrée qu'une fois : cliquer sur une position déjà enregistrée avec l'autre bouton la retire de la sélection. Les clics en dehors du monde du boss sont refusés avec un message. Relancez la commande pour sauvegarder.

/em transitiveBlocks edit <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>

Si vous voulez modifier des blocs déjà définis, vous pouvez utiliser cette commande. Fonctionne de manière très similaire à /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>.

/em transitiveBlocks registerArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>

Tout comme /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>, ceci vous permet d'enregistrer des blocs, mais il permet de les sélectionner en obtenant deux coins diamétralement opposés (comme la sélection de région de worldedit / worldguard) au lieu de sélectionner les blocs individuellement.

Sélectionnez un coin par clic gauche et le coin opposé par clic droit, puis relancez la commande pour sauvegarder la zone. Les deux coins doivent se trouver dans le monde du boss, et vous devez vous tenir dans ce monde au moment de la sauvegarde. Sinon, EliteMobs refuse la sauvegarde avec un message et garde votre sélection active. Les blocs de la zone remplacent tout bloc déjà sélectionné à la même position.

defaultTransitiveBlockLimiter dans config.yml vaut 500 par défaut, mais n'émet actuellement qu'un avertissement. Une sélection trop grande est quand même enregistrée. Gardez les zones petites. L'application des états charge les chunks concernés et modifie tous les blocs sur un seul tick, ce qui peut provoquer du lag.

/em transitiveBlocks editArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>

Charge les états enregistrés et ajoute les états actuels des blocs de la zone sélectionnée. La sélection des coins et l'avertissement de taille sont les mêmes que pour registerArea.

/em transitiveBlocks cancel

Abandonne la sélection non enregistrée. N'annule pas vos constructions réelles dans le monde ni les modifications déjà enregistrées dans la configuration du boss.


Conseils pour concevoir un grand combat de boss régional​

  1. Réfléchissez vraiment à la façon dont les powers de votre Boss Personnalisé se complètent. Vous ne voulez pas que votre boss passe la plupart de son temps à l'arrêt parce qu'il lance quelque chose, car cela peut en fait rendre le combat très facile. Vous ne voulez pas non plus que le boss n'ait que des attaques à distance et aucun power de mêlée, ou l'inverse, sauf si vous concevez quelque chose de très spécifique. Tester le jeu est important.

  2. Choisissez la santé en tenant compte du plafond. La santé est limitée par la valeur active settings.attribute.maxHealth.max, normalement 2048. Avec healthMultiplier: 10.0, le boss atteint ce plafond au niveau 33. Augmenter encore le niveau modifie les calculs de combat sans ajouter de santé. Consultez healthMultiplier avant de combiner un gros multiplicateur avec un level élevé.

  3. Des dégâts - pas trop. Les EliteMobs sont déjà extrêmement mortels par défaut, et les powers ont tendance à être exponentiellement plus mortels. Au lieu d'augmenter les dégâts jusqu'au plafond, envisagez d'utiliser des powers pour faire frapper le boss plus fort.

  4. Des exploits, partout. Assurez-vous bien que le terrain n'est pas exploitable. Mettez le boss dans une pièce fermée pour empêcher les gens d'essayer de le snipper de loin. Le power d'invulnérabilité aux flèches est probablement extrêmement important pour beaucoup de Boss de Monde, car les mobs de Minecraft ne peuvent pas gérer le fait d'être snippés à plusieurs chunks de distance, donc si vous voulez autoriser les attaques à l'arc, assurez-vous que les arcs ne peuvent pas être exploités.

  5. Connaissez le plugin. Il y a beaucoup de petites astuces pour battre EliteMobs, comme le fait que certains powers peuvent être contrés en utilisant des boucliers, tandis que d'autres devraient être contrés en esquivant ou même en s'éloignant temporairement du boss. Plus vous savez comment fonctionnent les powers et comment ils sont contrés, meilleurs seront les boss que vous créerez.


Exemple complet de boss de monde​

Cet exemple combine les principaux paramètres. Remplacez le monde et les coordonnées par les vôtres, puis vérifiez que les pouvoirs et l'objet personnalisé indiqués sont activés. Enregistrez les changements de blocs en jeu ; le bloc unique sert seulement à illustrer le format.

isEnabled: true
entityType: ZOMBIE
name: "&cThe Zombie King"
level: 30
healthMultiplier: 10.0
damageMultiplier: 2.0

# World Boss specific settings
isRegionalBoss: true
isPersistent: true

# Spawn settings
spawnLocations:
- world,100,64,100,0,0
spawnCooldown: 60

# Combat boundaries
leashRadius: 30
timeout: 20

# Messages and announcements
spawnMessage: "&cThe Zombie King has risen!"
deathMessage: "&aThe Zombie King has been defeated by $players!"
escapeMessage: "&eThe Zombie King has escaped..."
announcementPriority: 2

# Arena modification
onSpawnBlockStates:
- 0,0,0/minecraft:barrier
onRemoveBlockStates:
- 0,0,0/minecraft:air

# Boss features
powers:
- zombie_friends.lua
- ground_pound.lua
uniqueLootList:
- filename=magmaguys_toothpick.yml:chance=1.0

Ce boss va :

  • Programmer une apparition 60 minutes après sa mort ou sa fuite par expiration, lorsque le monde et le chunk sont disponibles
  • S'échapper 20 minutes après son apparition ou sa restauration s'il n'est pas vaincu
  • Annoncer son apparition / mort / fuite dans le chat et permettre le suivi par les joueurs
  • Être restauré quand son chunk est chargé à nouveau
  • Modifier les blocs de l'arène lors de son apparition et de sa mort
  • Laisser tomber un butin unique lorsqu'il est vaincu
Vérifiez le plafond de santé avant d'augmenter le niveau

Au niveau 30 avec healthMultiplier: 10.0, cet exemple a 1400 points de vie sous le plafond par défaut. Il atteint 2048 au niveau 33. La santé de base est plafonnée avant le multiplicateur, puis le résultat est plafonné à nouveau. Réduire le multiplicateur ne rétablit donc pas la croissance par niveau lorsque la santé de base a déjà atteint le plafond. Voir healthMultiplier.