Systeme de butin d'Extractioncraft
Extractioncraft dispose d'un systeme de butin en couches base sur trois concepts : les paquets de contenu referencent des tables de butin, les tables de butin referencent des pools de butin, et les pools de butin definissent les objets qui peuvent etre obtenus.
Vue d'ensemble
Content Package
-> chestLootTables / barrelLootTables (weighted selection)
-> Loot Table
-> lootTable entries (each has a chance to roll)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (weighted selection of one item)
Tables de butin
Les fichiers de configuration des tables de butin se trouvent dans le dossier loot_tables/. Chaque fichier definit une liste d'entrees de pools de butin, ou chaque entree a une chance independante de produire un objet.
| Cle | Type | Defaut | Description |
|---|---|---|---|
isEnabled | Boolean | true | Si cette table de butin est active |
spawnPools | Liste de String | [] | Noms des pools d'apparition BetterStructures. Lorsqu'un EliteMob associe a un pool d'apparition correspondant est tue, cette table de butin est utilisee pour ses drops. |
lootTable | Liste d'objets | [] | Chaque entree reference un nom de fichier de pool de butin et une chance (0.0 a 1.0) |
Format d'entree de table de butin
lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2
Chaque entree est lancee independamment. Une chance de 0.5 signifie une probabilite de 50% que ce pool produise un drop.
Pools de butin
Les fichiers de configuration des pools de butin se trouvent dans le dossier loot_pools/. Chaque pool definit un ensemble d'objets possibles. Lorsqu'un pool est lance, un objet est selectionne en fonction de la probabilite ponderee.
| Cle | Type | Defaut | Description |
|---|---|---|---|
isEnabled | Boolean | true | Si ce pool de butin est actif |
eliteMobsLoot | Liste d'objets | [] | Objets personnalises EliteMobs qui peuvent etre obtenus |
vanillaLoot | Liste d'objets | [] | Objets Minecraft vanilla qui peuvent etre obtenus |
Entree de butin EliteMobs
eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5
Le filename reference un fichier de configuration d'objet personnalise EliteMobs. Le weight determine la probabilite relative de drop parmi toutes les entrees du pool.
Entree de butin vanilla
vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0
Le material est un nom d'enum Material de Bukkit. Le weight fonctionne de la meme maniere que pour les entrees de butin d'elite. Toutes les entrees d'elite et vanilla d'un pool sont en competition dans une seule selection ponderee.
Butin de conteneur (Coffres et Tonneaux)
Pendant un match, les coffres et tonneaux sont places par BetterStructures. Lorsqu'un joueur fait un clic droit sur un coffre ou un tonneau :
- Le joueur doit rester immobile pendant 3 secondes pendant que le conteneur s'ouvre.
- Bouger annule l'interaction.
- En cas de succes, une table de butin est selectionnee dans la liste
chestLootTablesoubarrelLootTablesdu paquet de contenu (selection ponderee). - Les entrees de la table de butin selectionnee sont lancees independamment, et les objets resultants apparaissent a l'emplacement du conteneur.
- Le conteneur est detruit apres le pillage (remplace par de l'air).
Les conteneurs affichent des particules de portail toutes les 10 ticks lorsqu'ils sont actifs dans un match, les rendant visibles pour les joueurs.
Butin de meurtre de mob
Lorsqu'un EliteMob meurt pendant un match, le plugin verifie son pool d'apparition BetterStructures. Toute table de butin dont la liste spawnPools contient le pool d'apparition du mob generera des drops a l'emplacement de mort du mob. Le niveau du mob est transmis a EliteMobs pour la generation d'objets adaptes au niveau.
Comportement des objets lors de l'extraction
- Les joueurs qui s'extraient avec succes conservent tous leurs objets. Les objets dans leur inventaire sont lies a l'ame (via l'enchantement soulbind d'EliteMobs) a la sortie.
- Les joueurs qui echouent a s'extraire (quittent, se deconnectent ou sont rattrapes par la bordure du monde) perdent tous les objets de leur inventaire lorsque
deleteItemsOnFailToExtractesttruedansconfig.yml.