Pular para o conteúdo principal

Sistema de Saque do Extractioncraft

O Extractioncraft tem um sistema de saque em camadas construído sobre três conceitos: pacotes de conteúdo referenciam tabelas de saque, tabelas de saque referenciam pools de saque, e pools de saque definem os itens reais que podem dropar.

Visão Geral

Pacote de Conteúdo
-> chestLootTables / barrelLootTables (seleção ponderada)
-> Tabela de Saque
-> entradas lootTable (cada uma tem chance de rolar)
-> Pool de Saque
-> eliteMobsLoot / vanillaLoot (seleção ponderada de um item)

Tabelas de Saque

Configurações de tabelas de saque ficam na pasta loot_tables/. Cada arquivo define uma lista de entradas de pool de saque, onde cada entrada tem uma chance independente de produzir um item.

ChaveTipoPadrãoDescrição
isEnabledBooleantrueSe esta tabela de saque está ativa
spawnPoolsLista de String[]Nomes de pools de spawn do BetterStructures. Quando um EliteMob associado a um pool de spawn correspondente é morto, esta tabela de saque é usada para seus drops.
lootTableLista de objetos[]Cada entrada referencia um nome de arquivo de pool de saque e uma chance (0.0 a 1.0)

Formato de Entrada da Tabela de Saque

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

Cada entrada rola independentemente. Uma chance de 0.5 significa 50% de probabilidade de que este pool produza um drop.

Pools de Saque

Configurações de pools de saque ficam na pasta loot_pools/. Cada pool define um conjunto de itens possíveis. Quando um pool é rolado, um item é selecionado com base em probabilidade ponderada.

ChaveTipoPadrãoDescrição
isEnabledBooleantrueSe este pool de saque está ativo
eliteMobsLootLista de objetos[]Itens personalizados do EliteMobs que podem dropar
vanillaLootLista de objetos[]Itens vanilla do Minecraft que podem dropar

Entrada de Saque EliteMobs

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

O filename referencia uma configuração de item personalizado do EliteMobs. O weight determina a probabilidade relativa de drop entre todas as entradas no pool.

Entrada de Saque Vanilla

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

O material é um nome do enum Material do Bukkit. O weight funciona da mesma forma que para entradas de saque elite. Todas as entradas elite e vanilla em um pool competem em uma única seleção ponderada.

Saque de Recipientes (Baús e Barris)

Durante uma partida, baús e barris são colocados pelo BetterStructures. Quando um jogador clica com o botão direito em um baú ou barril:

  1. O jogador deve ficar parado por 3 segundos enquanto o recipiente abre.
  2. Mover-se cancela a interação.
  3. Em caso de sucesso, uma tabela de saque é selecionada da lista chestLootTables ou barrelLootTables do pacote de conteúdo (seleção ponderada).
  4. As entradas da tabela de saque selecionada rolam independentemente, e os itens resultantes caem na localização do recipiente.
  5. O recipiente é destruído após o saque (substituído por ar).

Os recipientes exibem partículas de portal a cada 10 ticks enquanto estão ativos em uma partida, tornando-os visíveis para os jogadores.

Saque de Morte de Mobs

Quando um EliteMob morre durante uma partida, o plugin verifica seu pool de spawn do BetterStructures. Qualquer tabela de saque cuja lista spawnPools contenha o pool de spawn do mob gerará drops na localização de morte do mob. O nível do mob é passado ao EliteMobs para geração de itens apropriados ao nível.

Comportamento de Itens na Extração

  • Jogadores que extraem com sucesso mantêm todos os itens. Itens no inventário são vinculados à alma (usando encantamento soulbind do EliteMobs) na saída.
  • Jogadores que falham na extração (saem, desconectam ou são pegos pela borda do mundo) perdem todos os itens do inventário quando deleteItemsOnFailToExtract é true no config.yml.