Aller au contenu principal

Qu'est-ce qu'un fichier de trésor ?

Les fichiers de trésor déterminent les tables de butin pour les coffres BetterStructures. Ils sont généralement assignés aux [générateurs](../Better Structures/creating_generators.md#treasurefilename) mais ils peuvent aussi être définis au niveau d'une [configuration de construction individuelle](../Better Structures/creating_structures.md#treasurefile).

Ces tables de butin sont assez puissantes, mais nécessitent aussi une connaissance de certains concepts statistiques de base pour les comprendre.

Lisez les concepts ci-dessous. Le reste de la page suppose que vous les comprenez !

Probabilité pondérée

BetterStructures et EliteMobs (un autre plugin du même auteur) utilisent tous deux le concept de probabilité pondérée dans leurs systèmes de butin. Ceci pour résoudre un problème simple : comment définir la chance de choisir un élément parmi une liste d'éléments potentiellement infinie ?

La probabilité pondérée résout ce problème en donnant à chaque élément un poids. Si vous avez 100 éléments et que chacun a un poids de 1, alors ils ont tous une chance égale - 1% - d'être choisis. Si vous ajoutez un élément supplémentaire, portant le total à 101 éléments, vous pouvez donner au dernier élément une chance de 1, tous les éléments ont toujours la même chance - ~0,99% - d'être choisis. Si vous donnez au dernier élément un poids de 2, le poids total devient 102, le dernier élément a un poids de 2 et 100/102 = ~0,98% donc 0,98%+0,98% = 1,96% de chance d'être choisi. Si vous donnez au dernier élément un poids de 100, le nouveau poids est 200, et puisque la moitié de ce poids est votre nouvel élément, votre nouvel élément a 50% de chance d'être choisi.

Comme vous pouvez le voir, c'est bon à utiliser lorsque vous pourriez avoir des listes de centaines de choses à randomiser.

Distribution gaussienne

Une distribution gaussienne est une fonction mathématique en forme de cloche.

Vous vous demandez peut-être comment cela est pertinent pour le système de butin. Une chose que BetterStructures doit décider en définissant le butin dans les coffres est simplement la quantité de butin qui apparaît dans ces coffres. Le montant devrait être constamment autour d'un nombre spécifique, mais idéalement pas si prévisible que l'ouverture d'un coffre devienne moins excitante.

Pour atteindre cet effet semi-aléatoire, la distribution gaussienne est utilisée pour randomiser combien d'éléments sont choisis. Une fois que cette quantité est choisie, la probabilité pondérée choisit un élément de la table de rareté au hasard et en tenant compte des poids.

Alors, comment fonctionne la distribution gaussienne ?

Heureusement, vous n'avez pas à vous soucier de la façon dont les mathématiques derrière cela fonctionnent, et pouvez plutôt vous concentrer sur les deux paramètres qui la modifient : la moyenne et l'écart-type.

Moyenne

Pour le dire simplement, mean définit le milieu de la courbe gaussienne, ce qui signifie qu'il définit la quantité d'éléments la plus probable qui apparaîtra dans un coffre. Essentiellement, si vous voulez que vos coffres aient généralement 5 éléments, définissez votre moyenne à 5.

Écart-type

Imaginez que le nombre moyen d'éléments dans un coffre est 5. L'écart-type aide à décider à quel point ce nombre peut changer d'un coffre à l'autre.

Petit Écart-type (par exemple, 1) : Cela signifie que la plupart des coffres auront des éléments très proches de la moyenne, comme 4, 5 ou 6 éléments. C'est une expérience plus prévisible. Par exemple, si un coffre a un écart-type de 1, vous pouvez vous attendre à ce que presque tous les coffres aient entre 4 et 6 éléments.

Moyen Écart-type (par exemple, 2) : Ici, il y a plus de variété. Les coffres peuvent avoir 3 à 7 éléments. Bien que 5 éléments soient toujours courants, il n'est pas inhabituel de trouver des coffres avec un peu plus ou moins. Donc, avec un écart-type de 2, vous pouvez occasionnellement trouver un coffre avec seulement 3 éléments, ou si vous avez de la chance, un avec 7 éléments.

Grand Écart-type (par exemple, 3 ou plus) : Maintenant, les choses deviennent vraiment surprenantes ! Les coffres peuvent avoir aussi peu que 2 éléments ou autant que 8 ou plus. Cela signifie que vous pouvez trouver un coffre avec seulement quelques éléments, mais il y a aussi une chance de trouver un coffre rempli de trésors. Par exemple, avec un écart-type de 3, un coffre peut avoir n'importe où de 2 à 8 éléments, ce qui rend chaque ouverture de coffre un pari excitant.

La moyenne par défaut est 4 et l'écart-type par défaut est 3.


Détails d'implémentation

Comprendre comment le système de trésor fonctionne en interne peut vous aider à le configurer plus efficacement :

Éléments minimums garantis

Le système garantit qu'au moins un élément apparaîtra toujours dans un coffre, même si le calcul de la distribution gaussienne entraînerait zéro élément. Cela empêche les joueurs de trouver des coffres complètement vides.

Placement de slot aléatoire

Les éléments sont placés dans des emplacements aléatoires dans le coffre plutôt que de se remplir séquentiellement à partir du premier emplacement. Cela crée une distribution de butin plus naturelle qui semble moins artificielle.

Gestion des erreurs

Si une matière d'élément n'existe pas dans votre version Minecraft (par exemple, en utilisant une configuration plus ancienne sur une version plus récente où les éléments ont été renommés), cet élément sera silencieusement ignoré plutôt que de causer des erreurs. Les enchantements invalides affichent un avertissement une fois dans la console, puis sont supprimés lors des occurrences ultérieures pour éviter le spam de journal.


Format spécial

Les fichiers de trésor ont un format spécial qui ressemble à ceci :

isEnabled: true
mean: 4.0
standardDeviation: 3.0
items:
common:
weight: 60
items:
- amount: 1-1
material: STONE_PICKAXE
procedurallyGenerateEnchantments: true
weight: 1.0
- amount: 1-1
material: STONE_SHOVEL
procedurallyGenerateEnchantments: true
weight: 1.0
rare:
weight: 30
items:
- amount: 1-1
material: ANVIL
weight: 6.0
- amount: 1-6
material: BEETROOT
weight: 6.0
epic:
weight: 10
items:
- amount: 2-10
material: DIAMOND
weight: 1.0
- amount: 1-1
material: DIAMOND_AXE
weight: 6.0
procedurallyGeneratedItemSettings:
golden_sword:
bane_of_arthropods:
minlevel: 1
maxlevel: 5
chance: 0.2
looting:
minlevel: 1
maxlevel: 3
chance: 0.2

Remarque : ceci est une version très réduite. La configuration de trésor par défaut complète, lorsqu'elle est exportée en YAML, fait environ 2599 lignes car elle couvre des tables de butin étendues et chaque combinaison d'enchantement possible.

isEnabled

CléValeursPar défaut
isEnabledBooléentrue

mean

CléValeursPar défaut
meanDouble4

Définissez la mean. Lisez les détails à ce sujet ici.


standardDeviation

CléValeursPar défaut
standardDeviationDouble3

Définissez l'écart-type. Lisez les détails à ce sujet ici.


items

C'est là que ça devient un peu délicat, car de nombreuses options peuvent être définies par les administrateurs. Faisons un zoom sur l'exemple de fichier de configuration d'avant.

items:
common:
weight: 60
items:
- amount: 1-1
material: STONE_PICKAXE
procedurallyGenerateEnchantments: true
weight: 1.0
- amount: 1-1
material: STONE_SHOVEL
procedurallyGenerateEnchantments: true
weight: 1.0
rare:
weight: 30
items:
- amount: 1-1
material: ANVIL
weight: 6.0
- amount: 1-6
material: BEETROOT
weight: 6.0

Ici, vous pouvez voir que sous la clé de configuration items nous avons une carte avec common et rare. Ce sont des raretés !


rarities

Les raretés n'ont pas de nom fixe. Vous pouvez les ajouter ou les supprimer, et les personnaliser autant que vous le souhaitez, tant que vous utilisez le même format.

Notez que ce qui rend ces tables de rareté plus ou moins rares, c'est le poids de la table de butin !

Par défaut :

  • common a un poids par défaut de 60
  • rare a un poids par défaut de 30
  • epic a un poids par défaut de 10

Rendant les éléments courants 6 fois plus susceptibles de tomber que les éléments épiques. Vous pouvez en lire plus sur les poids ici!

À part le poids, chaque table de rareté a sa propre liste d'éléments.


rarity items

Les éléments de rareté sont une liste de cartes qui liste tous les éléments que la table de rareté contient.

Ces éléments ont les paramètres suivants :

CléValeursPar défaut
amountmin-max Entiervariable
materialMatériauvariable
procedurallyGenerateEnchantmentsBooléenvariable
weightDoublevariable

amount


Définit la quantité à lâcher. Cela peut être exprimé en plage amount: MIN-MAX ou en une seule valeur amount: VALUE pour les quantités fixes. Exemples :

  • Quantité variable : amount: 1-5 (lâche entre 1 et 5 éléments)
  • Quantité fixe : amount: 3 (lâche toujours exactement 3

material

Définit le matériau en utilisant les noms de l'API Spigot de l' élément à potentiellement lâcher.


Cas spécial - sérialisé

Lors de l'utilisation de la commande lootify, au lieu d'un matériau, lootify fournira un paramètre sérialisé. Ceci est généré automatiquement par le plugin et ne doit pas être généré manuellement. C'est dans un format qui n'est pas lisible par l'homme.


mmoitem

Définit un élément personnalisé à partir du plugin MMOItems. C'est une alternative au champ matériau pour utiliser des éléments personnalisés au lieu de matériaux vanilla Minecraft.

Le format est : mmoitem: TYPE@ITEMNAMEExemple :yml- amount: 1-1 mmoitem: SWORD@Excalibur weight: 1.0Remarque : Cela nécessite l'installation du plugin MMOItems. Si MMOItems n'est pas disponible ou que l'élément spécifié n'existe pas, l'entrée sera ignorée avec un avertissement dans les journaux de la console.


info

Champ optionnel pour ajouter des notes ou des commentaires aux entrées d'éléments. Ce champ est complètement ignoré par le plugin et existe uniquement à des fins de documentation administrative. Utilisez-le pour vous rappeler pourquoi certains éléments sont configurés de manière spécifique.

Exemple :yml- amount: 1-1 material: DIAMOND_SWORD weight: 1.0 info: "Butin rare pour avoir complété le donjon"***

weight

Définit le poids pour la chance pondérée. Plus d'informations à ce sujet ici.


procedurallyGenerateEnchantments

Définit si l'élément doit être généré procéduralement en fonction des paramètres dans procedurallyGeneratedItemSettings. Notez que selon les paramètres, cela pourrait entraîner la génération d'un élément sans enchantements.

procedurallyGeneratedItemSettings

Jetons un autre regard sur notre exemple de fichier de configuration :

procedurallyGeneratedItemSettings:
golden_sword:
bane_of_arthropods:
minlevel: 1
maxlevel: 5
chance: 0.2
looting:
minlevel: 1
maxlevel: 3
chance: 0.2

Comme vous pouvez le voir, ce fichier liste les types de matériaux, suivis des enchantements, puis suivis des niveaux minimum et maximum et d'une chance.

Notez que vous ne pouvez pas ajouter de matériaux personnalisés à partir d'autres plugins dans ces paramètres, et vous ne serez probablement pas en mesure d'ajouter des enchantements personnalisés à partir d'autres plugins à moins que leur auteur ne dise explicitement qu'ils ont rendu leur système compatible.

Concernant les paramètres d'enchantement :

CléValeursPar défaut
minlevelEntiervariable
maxlevelEntiervariable
chanceChancevariable

minlevel

Définit le niveau d'enchantement minimum.


maxlevel

Définit le niveau d'enchantement maximum.


chance

Définit la probabilité que l'enchantement soit appliqué, en tant que valeur décimale entre 0,0 (jamais) et 1,0 (toujours). Par exemple, une valeur de 0,2 signifie une chance de 20%. Cela utilise une simple vérification de probabilité, et non une probabilité pondérée comme le système de sélection d'éléments.


Dépannage

Les éléments n'apparaissent pas dans les coffres

  • Vérifiez que le fichier de trésor a isEnabled: true
  • Vérifiez la console pour les avertissements concernant les matériaux ou les éléments invalides
  • Assurez-vous que MMOItems est installé si vous utilisez des éléments personnalisés
  • Les matériaux doivent utiliser des noms exacts de l'API Spigot

Les enchantements ne s'appliquent pas

  • Définissez procedurallyGenerateEnchantments: true sur l'élément
  • Vérifiez que les noms d'enchantement correspondent aux clés d'espace de noms de Minecraft
  • Vérifiez que les niveaux min/max sont dans des plages valides pour cet enchantement
  • N'oubliez pas que les valeurs de chance sont des probabilités (0,2 = 20%), pas des garanties

Les enchantements personnalisés des plugins ne fonctionnent pas

Seuls les enchantements personnalisés qui soutiennent explicitement l'intégration BetterStructures fonctionneront. Consultez l'auteur du plugin d'enchantement sur la compatibilité. Les enchantements invalides affichent un avertissement dans la console suggérant cette possibilité.

Des coffres vides apparaissent

Cela ne devrait pas se produire car le système garantit au moins un élément. Si vous voyez des coffres vides, vérifiez :

  • Que le coffre est rempli par BetterStructures (pas par un autre plugin)
  • Que tous les éléments de votre fichier de trésor sont valides (vérifiez les avertissements de la console)
  • Que le fichier de trésor est réellement chargé (vérifiez les journaux de démarrage)