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.
| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
isEnabled | Boolean | true | Se esta tabela de saque está ativa |
spawnPools | Lista 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. |
lootTable | Lista 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.
| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
isEnabled | Boolean | true | Se este pool de saque está ativo |
eliteMobsLoot | Lista de objetos | [] | Itens personalizados do EliteMobs que podem dropar |
vanillaLoot | Lista 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:
- O jogador deve ficar parado por 3 segundos enquanto o recipiente abre.
- Mover-se cancela a interação.
- Em caso de sucesso, uma tabela de saque é selecionada da lista
chestLootTablesoubarrelLootTablesdo pacote de conteúdo (seleção ponderada). - As entradas da tabela de saque selecionada rolam independentemente, e os itens resultantes caem na localização do recipiente.
- 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étruenoconfig.yml.