Saltar al contenido principal

Sistema de Botín de Extractioncraft

Extractioncraft tiene un sistema de botín por capas construido sobre tres conceptos: los paquetes de contenido hacen referencia a tablas de botín, las tablas de botín hacen referencia a grupos de botín, y los grupos de botín definen los objetos reales que pueden obtenerse.

Resumen

Content Package
-> chestLootTables / barrelLootTables (selección ponderada)
-> Loot Table
-> lootTable entries (cada una tiene una probabilidad de tirada)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (selección ponderada de un objeto)

Tablas de Botín

Las configuraciones de tablas de botín se encuentran en la carpeta loot_tables/. Cada archivo define una lista de entradas de grupos de botín, donde cada entrada tiene una probabilidad independiente de producir un objeto.

ClaveTipoPredeterminadoDescripción
isEnabledBooleantrueSi esta tabla de botín está activa
spawnPoolsString list[]Nombres de spawn pools de BetterStructures. Cuando un EliteMob asociado con un spawn pool coincidente muere, esta tabla de botín se usa para sus drops.
lootTableList of objects[]Cada entrada referencia un nombre de archivo de grupo de botín y una chance (0.0 a 1.0)

Formato de Entrada de Tabla de Botín

lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2

Cada entrada tira independientemente. Una chance de 0.5 significa una probabilidad del 50% de que este grupo produzca un drop.

Grupos de Botín

Las configuraciones de grupos de botín se encuentran en la carpeta loot_pools/. Cada grupo define un conjunto de objetos posibles. Cuando se tira un grupo, se selecciona un objeto basado en probabilidad ponderada.

ClaveTipoPredeterminadoDescripción
isEnabledBooleantrueSi este grupo de botín está activo
eliteMobsLootList of objects[]Objetos personalizados de EliteMobs que pueden obtenerse
vanillaLootList of objects[]Objetos vanilla de Minecraft que pueden obtenerse

Entrada de Botín de EliteMobs

eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5

El filename referencia una configuración de objeto personalizado de EliteMobs. El weight determina la probabilidad relativa de drop entre todas las entradas del grupo.

Entrada de Botín Vanilla

vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0

El material es un nombre del enum Material de Bukkit. El weight funciona igual que para las entradas de botín de elite. Todas las entradas de elite y vanilla en un grupo compiten en una única selección ponderada.

Botín de Contenedores (Cofres y Barriles)

Durante una partida, los cofres y barriles son colocados por BetterStructures. Cuando un jugador hace clic derecho en un cofre o barril:

  1. El jugador debe quedarse quieto durante 3 segundos mientras el contenedor se abre.
  2. Moverse cancela la interacción.
  3. Al tener éxito, se selecciona una tabla de botín de la lista chestLootTables o barrelLootTables del paquete de contenido (selección ponderada).
  4. Las entradas de la tabla de botín seleccionada tiran independientemente, y los objetos resultantes caen en la ubicación del contenedor.
  5. El contenedor se destruye después del saqueo (se reemplaza con aire).

Los contenedores muestran partículas de portal cada 10 ticks mientras están activos en una partida, haciéndolos visibles para los jugadores.

Botín por Muerte de Mobs

Cuando un EliteMob muere durante una partida, el plugin verifica su spawn pool de BetterStructures. Cualquier tabla de botín cuya lista spawnPools contenga el spawn pool del mob generará drops en la ubicación de muerte del mob. El nivel del mob se pasa a EliteMobs para la generación de objetos apropiada al nivel.

Comportamiento de Objetos al Extraer

  • Los jugadores que se extraen exitosamente conservan todos los objetos. Los objetos en su inventario se vinculan al alma (usando el encantamiento soulbind de EliteMobs) al salir.
  • Los jugadores que no logran extraerse (salen, se desconectan o son atrapados por el borde del mundo) pierden todos los objetos del inventario cuando deleteItemsOnFailToExtract está en true en config.yml.