Saltar para o conteúdo principal

Dificuldade de Masmorras Instanciadas

As masmorras instanciadas têm uma definição especial que permite definir facilmente diferentes dificuldades para a masmorra.

Como funciona

As dificuldades podem definir um valor levelSync, inspirado no sistema de sincronização de nível do Final Fantasy 14. Este altera o nível usado pela cache de itens do jogador, sem reescrever o item no inventário.

O level sync não é um limite universal de equipamento

Os cálculos atuais de ataque corpo a corpo e defesa da armadura leem o nível original do item. A captura de combate dos projéteis também lê o ataque original da arma, e os tridentes lançados leem o nível do seu item no impacto. Não dependas apenas de levelSync para igualar armas e armaduras.

Sharpness e Power contribuem para um multiplicador de ataque de equipamento separado. Cada item equipado elegível contribui com 0.025 * (Sharpness level + Power level), somando-se as contribuições das seis posições de equipamento. O level sync não limita esta contribuição dos encantamentos. Trata-se de uma contribuição para um multiplicador, não de um número fixo de pontos de dano.

A vida base dos bosses duplica a cada cinco níveis antes dos limites de vida, mas o ataque do jogador usa os seus próprios cálculos de competências, itens, encantamentos e classe. Consulta o sistema de dano antes de equilibrar os encontros. Combina o level sync com poderes, valores dos bosses e recompensas específicos da dificuldade, e verifica o equipamento real dos jogadores.

Sistema de grupos

O EliteMobs tem grupos que duram apenas a sessão. Os convites normais permitem até cinco membros; os grupos automáticos de masmorra podem incluir uma lista maior de participantes admitidos. Quando um membro seleciona uma masmorra instanciada, o EliteMobs regista a lista atual e inicia uma confirmação clicável. O iniciador conta automaticamente como pronto; os restantes têm de aceitar a masmorra e a dificuldade exatas antes da preparação do mundo. Nas masmorras dinâmicas, a mensagem inclui também o nível escolhido. Uma recusa, expiração, alteração da lista, membro indisponível, falha de permissão ou capacidade, conflito com uma instância ativa ou cancelamento da verificação prévia MatchJoinEvent do EliteMobs aborta a entrada do grupo, em vez de mover apenas parte dele. O PlayerJoinDungeonEvent do EliteMobs é uma notificação não cancelável emitida depois da admissão.

Os desafios pessoais de encantamento de itens continuam a ser a solo, porque o desafio controla temporariamente o item do jogador que o inicia.

Os autores podem escolher poderes que se tornem mais perigosos com mais jogadores. Os bosses de masmorra também recebem um aumento de vida com base no número de participantes da instância quando a vida é definida, incluindo no início da partida. A fórmula é: scaledHealth = baseHealth * 0.75 * playerCount. Por exemplo, com 2 jogadores o boss tem 1,5x a sua vida base, com 3 jogadores 2,25x e com 5 jogadores 3,75x.

Nota: o escalonamento de vida só se aplica quando há 2 ou mais jogadores na instância. Os jogadores a solo enfrentam bosses com valores de vida padrão.

Como definir uma dificuldade

As dificuldades são definidas no YAML do pacote da masmorra instanciada, dentro de /plugins/EliteMobs/content_packages/, eventualmente numa subpasta do pacote. Coloca difficulties junto de outras definições de topo, como contentLevel e name.

Vejamos um exemplo:

difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic

Isto define três dificuldades. name fornece o rótulo do menu. levelSync e id são opcionais; sem levelSync, não há sincronização. Os nomes reconhecidos podem fornecer um ID em falta, como se explica abaixo. Prefere IDs explícitos nos novos pacotes.

O name é o nome da dificuldade, tal como aparecerá na definição de dificuldade dentro do jogo. Pode ter qualquer nome.

O levelSync define o limite de nível para os caminhos de cálculo descritos acima. Não limita todos os cálculos de dano ou defesa.

Podes definir tantas ou tão poucas dificuldades quantas quiseres. Basta adicionar ou remover entradas na definição difficulties usando o mesmo formato.

Level sync relativo​

O level sync também pode usar valores relativos em vez de números absolutos. Coloca sempre o valor entre aspas. O YAML resolve um +5 sem aspas para o inteiro simples 5, e o + inicial já desapareceu quando o EliteMobs o lê -- por isso levelSync: +5 torna-se silenciosamente um sync absoluto no nível 5, e levelSync: +0 torna-se um 0 absoluto, o que desativa completamente o level sync. Os valores negativos sem aspas, como levelSync: -10, acabam por sobreviver, porque o - é preservado e o EliteMobs continua a lê-lo como relativo -- mas colocar todos os valores entre aspas é a única forma inequívoca:

difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard

Os valores relativos são calculados a partir do nível de conteúdo base da masmorra, e o resultado nunca pode ficar abaixo de 1. Por exemplo, se uma masmorra tiver nível de conteúdo 60:

  • levelSync: '+5' torna-se 65
  • levelSync: '+0' torna-se 60
  • levelSync: '-10' torna-se 50

Isto é particularmente útil em masmorras dinâmicas, onde o nível de conteúdo pode variar. Numa masmorra dinâmica, o nível de conteúdo só é conhecido depois de a instância ser criada, pelo que o valor relativo é resolvido nesse momento.

Um levelSync: 0 absoluto — ou qualquer valor que o EliteMobs não consiga interpretar — significa nenhum level sync para essa dificuldade.

Campo opcional de ID da dificuldade​

Define id em cada dificuldade para os filtros de poderes e loot. A correspondência numérica padrão é 0 = NORMAL, 1 = HARD, 2 = MYTHIC.

A implementação também reconhece Normal/Hard/Mythic e os nomes antigos Easy/Medium/Hard, ignorando maiúsculas, cores e espaços exteriores. O pacote completo determina o esquema: um ID explícito Normal ou Mythic seleciona o padrão. Caso contrário, um ID Easy ou Medium seleciona o antigo; os nomes só o selecionam se Easy ou Medium aparecer sem Normal nem Mythic. A deteção ocorre antes da tradução; os IDs numéricos mantêm sempre o seu significado. Um nome reconhecido fornece um ID em falta ou um patamar para um ID personalizado.

As definições desconhecidas geram um aviso na consola com o ficheiro do pacote. Os IDs personalizados continuam a ser comparados nos filtros após normalizar maiúsculas, cores e espaços. Para loot automático, uma correspondência explícita do ID original em ClassLootSettings.yml tem prioridade, seguida do patamar resolvido e do valor predefinido configurado. Atribui IDs explícitos aos nomes pouco habituais.

difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1

Poderes com base na dificuldade​

É possível configurar bosses para terem poderes apenas em dificuldades específicas. Vejamos um exemplo:

powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2

Nota: isto faz parte do ficheiro de configuração do boss personalizado!

Neste caso, o boss só terá invulnerabilidade ao fogo nas dificuldades com o ID 1 e 2.

difficultyID aceita um ID ou uma lista YAML para poderes e loot definido pelo autor. Um filtro de poder vazio ou inválido não corresponde a nenhuma dificuldade; numa entrada de loot, uma lista vazia ou um ID em branco faz com que essa entrada seja rejeitada quando o ficheiro é carregado. Os filtros de poderes aplicam-se a bosses instanciados associados a uma masmorra e a bosses gerados na instância de outro plugin através da API de bosses instanciados, usando a dificuldade atribuída por esse plugin. Não restringem um boss normal do mundo aberto.

Loot com base na dificuldade​

É possível configurar bosses para largarem loot específico de uma dificuldade de masmorra instanciada. Vejamos um exemplo:

uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0

Nota: isto faz parte do ficheiro de configuração do boss personalizado!

Numa masmorra, esta entrada permite himiko_boss_drop_axe_tank_normal.yml na dificuldade 0, com uma tentativa de 5%, sujeita às regras habituais de elegibilidade do loot. A verificação usa a masmorra atual do destinatário; não bloqueia a entrada fora de uma masmorra. O equipamento elegível passa pelo loot de grupo da masmorra, enquanto os restantes itens continuam pessoais. Consulta o loot de grupo.

Equilibrar recompensas Normal, Hard e Mythic​

O exemplo anterior limita um ficheiro de item a uma dificuldade. Para dar equipamento adequado a cada classe sem manter três versões de cada item, usa o loot automático por classe. Seleciona perfis de encantamentos por dificuldade e rank, mantendo o nome e a descrição de cada item num só lugar.

O guia inclui uma tabela dos limites de encantamentos principais e a fórmula de orçamento usada para gerar os drops. Aumentar a dificuldade não multiplica automaticamente a vida do boss ou as estatísticas do loot; level sync, poderes, valores do boss e perfis de recompensas controlam partes distintas do encontro.