Aller au contenu principal

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

Les fichiers de tresor determinent les tables de butin pour les coffres de BetterStructures. Ils sont generalement assignes aux [generateurs](../Better Structures/creating_generators.md#treasurefilename) mais peuvent aussi etre definis au niveau d'une [configuration de construction individuelle](../Better Structures/creating_structures.md#treasurefile).

Ces tables de butin sont assez puissantes, mais necessitent la connaissance de quelques concepts statistiques de base.

Lisez ces concepts ici, le reste de la page suppose que vous les comprenez !

Probabilite ponderee

BetterStructures et EliteMobs (un autre plugin du meme auteur) utilisent le concept de probabilite ponderee dans leurs systemes de butin. Cela resout un probleme simple : comment definir la chance de choisir un objet dans une liste potentiellement infinie ?

La probabilite ponderee resout ce probleme en donnant un poids a chaque objet. Avec 100 objets ayant chacun un poids de 1, tous ont une chance egale - 1%. Si vous ajoutez un objet supplementaire (total 101) avec un poids de 1, tous les objets ont toujours la meme chance - ~0,99%. Si vous donnez au dernier objet un poids de 2, sa chance augmente. Avec un poids de 100, le nouveau poids total est 200, et votre nouvel objet a 50% de chance.

Comme vous pouvez le voir, c'est ideal pour les listes de centaines d'elements a randomiser.

Distribution gaussienne

Une distribution gaussienne est une fonction mathematique en forme de cloche.

BetterStructures doit decider combien de butin apparait dans les coffres. La quantite doit etre coherente autour d'un nombre specifique, mais pas trop previsible.

Pour obtenir cet effet semi-aleatoire, la distribution gaussienne est utilisee pour randomiser combien d'objets sont choisis. Ensuite, la probabilite ponderee choisit un element de la table de rarete.

Heureusement, vous n'avez pas a vous soucier des mathematiques et pouvez vous concentrer sur les deux parametres : moyenne et ecart-type.

Moyenne

Simplement, mean definit le centre de la courbe gaussienne, soit la quantite la plus probable d'objets dans un coffre. Si vous voulez que vos coffres aient generalement 5 objets, definissez la moyenne a 5.

Ecart-type

Imaginez que la moyenne est 5. L'standard deviation determine combien ce nombre peut varier.

Petit (ex. 1) : La plupart des coffres auront 4, 5 ou 6 objets.

Moyen (ex. 2) : Les coffres pourraient avoir 3 a 7 objets.

Grand (ex. 3 ou plus) : Les coffres pourraient avoir aussi peu que 2 ou autant que 8 ou plus.

La moyenne par defaut est 4 et l'ecart-type par defaut est 3.


Details d'implementation

Le systeme garantit qu'au moins un objet apparaitra toujours dans un coffre.

Le systeme garantit qu'au moins un objet apparaitra toujours dans un coffre.

Les objets sont places dans des emplacements aleatoires du coffre plutot que remplis sequentiellement.

Les objets sont places dans des emplacements aleatoires du coffre plutot que remplis sequentiellement.

Si un materiau n'existe pas dans votre version de Minecraft, cet objet sera silencieusement ignore. Les enchantements invalides afficheront un avertissement une fois dans la console.

Si un materiau n'existe pas dans votre version de Minecraft, cet objet sera silencieusement ignore. Les enchantements invalides afficheront un avertissement une fois dans la console.


Format special

Format special

isEnabled: true
mean: 4.0
standardDeviation: 3.0
vanillaTreasure: BURIED_TREASURE
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

isEnabled

KeyValuesDefault
isEnabledBooleantrue

mean

KeyValuesDefault
meanDouble4

standardDeviation

KeyValuesDefault
standardDeviationDouble3

vanillaTreasure

KeyValuesDefault
vanillaTreasureStringnone

Definit une table de butin vanilla Minecraft optionnelle a utiliser en plus du butin personnalise.


items

C'est ici que cela devient un peu delicat, car de nombreuses options peuvent etre definies par les administrateurs.

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

rarities

Les raretes n'ont pas de nom fixe. Vous pouvez les ajouter, les supprimer et les personnaliser a volonte.


rarity items

KeyValuesDefault
amountmin-max Integervariable
materialMaterialvariable
procedurallyGenerateEnchantmentsBooleanvariable
weightDoublevariable

amount

Definit la quantite a laisser tomber. Peut etre exprime en plage amount: MIN-MAX ou en valeur fixe amount: VALEUR.

material

Definit le materiau en utilisant les noms de l'API Spigot de l'objet potentiellement a laisser tomber.


Special case - serialized

Lors de l'utilisation de la commande lootify, au lieu d'un materiau, lootify fournira un parametre serialized. Il est automatiquement genere par le plugin et ne doit pas etre genere manuellement.


mmoitem

Definit un objet personnalise du plugin MMOItems.

- amount: 1-1
mmoitem: SWORD@Excalibur
weight: 1.0

info

Champ optionnel pour ajouter des notes ou commentaires. Completement ignore par le plugin.

- amount: 1-1
material: DIAMOND_SWORD
weight: 1.0
info: "Rare drop for completing the dungeon"

weight

Definit le poids pour la chance ponderee.


procedurallyGenerateEnchantments

Definit si l'objet doit etre genere proceduralement selon les parametres de procedurallyGeneratedItemSettings.

procedurallyGeneratedItemSettings

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 materiaux, suivis des enchantements puis des niveaux min et max et d'une chance.

KeyValuesDefault
minlevelIntegervariable
maxlevelIntegervariable
chanceChancevariable

minlevel

Definit le niveau minimum d'enchantement.


maxlevel

Definit le niveau maximum d'enchantement.


chance

Definit la probabilite d'application de l'enchantement, en valeur decimale entre 0,0 (jamais) et 1,0 (toujours). Exemple : 0,2 signifie 20% de chance.


Dépannage

Les items n'apparaissent pas dans les coffres

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

Les enchantements ne s'appliquent pas

  • Définissez procedurallyGenerateEnchantments: true sur l'item
  • Vérifiez que les noms d'enchantements correspondent aux clés namespacées de Minecraft
  • Vérifiez que les niveaux min/max sont dans les 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 de plugins personnalisés ne fonctionnent pas

Seuls les enchantements personnalisés qui supportent explicitement l'intégration BetterStructures fonctionneront. Vérifiez auprès de l'auteur du plugin d'enchantement la compatibilité. Les enchantements invalides afficheront 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 item. Si vous voyez des coffres vides, vérifiez :

  • Que le coffre est rempli par BetterStructures (pas un autre plugin)
  • Que tous les items dans votre fichier de trésor sont valides (consultez les avertissements de la console)
  • Que le fichier de trésor est effectivement chargé (consultez les logs de démarrage)