Saltar para o conteúdo principal

Sistema de saque do Extractioncraft

O saque do Extractioncraft organiza-se em três níveis: os pacotes de conteúdo referenciam tabelas de saque, estas referenciam conjuntos de saque, e os conjuntos definem os itens que podem ser obtidos.

Visão geral​

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)

Tabelas de saque​

As configurações das tabelas ficam em loot_tables/. Cada ficheiro lista entradas de conjuntos de saque, cada uma com uma probabilidade independente de produzir um item.

ChaveTipoPredefiniçãoDescrição
isEnabledBooleanotrueDefina como false para impedir que a tabela produza qualquer saque. Os contentores ignoram uma tabela desativada ao escolher uma, e as mortes de mobs também a ignoram.
spawnPoolsLista de textos[]Nomes de conjuntos de aparecimento BetterStructures. Quando morre um EliteMob associado a um conjunto correspondente, esta tabela gera o seu saque. A comparação ignora maiúsculas/minúsculas e o sufixo .yml; kobold_miner_pool e Kobold_Miner_Pool.yml correspondem ao mesmo conjunto.
lootTableLista de objetos[]Cada entrada indica um ficheiro de conjunto de saque e uma chance de 0.0 a 1.0

Formato das entradas da tabela​

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

Cada entrada é sorteada de forma independente. Uma chance de 0.5 dá 50% de probabilidade de esse conjunto produzir um item. chance pode ser um número ou um texto numérico. Uma entrada cujo ficheiro de conjunto não exista em loot_pools/, ou cuja chance esteja em falta ou fora do intervalo de 0 a 1, é ignorada com um aviso no arranque; as restantes entradas continuam a carregar.

Conjuntos de saque​

As configurações dos conjuntos ficam em loot_pools/. Cada conjunto define os itens possíveis. Quando é sorteado, escolhe um item segundo os pesos relativos.

ChaveTipoPredefiniçãoDescrição
isEnabledBooleanotrueCom false, as entradas das tabelas de saque que referenciam este conjunto nunca o sorteiam.
eliteMobsLootLista de objetos[]Itens personalizados EliteMobs que podem sair
vanillaLootLista de objetos[]Itens normais do Minecraft que podem sair

Entrada de saque EliteMobs​

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

filename referencia a configuração de um item personalizado EliteMobs. weight determina a sua probabilidade relativa entre todas as entradas do conjunto.

Alguns itens personalizados são excluídos antes de se fazer a escolha:

  • Um item com permission só pode sair de baús e barris, e apenas para um jogador que tenha essa permissão. O item que cai pertence a esse jogador, pelo que mais ninguém o pode apanhar. As mortes de mobs nunca deixam cair itens bloqueados por permissão.
  • Um item com itemType: CLASS_LOOT só é elegível quando o saque de classe do EliteMobs o permite para a dificuldade e a categoria desse saque. O saque de classe cai sem vínculo.

Entrada de saque vanilla​

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

material é um nome do enum Bukkit Material. weight funciona como nas entradas EliteMobs. Todas as entradas EliteMobs e vanilla concorrem no mesmo sorteio ponderado, pelo que cada sorteio produz no máximo um item. Os itens vanilla saem sempre numa única unidade. Um material desconhecido, que não seja um item ou que seja ar é ignorado com um aviso no arranque. Um filename de eliteMobsLoot sem um item personalizado correspondente gera um aviso no momento do saque e não produz nada.

Os pesos aceitam decimais (0.5), inteiros (2) ou textos numéricos ("1.5") e têm de ser superiores a 0. Uma entrada com peso em falta, zero, negativo ou não numérico, ou sem filename ou material, é ignorada com um aviso no arranque; o resto do conjunto continua a carregar.

Saque de contentores: baús e barris​

Quando a partida começa, o BetterStructures coloca um baú ou barril em cada marcador de contentor do mapa. Quando um jogador da partida clica com o botão direito num baú ou barril:

  1. O inventário vanilla não abre. A interação é cancelada e substituída pelo processo de saque Extractioncraft, que só funciona enquanto a partida está em curso e apenas para contentores colocados pela partida.
  2. O jogador deve ficar completamente imóvel durante 3 segundos. Um subtítulo apresenta a contagem decrescente.
  3. Qualquer alteração de posição cancela a interação ("Don't move while opening a container!"). É permitido olhar à volta sem sair do lugar. Cada jogador só pode abrir um contentor de cada vez, e cada contentor só pode ser aberto por um jogador de cada vez.
  4. A tabela já foi escolhida da lista ponderada chestLootTables ou barrelLootTables do pacote no início da interação. Ao concluir, gera o saque.
  5. O contentor é substituído por ar e cada entrada da tabela escolhida é sorteada de forma independente. Os itens resultantes caem no chão na posição do contentor.

Os contentores ativos numa partida emitem partículas de portal a cada 10 ticks para serem visíveis aos jogadores.

O saque dos contentores usa o contentLevel do pacote (predefinição 10) como nível dos itens EliteMobs. A dificuldade do saque de classe vem da zona onde o contentor se encontra, conforme descrito em saque de mobs mortos, e a categoria é a mais baixa, trash.

Saque de mobs mortos​

Quando um EliteMob morre no mundo de uma partida Extractioncraft em curso, o plugin lê o dado personalizado betterstructures:spawnpool que o BetterStructures associa aos bosses que gera. Mobs sem esse dado, e mortes fora do mundo de uma partida em curso, nunca geram saque Extractioncraft.

Todas as tabelas ativas cuja lista spawnPools corresponda ao conjunto do mob geram saque na posição da morte. Não se escolhe uma tabela por peso: indicar o mesmo conjunto em três tabelas produz três séries independentes de sorteios. O nível do próprio mob é transmitido ao EliteMobs para gerar itens adequados, juntamente com a dificuldade e a categoria de saque de classe do boss.

Quando a partida começa, o BetterStructures gera cada boss da instância no maxLevel do seu conjunto de aparecimento. Cada um desses bosses recebe também a dificuldade da zona onde apareceu. As zonas são faixas quadradas em torno do centro do mapa:

ZonaDistância ao centro em qualquer eixoDificuldade predefinida do EliteMobs
2Menos de um sexto da largura do mapaMythic
1Menos de um terço da largura do mapaHard
0O resto do mapaNormal

Os nomes das dificuldades vêm do mapeamento difficultyIds nas definições de saque de classe do EliteMobs. O EliteMobs também aplica poderes de boss limitados por difficultyID apenas nas zonas correspondentes, e os bosses de Kobold Mines usam-nos. O limite do mundo, ao encolher para o centro, empurra assim os jogadores para as zonas Hard e Mythic.

Comportamento dos itens à saída​

  • Uma extração bem-sucedida conserva todos os itens. O Extractioncraft vincula ao jogador todos os itens ainda não vinculados do inventário, do cursor e da grelha de fabrico; os itens já vinculados mantêm o seu proprietário. A vinculação só acontece com o encantamento Soulbind do EliteMobs ativo.
  • Desligar o servidor ou recarregar o plugin durante uma partida em curso conta como uma extração.
  • Qualquer outra saída de uma partida em curso limpa o inventário, o cursor e a grelha de fabrico quando deleteItemsOnFailToExtract é true (a predefinição). Com false, esses itens são vinculados em vez disso.
  • Sair enquanto a partida espera ou está em contagem decrescente deixa o inventário intacto. Consulte o decurso das partidas para todas as formas de sair.