Tabela de Loot Personalizada
O formato partilhado define itens personalizados, itens vanilla, moeda e comandos para bosses, baús de tesouro, quests e arenas. Cada entrada tem o seu próprio sorteio de probabilidade; a tabela não escolhe apenas uma entrada vencedora.
Para cobrir automaticamente o equipamento das classes e dificuldades, consulte o loot de classe automático. O seu sorteio separado pode coexistir com uniqueLootList. Mantenha aqui as relíquias, o equipamento com scripts e outras recompensas especiais. Entradas que apontam para itens itemType: CLASS_LOOT são candidatas à seleção de classe e são ignoradas pelos sorteios normais de morte do boss. As restantes entradas mantêm os seus sorteios independentes.
Note que este é o formato mais recente e o que se recomenda usar, mas existem alguns formatos alternativos mais antigos.
Nota: O suporte ao formato legado continua disponível usando a sintaxe separada por dois-pontos: filename.yml:chance:permission. No entanto, o formato moderno mostrado abaixo é o recomendado para novas configurações.
Nessa sintaxe legada, a probabilidade e a permissão são opcionais, por isso um simples filename.yml larga o item a 100%. Uma entrada legada com mais de três partes separadas por dois-pontos é rejeitada.
Cada entrada é verificada quando o seu ficheiro é carregado. Uma chave desconhecida ou repetida, uma chave sem valor, uma chance que não seja um número finito, um amount, currencyAmount, wave ou itemLevel que não seja um número inteiro, ou um material inválido rejeitam essa entrada com um aviso Failed to parse entry ... due to invalid: <reason>, e o resto da tabela continua a ser carregado. As chaves não distinguem maiúsculas de minúsculas.
Use a chave da funcionalidade correspondente: uniqueLootList para bosses, lootList para baús, customRewards para quests ou rawArenaReward para arenas. customRewards aceita entradas de texto: use aí filename=...:chance=..., separado por dois-pontos, em vez de mapas YAML.
Os quatro tipos funcionam no loot de Bosses Personalizados (uniqueLootList). Para entradas normais, a entrega segue putLootDirectlyIntoPlayerInventory:
| Tipo de entrada | putLootDirectlyIntoPlayerInventory: false (predefinição) | putLootDirectlyIntoPlayerInventory: true |
|---|---|---|
Item elite (filename) | Drop pessoal no chão ou votação de equipamento partilhado | Inventário pessoal ou votação de equipamento partilhado |
Item vanilla (material) | Drop no chão | Inventário; o excedente cai junto ao jogador |
Moedas Elite (currencyAmount) | Chuva de moedas para recolher | Crédito direto de moeda |
Comando (command=) | Executado pela consola | Executado pela consola |
As recompensas de boss são sorteadas separadamente para cada participante registado que causou dano, excluindo quem tem bloqueio de loot desse boss instanciado. Esta via de loot definido manualmente não exige um limiar adicional de 10% de dano. Membros próximos do grupo que recebem crédito partilhado sem causarem dano só recebem por esta via entradas de itens elite que não sejam equipamento, não entradas vanilla, de moeda ou de comandos. A ativação do antiexploit suprime este loot de morte.
Os bosses gerados dentro da instância de outro plugin através da API de bosses instanciados do EliteMobs ignoram putLootDirectlyIntoPlayerInventory e nunca iniciam uma votação de grupo. O seu loot cai sempre no chão junto ao boss, como na coluna false, com os itens elite como drops pessoais, para que fique no mundo dessa instância.
Os baús usam a mesma definição de chão/inventário; quests e arenas entregam diretamente. As quatro origens suportam os tipos abaixo; as quests só aceitam entradas de texto. Os comandos de loot de boss correm por cada sorteio bem-sucedido de um participante. Para a sintaxe separada de comandos de morte de boss, consulte onDeathCommands.
Largar itens elite:
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
filename | Define o nome do ficheiro do Item Personalizado a usar. | Nome do ficheiro | none |
Exemplo
uniqueLootList:
- filename: magmaguys_toothpick.yml
Isto fará com que o mob largue 1 MagmaGuy's Toothpick com 100% de probabilidade de drop.
Definições gerais:
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
chance | Um sorteio independente por entrada; 1.0 é 100%. Use valores de 0.0 a 1.0. | Double | 1.0 |
amount | Número de cópias do item ou execuções do comando após um sorteio bem-sucedido. Não multiplica moeda; use currencyAmount para o pagamento. | Inteiro | 1 |
permission | Define o nó de permissão necessário para os jogadores receberem este loot. Suportado pelas entradas de item elite, de moeda e de comando. As entradas de itens vanilla nunca o leem, em nenhum dos formatos. | String | none |
Uma entrada com amount <= 0 ou chance <= 0 não faz sorteio; uma chance não numérica ou não finita faz com que a entrada seja rejeitada quando o ficheiro é carregado. Uma chance acima de 1.0 passa sempre; não é uma percentagem como 50. Após o sucesso, a entrega não volta a sortear por cada cópia. As pré-visualizações de quests fazem sorteios próprios e não reservam as recompensas finais.
Exemplo
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare
Isto fará com que o mob largue 10 MagmaGuy's Toothpick com 50% de probabilidade de drop, mas apenas para jogadores com a permissão elitemobs.loot.rare.
Largar moedas elite:
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
currencyAmount | Define a quantidade de moedas que será largada. | Inteiro | none |
currencyAmount tem de ser um número inteiro e tem de ser positivo para entregar moeda. Um amount positivo não o multiplica, mas amount <= 0 desativa a entrada. Um currencyAmount nulo ou negativo é carregado em qualquer dos formatos, mas não entrega nada.
As recompensas diretas de moeda passam pelo gestor de economia e pagam primeiro as dívidas de apostas. A entrega no chão usa uma chuva de moedas recolhíveis e pode receber o bónus Harvester; a entrega direta desta entrada não aplica esse bónus. As moedas são creditadas ao serem recolhidas, não quando o sorteio passa.
Exemplo
uniqueLootList:
- currencyAmount: 344
chance: 0.5
Isto dá a cada participante elegível do boss 50% de probabilidade de receber uma recompensa base de 344 Moedas Elite. Use lootList para a mesma entrada num baú de tesouro.
Largar itens vanilla:
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
material | Material do item. Os nomes de materiais não distinguem maiúsculas de minúsculas em nenhum dos formatos. type é aceite como alternativa; definir material e type ao mesmo tempo rejeita a entrada. | Material | none |
Exemplo
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5
Isto fará com que o mob largue 5 Maçãs com 30% de probabilidade de drop.
A entrega no chão e no inventário usa um único sorteio por entrada. Neste exemplo, um sucesso entrega as 5 maçãs. A entrega direta funciona para bosses, baús, quests e arenas, largando o excedente do inventário junto ao jogador. Materiais AIR e quantidades não positivas não entregam nada. Entradas vanilla não aplicam permission.
Executar comandos ao largar loot:
Pode executar comandos de consola quando o loot é largado. Isto é útil para integração com outros plugins ou para fornecer recompensas personalizadas. As entradas de comando aceitam o formato de string separado por dois-pontos e, exceto em customRewards de quests, mapas YAML.
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
command | Define o comando de consola a executar. Use %player% como marcador de posição (placeholder) para o nome do jogador. | String | none |
No formato de string, o comando não pode conter um :, porque a entrada é dividida nesse carácter. Um = dentro do comando não causa problemas. Use um mapa YAML quando o comando precisar de dois-pontos.
As entradas de comando sorteiam chance uma vez, como as restantes. Se passar, o comando é executado amount vezes. Não há segundo sorteio nem inversão:
chance=1.0(predefinição) passa sempre.chance=0.5passa em 50% dos casos.amount=3executa três vezes se esse único sorteio passar.
O jogador tem de cumprir permission, e o comando não pode estar vazio. Os requisitos do próprio comando continuam a aplicar-se. Corre como consola; use %player% para identificar o destinatário.
Exemplo
customRewards:
- command=give %player% diamond 1:chance=0.5:amount=1:permission=elitemobs.loot.command
Esta recompensa de quest executa give <player> diamond 1 pela consola na entrega da quest em 50% dos casos. %player% é substituído pelo nome do jogador, que precisa de elitemobs.loot.command. O mesmo texto funciona em uniqueLootList de um boss, com um sorteio separado para cada participante elegível.
Recompensas de arena:
Ao criar tabelas de loot de arena, certifique-se de que inicia a sua tabela de loot com rawArenaReward: em vez de uniqueLootList:.
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
wave | Vaga concluída que atribui esta entrada. Todos os tipos de entrada a aceitam em qualquer dos formatos. | Inteiro | -1 |
itemLevel | Define o nível do drop de loot. Só é usado pelas arenas e só tem efeito em entradas de item elite (filename). Aceite em qualquer dos formatos. | Inteiro | 1 |
- Só as entradas com um
wavede1ou superior são registadas como recompensas de vaga. Uma entrada de recompensa de arena semwaveé interpretada e aceite, mas nenhuma vaga a irá jamais entregar. - O
itemLeveltem1como valor por omissão, e não o nível da arena ou do jogador. Um item elitescalableatribuído por uma arena sem umitemLevelexplícito é, portanto, largado como um item de nível 1.
Exemplo
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2
Após a vaga 1, a entrada de pão faz um único sorteio de 50%. Se passar, entrega 10 pães e larga o excedente no chão. A entrada personalizada tem 100% de probabilidade e pede um MagmaGuy's Toothpick de nível 2; a escalabilidade da definição do item continua a determinar o nível gerado. As verificações de elegibilidade e diferença de nível da arena aplicam-se antes destas recompensas.
As duas entradas usam formatos diferentes apenas para mostrar ambos; wave e itemLevel funcionam em qualquer dos formatos.
Masmorras Instanciadas:
| Chave | Detalhes | Valores | Predefinição |
|---|---|---|---|
difficultyID | Filtra uma entrada elite pela dificuldade da masmorra atual do destinatário; os mapas YAML também aceitam listas de IDs. | Texto, número ou lista | none |
difficultyID é lido para entradas elite (filename) em mapas YAML e texto separado por dois-pontos. Os mapas também aceitam listas, como difficultyID: [normal, hard]. Entradas vanilla, de moeda e de comandos rejeitam-no como chave desconhecida. Os IDs e nomes seguem o resolvedor de dificuldade: 0/1/2, Normal/Hard/Mythic ou a convenção Easy/Medium/Hard do pacote. IDs desconhecidos mantêm a correspondência exata. Uma lista vazia ou um ID em branco faz com que a entrada seja rejeitada quando o ficheiro é carregado.
O filtro é verificado nas recompensas elite de bosses, baús, quests e arenas. Só restringe um jogador que esteja atualmente numa instância de masmorra; fora dela, é ignorado. Um boss gerado na instância de outro plugin através da API de bosses instanciados é filtrado pela dificuldade que esse plugin lhe atribuiu. Uma arena normal não é uma instância de masmorra. As recompensas de baú, quest e arena continuam pessoais, sem votação de equipamento partilhado.
Na entrega de loot de boss, a entrada comporta-se assim:
- A dificuldade corresponde a
difficultyID: o equipamento entra na tabela de loot partilhada do boss. As restantes recompensas mantêm a entrega pessoal. Os participantes elegíveis no combate podem reclamar equipamento partilhado; quem já tem bloqueio de loot desse boss é removido antes da votação. - A dificuldade da masmorra não corresponde: a entrada é ignorada.
- O jogador não está numa instância de masmorra:
difficultyIDé ignorado. O equipamento usa Necessidade / Ganância do grupo quando há pelo menos dois membros elegíveis próximos; caso contrário, segue a entrega pessoal. As recompensas que não são equipamento continuam pessoais.
Sem filtro difficultyID, o equipamento ainda pode entrar no loot do grupo, mas o ramo de tabela partilhada específico de masmorras ativado por esse campo não corre. Os candidatos de loot de classe usam as suas regras separadas de seleção e dificuldade descritas acima.
Exemplo
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1
Isto fará com que o mob largue 1 MagmaGuy's Toothpick com 50% de probabilidade de drop se os jogadores tiverem derrotado o boss na dificuldade 1.