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 são em parte inspiradas no sistema de level sync do Final Fantasy 14.
As armaduras e armas elite recebem dano elite e defesa elite específicos com base no seu nível, como podes ver nos itens. Quando estás numa masmorra instanciada com uma dificuldade ativa, o nível do item é temporária e invisivelmente reduzido para corresponder ao level sync.
O EliteMobs usa escalonamento exponencial, em que cada 5 níveis de diferença duplicam o poder efetivo. Por exemplo, uma espada de nível 50 é significativamente mais poderosa do que uma espada de nível 45. Se um jogador estiver numa masmorra instanciada com uma dificuldade que sincroniza o equipamento para o nível 45, a espada de nível 50 comporta-se como uma espada de nível 45, com dano proporcionalmente reduzido.
No entanto, se essa espada tiver sharpness de nível 10, continua a acrescentar a mesma quantidade de dano por cima do dano base.
Isto significa que, em masmorras instanciadas com dificuldades, o que importa não é tanto o nível do equipamento, mas a qualidade do equipamento. Os jogadores que queiram vencer a dificuldade mítica terão de trabalhar para obter itens de alta qualidade noutras masmorras instanciadas e, possivelmente, interagir bastante com o sistema de melhoria de itens.
Isto também torna quase impossível a jogadores veteranos esmagarem conteúdo antigo de alta dificuldade, e dá um incentivo para o jogarem mesmo quando o seu nível está muito acima do nível da masmorra.
Sistema de grupos
O EliteMobs tem grupos apenas de sessão com até cinco membros. Quando um membro do grupo seleciona uma masmorra instanciada, o EliteMobs guarda uma fotografia da lista atual e inicia uma confirmação clicável. O iniciador conta automaticamente como pronto; todos os restantes membros têm de aceitar a masmorra e a dificuldade exatas antes de a preparação do mundo começar. 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, falha de capacidade, conflito com uma instância ativa ou o cancelamento da verificação prévia MatchJoinEvent do MagmaCore 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.
Para ter em conta a presença de vários jogadores lá dentro, os bosses são desenhados com poderes específicos que se tornam mais perigosos à medida que mais jogadores entram na arena. Além disso, os bosses recebem um aumento de vida que escala com o número de jogadores na instância. 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 na pasta content_packages, no ficheiro do pacote de masmorra das masmorras instanciadas. Este ficheiro está localizado em /plugins/EliteMobs/content_packages/[your_dungeon_name]/[package_file].yml e deve estar junto de outras definições da masmorra, 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. Só o name é realmente obrigatório — é por ele que a dificuldade é identificada, tanto no menu como internamente. levelSync e id são opcionais; uma dificuldade sem levelSync simplesmente não aplica qualquer level sync.
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 dos itens para a masmorra instanciada, tal como explicado acima nesta página.
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 65levelSync: '+0'torna-se 60levelSync: '-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
Podes definir um campo id em cada entrada de dificuldade. Este ID é usado por bosses personalizados e itens personalizados para aplicar poderes e loot baseados na dificuldade. Se não definires o campo id, a dificuldade não terá ID e as funcionalidades baseadas em dificuldade que dependem dele não se aplicam.
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.
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!
Neste caso, o boss só larga o loot himiko_boss_drop_axe_tank_normal.yml na dificuldade 0, e com 5% de probabilidade.