Pular para o conteúdo principal

Sistema de Dano

Esta é uma análise detalhada de como a vida / dano escala no EliteMobs. Deve ser usada como referência ao desenhar masmorras.

Está focada em Bosses Personalizados, mas os Elites normais escalam da mesma forma.

Antes de começares!

Não precisas de ler tudo isto se só queres fazer ajustes rápidos. Salta para a secção "Usar estes dados para masmorras" para veres contas rápidas muito simplificadas e uma série de definições recomendadas pré-feitas!

Escalonamento (em geral)

O EliteMobs usa um sistema de escalonamento exponencial em que cada 5 níveis de diferença duplicam (ou reduzem para metade) o poder efetivo. A vida do boss, o dano do jogador e o dano do boss escalam todos exponencialmente para que o combate se sinta consistente em todos os intervalos de nível -- um jogador de nível 10 a combater um boss de nível 15 sente-se igual a um jogador de nível 50 a combater um boss de nível 55.

O poder do jogador vem de duas fontes numa divisão 50/50:

  1. Nível de Perícia da Arma (Weapon Skill Level) -- obtido ao matar Elite Mobs com um tipo de arma específico (espadas, machados, arcos, bestas, tridentes, enxadas, maças ou lanças).
  2. Nível do Item (Item Level) -- o nível elite da arma ou peça de armadura que o jogador tem equipada.

Os jogadores também têm uma Perícia de Armadura (Armor Skill) que sobe de nível passivamente durante o combate (a 1/3 da taxa das perícias de armas). O nível da perícia de armadura concede vida máxima bónus (+1 coração por nível acima de 1) e determina o escalonamento defensivo do jogador contra o dano do boss.

Perícias de Armas (Weapon Skills)

O EliteMobs 10 introduz um sistema de perícias em que os jogadores sobem de nível cada tipo de arma de forma independente, usando-a em combate. Matar um Elite Mob concede XP à perícia da arma correspondente à arma empunhada, e também à perícia de Armadura a uma taxa reduzida.

As perícias de armas disponíveis são:

SkillWeapon
EspadasTodos os tipos de espada
MachadosTodos os tipos de machado
ArcosArco
BestasBesta
TridentesTridente
EnxadasTodos os tipos de enxada
MaçasMaça (1.21+)
LançasTodos os tipos de lança (1.21.11+)
ArmaduraTodas as peças de armadura (sobe de nível passivamente)

O XP de perícia de um mob é igual a mobLevel^2, por isso os mobs de nível mais alto concedem proporcionalmente mais XP. O nível máximo de perícia é 100, após o qual um limite suave (soft cap) torna a progressão adicional exponencialmente mais difícil.

Bónus de Perícia

Cada perícia de arma (e a perícia de armadura) tem um conjunto de bónus de perícia -- habilidades especiais que se desbloqueiam à medida que o jogador sobe de nível. Os jogadores podem selecionar quais bónus ativar. Os bónus de perícia vêm em cinco tipos:

  • Passivo (Passive) -- sempre ativo quando equipado (por exemplo, aumento de dano fixo).
  • Condicional (Conditional) -- ativo apenas quando uma condição específica é cumprida (por exemplo, dano bónus quando o alvo está abaixo de 30% de vida).
  • Proc -- acionamento baseado em probabilidade em eventos específicos (por exemplo, probabilidade de causar sangramento ao acertar).
  • Acumulável (Stacking) -- acumula ao longo de ações consecutivas (por exemplo, acertos consecutivos aumentam o dano).
  • Cooldown -- efeito poderoso com um cooldown interno (por exemplo, sobreviver a dano fatal uma vez a cada 60 segundos).

Os bónus de perícia ofensivos das perícias de armas são aplicados como multiplicadores de dano aditivos por cima do dano base causado aos bosses. Os bónus de perícia defensivos da perícia de armadura reduzem o dano recebido do boss através de vários mecanismos (redução fixa, esquiva, escudos de dano, etc.).

Dano causado por Bosses Personalizados

O dano do boss no EliteMobs 10 usa três camadas multiplicativas sem pré-compensação. O sistema foi concebido para que um jogador devidamente equipado sobreviva a aproximadamente 5 acertos de conteúdo do mesmo nível.

A fórmula de dano para Bosses Personalizados é:

1. playerMaxHealth = 20 + (armorSkillLevel - 1) * 2
2. baseDamage = playerMaxHealth / 5.0
3. skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)
4. gearAdjustment = 2.0 * (1 - gearReduction)
5. scaledDamage = baseDamage * skillAdjustment * gearAdjustment
6. [explosion distance attenuation, if applicable]
7. potionMultiplier from Resistance effect
8. finalDamage = max(scaledDamage, 1) * potionMultiplier * customBossDamageMultiplier * specialMultiplier * configMultiplier
9. finalDamage = min(finalDamage, actualMaxHealth - 1)

As três camadas são:

  1. Dano base -- quanta HP por acerto o jogador deverá perder (playerMaxHealth / 5).
  2. Ajuste de perícia -- escalonamento exponencial a partir da diferença entre o nível do boss e o nível da Perícia de Armadura do jogador.
  3. Ajuste de equipamento -- redução consciente do tipo de dano com base na armadura equipada do jogador e nos encantamentos de proteção (ver Sistema de Defesa de Equipamento abaixo).

Nota: O dano está limitado a (vida máxima real do jogador - 1) para impedir mortes de um só golpe. O limite usa o atributo generic_max_health, que inclui todos os modificadores (bónus de perícia de armadura, efeitos de poção, etc.).

playerMaxHealth

A vida máxima do jogador é determinada pelo seu nível de Perícia de Armadura. A vida base é 20 (10 corações), e cada nível de perícia de armadura acima de 1 adiciona 2 HP (1 coração). Um jogador com nível 50 de perícia de armadura tem 118 HP (59 corações).

baseDamage

O dano base é simplesmente playerMaxHealth / 5.0. Esta é a quantidade de dano que se espera que um jogador devidamente equipado, do mesmo nível, receba por acerto. Ao contrário do sistema antigo, não há pré-compensação -- o valor base é o dano-alvo, não um valor bruto inflacionado.

skillAdjustment

O ajuste de perícia usa escalonamento exponencial para tornar significativa a diferença de nível entre o boss e a Perícia de Armadura do jogador:

skillAdjustment = 2 ^ ((bossLevel - armorSkillLevel) / 7.5)

Cada 7,5 níveis de diferença duplica (ou reduz para metade) o dano efetivo do boss. Isto é ligeiramente mais tolerante do que o modificador de nível de uso geral (que duplica a cada 5 níveis), porque a camada de ajuste de equipamento já fornece escalonamento adicional.

Level DifferenceSkill AdjustmentApproximate Hits to Kill (matched gear)
Mesmo nível (0)1.0x~5 acertos
+5 níveis~1.6x~3 acertos
+10 níveis~2.5x~2 acertos
+15 níveis4.0x~1,25 acertos

Sistema de Defesa de Equipamento

O sistema de defesa de equipamento substitui a antiga rampa de equipamento. Em vez de assumir um multiplicador de pré-compensação fixo com base no nível de perícia, o sistema agora lê o equipamento realmente equipado do jogador e calcula uma redução de equipamento consciente do tipo de dano.

Tipos de Dano

O sistema classifica o dano recebido em cinco categorias. O tipo de dano determina quais encantamentos de proteção contribuem para a pontuação de equipamento:

Damage TypeEvent CausesProtection Enchantments Used
MELEEAtaque direto, ataque de varrimentoApenas Protection
PROJECTILEFlechas, fireballsProtection + Projectile Protection
EXPLOSIONExplosão de creeper, de ghastProtection + Blast Protection
FIREFogo, tick de fogoProtection + Fire Protection
OTHERTudo o restoApenas Protection

Pontuação de Equipamento (Gear Score)

A pontuação de equipamento combina o nível de armadura e os bónus de encantamento num único valor que pode ser comparado com o nível do mob atacante:

gearScore = (sum of armorLevel for 4 armor slots) / 4
+ (sum of enchantBonus for all 6 slots) / 4

O nível de armadura é determinado por item:

  • Itens elite usam o seu nível elite armazenado (o nível para o qual o item foi criado).
  • Itens vanilla usam uma consulta baseada no material:
MaterialArmor Level
Leather1
Gold2
Chainmail3
Iron4
Turtle Shell4
Diamond5
Netherite7

Apenas os 4 slots de armadura (capacete, peitoral, calças, botas) contribuem para o nível de armadura.

O bónus de encantamento converte os níveis dos encantamentos de proteção em unidades equivalentes a nível de armadura:

enchantBonus = (general Protection level + type-specific Protection level) * (1/3)

Todos os 6 slots de equipamento (4 de armadura + mão principal + mão secundária) contribuem para o bónus de encantamento. Isto significa que escudos ou armas com encantamentos de Protection fornecem defesa adicional. A normalização /4 sobre a soma significa que ter encantamentos em todos os 6 slots dá até 50% mais contribuição de encantamento do que tê-los apenas nas 4 peças de armadura.

Exemplo prático: equipamento correspondente Nv25 + Prot IV vs Nv25 (corpo a corpo)
Player: armorSkillLevel=25, maxHP = 20 + 24*2 = 68
4 elite armor pieces each at armorLevel=25, each with Protection IV
Mob: level=25, melee attack

Step 1 -- Armor level per piece: 25 (elite item, stored value)
Step 2 -- Enchant bonus per piece: Protection IV = 4 * (1/3) = 1.333
(melee damage type, so only general Protection applies)
Step 3 -- Gear score:
armorLevelSum = 25*4 = 100, /4 = 25.0
enchantBonusSum = 1.333*4 = 5.333 (no mainhand/offhand enchants), /4 = 1.333
gearScore = 25.0 + 1.333 = 26.333
Step 4 -- Gear reduction (above matching):
reduction = 0.50 + (26.333 - 25) * 0.025 = 0.533 (53.3%)
Step 5 -- Gear adjustment: 2.0 * (1 - 0.533) = 0.933
Step 6 -- Final damage: baseDamage(13.6) * skillAdj(1.0) * gearAdj(0.933) = 12.69
Hits to kill: 68 / 12.69 = 5.36, approximately 5.4 hits
Exemplo prático: diamante vanilla Nv1 vs esqueleto Nv5 (projétil)
Player: armorSkillLevel=1, maxHP = 20
Full vanilla diamond armor (no enchants), no mainhand/offhand enchants
Mob: level=5, skeleton arrow (PROJECTILE damage type)

Step 1 -- Armor level per piece: 5 (vanilla diamond from lookup table)
Step 2 -- Enchant bonus: 0 (no enchants on any piece)
Step 3 -- Gear score: (5+5+5+5)/4 + 0/4 = 5.0
Step 4 -- Gear reduction (matching): 0.50 * (5/5) = 0.50 (50%)
Step 5 -- Gear adjustment: 2.0 * (1 - 0.50) = 1.0
Step 6 -- Final damage: baseDamage(4) * skillAdj(1.447) * gearAdj(1.0) = 5.79
Hits to kill: 20 / 5.79 = 3.45, approximately 3.5 hits

Se a armadura de diamante também tivesse Projectile Protection IV, cada peça ganharia um bónus de encantamento de 4 * (1/3) = 1.333. A pontuação de equipamento subiria para 5.0 + (1.333*4)/4 = 6.333, aumentando a redução para 53,3% e melhorando notavelmente a sobrevivência contra flechas.

Curva de Redução de Equipamento

A redução de equipamento usa uma curva linear de duas partes que transita no ponto em que a pontuação de equipamento é igual ao nível do mob:

Abaixo do correspondente (gearScore é menor ou igual a mobLevel):

reduction = 0.50 * (gearScore / mobLevel)

Escala linearmente de 0% (nu) a 50% (correspondente). O declive depende do nível do mob -- contra um mob de nível 5 cada nível de equipamento dá 10% de redução, enquanto contra um mob de nível 50 cada um dá 1%. Isto torna naturalmente a armadura vanilla de nível baixo eficaz contra mobs de nível baixo, mas irrelevante contra os de nível alto.

Acima do correspondente (gearScore é maior do que mobLevel):

reduction = 0.50 + (gearScore - mobLevel) * 0.025

2,5% fixos por nível de equipamento acima do mob. Atinge o limite rígido de 75% com +10 níveis de equipamento acima do mob.

O ajuste de equipamento converte a redução num multiplicador de dano:

gearAdjustment = 2.0 * (1 - gearReduction)
Gear SituationGear ReductionGear AdjustmentHits to Kill (same skill level)
Nu (sem equipamento)0%2.0~2,5
Equipamento a meio correspondente25%1.5~3,3
Equipamento correspondente (gearScore = mobLevel)50%1.0~5,0
+4 níveis acima do mob60%0.8~6,25
+10 níveis acima do mob (limite)75%0.5~10,0

Tabela de Cenários

A tabela seguinte mostra os resultados de combate esperados numa variedade de cenários:

ScenarioSkill AdjGear RedGear AdjHits
Nv1 nu vs Nv11.00%2.02.5
Nv1 nu vs Nv51.450%2.0~1.7
Nv1 diamante vanilla vs Nv51.4550%1.0~3.5
Nv25 correspondente vs Nv251.050%1.05.0
Nv25 correspondente+ProtIV vs Nv251.053.3%0.935.4
Nv25 correspondente vs Nv301.5941.7%1.172.7
Nv25 equipamento de pico vs Nv251.075%0.5010.0
Nv50 correspondente vs Nv501.050%1.05.0

Objetivos-chave de design:

  • 5 acertos com nível correspondente -- o objetivo de balanceamento central. Um jogador devidamente equipado sobrevive a exatamente 5 acertos normais de um elite mob do mesmo nível, em todos os níveis.
  • 2,5 acertos nu -- não ter equipamento significa o dobro do dano através do ajuste de equipamento de 2.0. Incentivo imediato para equipar qualquer armadura.
  • A armadura vanilla importa -- um jogador de nível 1 com armadura de diamante sobrevive a ~3,5 acertos de um mob de nível 5 em vez de ~1,7 nu.
  • Os encantamentos são significativos mas não dominantes -- Protection IV nas 4 peças de armadura adiciona ~1,33 à pontuação de equipamento, empurrando de 50% para 53,3% de redução. Notável (~8% mais sobrevivência) mas não desequilibrante.
  • Consistente por nível -- o combate correspondente ao nível 25 e ao nível 50 produzem ambos exatamente 5 acertos.
  • Limite de equipamento de pico em 10 acertos -- mesmo com o melhor equipamento possível (+10 níveis acima do mob), os jogadores ainda recebem dano significativo.

potionMultiplier (Defensivo)

Os efeitos da poção de Resistance reduzem o dano recebido com base no nível do efeito:

potionMultiplier = max(0, 1.0 - (resistanceAmplifier + 1) * resistanceDamageMultiplier)

A chave de configuração é resistanceDamageMultiplierV2 em MobCombatSettings.yml (predefinição: 0.2). Isto corresponde ao comportamento vanilla: Resistance I = 20% de redução, Resistance V = 100% de redução (imune).

customBossDamageMultiplier

Este é o multiplicador de dano no ficheiro do Boss Personalizado. Predefinição 1.

configMultiplier (Defensivo)

Este é o multiplicador em MobCombatSettings.yml. Para combate normalizado, usa normalizedDamageToPlayerMultiplier (predefinição 1.0). Para combate escalado, usa scaledDamageToPlayerMultiplier (predefinição 1.0). Para mobs padrão, usa damageToPlayerMultiplierV2 (predefinição 1.0).

specialMultiplier

Este é um multiplicador de dano temporário aplicado por powers do boss. Algumas habilidades de boss aumentam o dano do boss durante a duração do power. Predefinição 1.0 quando nenhum power está ativo.

Atenuação de Dano de Explosão

As explosões de creeper e outro dano de explosão (fireballs de ghast) são reduzidos com base na distância ao centro da explosão. O multiplicador de dano diminui linearmente com a distância à explosão, tornando as explosões menos mortais à distância.

Vida máxima dos Bosses Personalizados

A vida do boss no EliteMobs 10 usa escalonamento exponencial em vez de escalonamento linear. A cada 5 níveis, a vida do boss duplica exatamente. Isto garante que as diferenças de nível se sintam consistentes independentemente do nível absoluto.

A fórmula de vida para Bosses Personalizados é:

health = 2.1875 * 2^(bossLevel / 5) * customBossHealthMultiplier

Escalonamento Exponencial

A constante base (2.1875) está ajustada para que um boss de nível 25 tenha aproximadamente 70 HP. Valores de vida de exemplo:

Boss LevelHealth+5 Levels Health
1~2.5~5 (2x)
5~4.4~8.75 (2x)
10~8.75~17.5 (2x)
25~70~140 (2x)
50~2,240~4,480 (2x)
100~2,293,760~4,587,520 (2x)

customBossHealthMultiplier

Este é o multiplicador no ficheiro do Boss Personalizado. Predefinição 1.

Dano causado aos Bosses Personalizados

O dano do jogador usa camadas multiplicativas de escalonamento exponencial e linear para manter o combate consistente entre níveis, permitindo ainda assim que diferentes famílias de armas se sintam diferentes. A fórmula separa o poder do jogador em dois eixos independentes -- nível de perícia da arma (ajuste de perícia exponencial) e nível do item da arma (ajuste de arma linear) -- para que tanto o investimento em perícia como o equipamento contribuam para o poder de combate.

A mudança importante em relação a versões mais antigas é que a velocidade das armas corpo a corpo já não tenta fazer com que cada tipo de arma tenha um DPS teórico idêntico. As espadas mantêm-se como ponto de referência, enquanto machados, maças e tridentes corpo a corpo recebem compensação de rajada amortecida. As famílias de armas que já testaram bem, como enxadas e lanças, mantêm o antigo fator de velocidade de ataque.

Fórmula de Dano

A fórmula completa de dano de jogador-para-elite é:

formulaDamage = baseDamage * attackSpeedFactor * skillAdjustment * weaponAdjustment * cooldownOrVelocity * sweepMultiplier * potionMultiplier * enchantmentMultiplier * arrowDamageMultiplier

finalDamage = max(formulaDamage, 1) * damageModifier * combatMultiplier * critMultiplier

Cada componente é descrito abaixo.

baseDamage

O dano base por acerto é derivado da HP normalizada do mob (com healthMultiplier=1.0) dividida pelo número-alvo de acertos para matar:

baseDamage = normalizedMobHP / 3.0

Onde normalizedMobHP = 2.1875 * 2^(mobLevel / 5) (ver a secção Vida máxima dos Bosses Personalizados acima). A constante 3.0 (TARGET_HITS_TO_KILL_MOB) significa que um jogador correspondente mata um elite padrão em exatamente 3 acertos de espada em qualquer nível.

Nota: O healthMultiplier do ficheiro do Boss Personalizado multiplica a HP real do mob mas NÃO afeta o baseDamage. Um boss com healthMultiplier: 2.0 tem o dobro da HP e leva 6 acertos em vez de 3.

attackSpeedFactor

Esta é a camada de ritmo da velocidade de ataque corpo a corpo. Começa a partir do antigo fator legado:

legacyFactor = 1.6 / actualAttackSpeed

A velocidade de referência de 1.6 é a velocidade de ataque da espada. O fator final depende então da família de armas:

Swords, hoes, spears, unknown melee, and bow/crossbow melee:
attackSpeedFactor = legacyFactor

Axes, maces, and melee tridents:
attackSpeedFactor = sqrt(legacyFactor)

Ranged projectile attacks:
attackSpeedFactor = 1.0

Isto significa que o sistema não está a tentar fazer com que cada arma corpo a corpo tenha um DPS idêntico. As armas de rajada lentas ainda batem com mais força por golpe, mas machados, maças e tridentes corpo a corpo já não recebem o multiplicador de rajada completo de 1.6 / speed. As enxadas e lanças mantêm-se intencionalmente no antigo fator porque os testes de jogo mostraram que o seu ritmo já era aceitável.

Exemplos com perícia e nível de arma correspondentes:

Weapon TypeExample Attack SpeedFactorFormula Hits vs healthMultiplier: 1.0
Espada1.61.00x3.0
Machado1.01.26x~2.4
Maça0.61.63x~1.8
Enxada4.00.40x7.5
Tridente, corpo a corpo1.11.21x~2.5
Lança, exemplo diamante~0.95~1.68x~1.8
Arco/besta projétilN/A1.00xa velocidade do projétil decide a carga

Para ataques de projétil, incluindo arcos, bestas e tridentes lançados, o fator de velocidade de ataque corpo a corpo não é aplicado. A carga/força do projétil é representada por cooldownOrVelocity em vez disso.

Nota: As armas exclusivamente à distância (arcos, bestas) usadas em corpo a corpo são tratadas como golpes desarmados -- nível de arma 0 e nível de perícia 1, com uma velocidade de ataque predefinida de 4.0 (velocidade do punho). Isto torna-as muito fracas em combate corpo a corpo, incentivando os jogadores a usá-las à distância.

skillAdjustment

Escalonamento exponencial a partir da diferença entre o nível de perícia da arma do jogador e o nível do mob:

skillAdjustment = 2 ^ ((weaponSkillLevel - mobLevel) / 7.5)

Cada 7,5 níveis de diferença duplica (ou reduz para metade) o dano do jogador. Isto corresponde à taxa de escalonamento de perícia defensiva usada no dano de boss-para-jogador, produzindo um combate simétrico.

Skill DifferenceSkill AdjustmentEffect
-150.25xUm quarto do dano
-7.50.50xMetade do dano
0 (correspondente)1.0xBase
+7.52.0xDobro do dano
+154.0xQuádruplo do dano

Ao contrário do modificador de nível de uso geral usado para o escalonamento da HP do boss (que é limitado), o ajuste de perícia ofensivo não é limitado no código atual. Na prática, diferenças de nível muito grandes (além de +/-22 níveis) podem produzir valores extremos, mas isto é improvável na jogabilidade normal porque as perícias de armas têm limite em 100.

weaponAdjustment

Uma curva linear de duas partes com base no nível do item da arma vs o nível do mob. Isto espelha a curva de redução de equipamento defensiva do Sistema de Defesa de Equipamento.

weaponAdjustment = 0.5 + bonus

Abaixo do correspondente (weaponLevel é menor ou igual a mobLevel):

bonus = 0.50 * (weaponLevel / mobLevel)

Escala linearmente de 0 (sem arma) a 0.50 (correspondente). Sem arma equipada, o ajuste é 0.50 (metade do dano).

Acima do correspondente (weaponLevel é maior do que mobLevel):

bonus = 0.50 + (weaponLevel - mobLevel) * 0.025
bonus = min(bonus, 0.75)

2,5% fixos por nível de arma acima do mob, limitado a 0.75 de bónus. Requer +10 níveis de arma acima do mob para atingir o limite.

Weapon ScenarioBonusWeapon AdjEffect on Hits
Punhos nus (sem arma)0.000.506 acertos (2x mais lento)
Arma a meio nível0.250.754 acertos
Arma correspondente (weaponLevel = mobLevel)0.501.003 acertos (base)
+4 níveis acima do mob0.601.10~2,7 acertos
+10 níveis acima do mob (limite)0.751.25~2,4 acertos

cooldownOrVelocity

Para armas corpo a corpo, este é o multiplicador de cooldown de ataque do Minecraft (0.0 a 1.0). Atacar antes de o cooldown reiniciar reduz todo o dano da fórmula proporcionalmente. Com carga total, cooldown = 1.0.

Para ataques à distância/projétil (arcos, bestas, tridentes lançados e flechas geradas por perícias), esta é a velocidade de lançamento normalizada. A velocidade de um arco com tração total é aproximadamente 3.0; o valor é normalizado para min(velocity / 3.0, 1.0), limitado ao intervalo [0, 1].

sweepMultiplier

Quando um varrimento de espada acerta em alvos secundários através de ENTITY_SWEEP_ATTACK, esses alvos recebem 25% do dano do acerto principal:

sweepMultiplier = 0.25  (secondary sweep targets)
sweepMultiplier = 1.0 (primary target)

potionMultiplier (Ofensivo)

Os efeitos das poções de Strength e Weakness modificam o dano de saída do jogador:

potionMultiplier = 1.0 + strengthBonus - weaknessPenalty

Onde strengthBonus = (strengthAmplifier + 1) * strengthDamageMultiplier e weaknessPenalty = (weaknessAmplifier + 1) * weaknessDamageMultiplier. Ambos os valores de configuração têm predefinição 0.2, correspondendo ao comportamento vanilla (Strength I = +20% de dano, Weakness I = -20% de dano). Níveis iguais de Strength e Weakness anulam-se exatamente. O multiplicador tem um mínimo de 0.

As chaves de configuração em MobCombatSettings.yml são:

KeyDefaultDescription
strengthDamageMultiplierV20.2Dano bónus por nível de Strength
weaknessDamageMultiplierV20.2Penalização de dano por nível de Weakness

enchantmentMultiplier

Os encantamentos Smite e Bane of Arthropods fornecem um pequeno bónus de dano contra os respetivos tipos de mob, mas apenas quando useEliteEnchantments está desativado em ItemSettings.yml. Quando os encantamentos elite estão ativados, este multiplicador é sempre 1.0.

Apenas os níveis de encantamento acima do máximo vanilla são contados (níveis exclusivos de elite):

enchantmentMultiplier = 1.0 + eliteLevelsAboveVanillaMax * 0.025

Cada nível de encantamento exclusivo de elite fornece um bónus de dano de 2,5%. Por exemplo, Smite VIII numa arma elite (o máximo vanilla é V) contribui com 3 níveis elite: 1.0 + 3 * 0.025 = 1.075 (7,5% de bónus contra não-mortos).

arrowDamageMultiplier

As flechas geradas por habilidades de perícia de armas (como Multishot, Arrow Rain, etc.) carregam um multiplicador de dano armazenado no contentor de dados do projétil. Isto permite que as flechas geradas por perícias causem dano reduzido em comparação com um acerto de flecha padrão. Para flechas normais disparadas pelo jogador, este multiplicador é 1.0.

Dano de Thorns

O dano de Thorns usa uma fórmula separada baseada no dano base do mob em vez da fórmula de ataque padrão. Apenas os níveis de thorns exclusivos de elite (níveis acima do máximo vanilla de III) contam:

eliteThornsLevel = totalThornsLevel - vanillaMaxThornsLevel (per armor piece, summed across all 4 pieces)
thornsDamage = baseDamage * eliteThornsLevel * 0.02

Cada nível de thorns elite acima do máximo vanilla contribui com 2% do dano base. O Thorns III vanilla não aciona dano de thorns elite. Por exemplo, se as 4 peças de armadura tiverem Thorns V (2 níveis elite cada), o nível total de thorns elite é 8: baseDamage * 8 * 0.02 = 16% do dano base do mob por proc.

damageModifier

Modificador de dano por tipo de arma específico do boss, vindo do ficheiro do Boss Personalizado (damageModifiers). Isto permite que os bosses recebam mais ou menos dano de materiais de arma específicos (por exemplo, um boss resistente a espadas mas fraco a machados). Predefinição 1.0 para todos os tipos de arma não explicitamente configurados.

combatMultiplier

Multiplicador global de MobCombatSettings.yml (scaledDamageToEliteMultiplier, normalizedDamageToEliteMultiplier, ou damageToEliteMobMultiplierV2 consoante o modo de combate). Predefinição 1.0.

critMultiplier

Os golpes críticos multiplicam o dano final por 1.5x. A probabilidade de crítico é determinada pelas estatísticas de probabilidade de crítico do equipamento elite do jogador.

Limitação de Modificadores (Clamping)

O modificador de nível de uso geral (usado para o escalonamento da HP do boss e combate padrão) é limitado entre MIN_MODIFIER = 0.125 e MAX_MODIFIER = 8.0 para impedir valores extremos em diferenças de nível muito grandes. Estes limites são atingidos com aproximadamente +/-15 de diferença de nível.

No entanto, os ajustes de perícia ofensivos e defensivos usados nas fórmulas de dano de jogador-para-elite e elite-para-jogador (calculateOffensiveSkillAdjustment e o ajuste de perícia em eliteToPlayerDamageFormula) não são limitados no código atual. Na prática, os níveis de perícia são limitados pelo nível máximo de perícia (100), o que limita naturalmente o intervalo destes valores.

Exemplos Práticos

Exemplo 1: espada correspondente Nv25 vs elite Nv25 (corpo a corpo)
Player: weaponSkillLevel=25, weapon=elite sword (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: mobHP(25) = 2.1875 * 2^5 = 70.0, baseDamage = 70.0/3 = 23.33
Step 2 -- Attack speed factor: sword speed=1.6, factor = 1.6/1.6 = 1.0
Step 3 -- Skill adjustment: 2^((25-25)/7.5) = 2^0 = 1.0
Step 4 -- Weapon adjustment: weaponLevel(25) == mobLevel(25), bonus=0.50, adj = 1.0
Step 5 -- Cooldown: full charge = 1.0
Step 6 -- Sweep: primary target = 1.0

formulaDamage = 23.33 * 1.0 * 1.0 * 1.0 * 1.0 * 1.0 = 23.33
Mob HP = 70.0 -> hits to kill = 70.0 / 23.33 = 3.0
Exemplo 2: machado Nv25 vs elite Nv25 (compensação de rajada amortecida)
Player: weaponSkillLevel=25, weapon=elite axe (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: 23.33 (same as above)
Step 2 -- Legacy attack speed factor: 1.6/1.0 = 1.6
Step 3 -- Axe burst damping: sqrt(1.6) = 1.265
Step 4 -- Skill adjustment: 1.0 (matched)
Step 5 -- Weapon adjustment: 1.0 (matched)
Step 6 -- Cooldown: full charge = 1.0

formulaDamage = 23.33 * 1.265 * 1.0 * 1.0 * 1.0 = 29.52
Hits to kill = 70.0 / 29.52 = 2.37
Exemplo 3: enxada Nv25 vs elite Nv25 (fator legado de arma rápida)
Player: weaponSkillLevel=25, weapon=elite hoe (itemLevel=25)
Mob: level=25, healthMultiplier=1.0

Step 1 -- Base damage: 23.33 (same as above)
Step 2 -- Attack speed factor: hoe speed=4.0, factor = 1.6/4.0 = 0.4
Step 3 -- Skill adjustment: 1.0 (matched)
Step 4 -- Weapon adjustment: 1.0 (matched)
Step 5 -- Cooldown: full charge = 1.0

formulaDamage = 23.33 * 0.4 * 1.0 * 1.0 * 1.0 = 9.33
Hits to kill = 70.0 / 9.33 = 7.5
Exemplo 4: arco Nv20 vs elite Nv25 com healthMultiplier=2.0 (à distância, abaixo do nível)
Player: weaponSkillLevel=20, weapon=elite bow (itemLevel=20)
Mob: level=25, healthMultiplier=2.0, actual HP = 70.0 * 2 = 140.0

Step 1 -- Base damage: 23.33 (from normalized HP, NOT actual HP)
Step 2 -- Attack speed factor: ranged, N/A = 1.0
Step 3 -- Skill adjustment: 2^((20-25)/7.5) = 2^(-0.667) = 0.63
Step 4 -- Weapon adjustment: weaponLevel(20) < mobLevel(25), bonus = 0.5*(20/25) = 0.4, adj = 0.9
Step 5 -- Arrow velocity: full draw = 1.0

formulaDamage = 23.33 * 1.0 * 0.63 * 0.9 * 1.0 = 13.23
Hits to kill = 140.0 / 13.23 = 10.6 hits
(Under-leveled skill AND weapon, fighting a healthMultiplier=2.0 mob)

Ferramenta de Debug DamageBreakdown

O EliteMobs inclui uma ferramenta de debug DamageBreakdown integrada que rastreia e apresenta cada componente da fórmula de dano em tempo real. Quando ativada para um jogador, regista cada camada (dano base, fator de velocidade de ataque, ajuste de perícia, ajuste de arma, cooldown, sweep, thorns, etc.) e pode produzir:

  • Uma análise formatada completa que mostra todos os níveis, componentes da fórmula, multiplicadores e o dano final calculado.
  • Um resumo compacto de uma linha para referência rápida no jogo.
  • Uma comparação entre o esperado e o real que assinala discrepâncias superiores a 10%, útil para diagnosticar conflitos de plugins ou ficheiros de boss mal configurados.

Esta é principalmente uma ferramenta de desenvolvimento e teste. Os administradores de servidor podem usá-la para verificar se o combate está a funcionar como pretendido para encontros específicos.

Progressão de XP de Perícia

As perícias de armas e de armadura sobem de nível ao obter XP de matar elite mobs. O sistema de XP usa requisitos de nível cúbicos para criar uma progressão suave com um limite suave para além do nível 100.

XP de mortes: O XP obtido de um mob é igual a mobLevel^2. Os mobs de nível mais alto concedem proporcionalmente mais XP.

XP para o próximo nível:

Para os níveis 1 a 100:

xpToNextLevel = 8.5 * L^3

Para níveis acima de 100 (limite suave):

xpToNextLevel = 8.5 * L^3 * (1 + ((L - 100)^2 / 100))

O multiplicador do limite suave é contínuo no nível 100 (multiplicador = 1.0) e cresce quadraticamente para além disso. No nível 150, o multiplicador é aproximadamente 26x, tornando a progressão adicional quase impossível. O nível máximo de perícia é 100 para fins práticos, embora o sistema permita progressão para além disso a um custo exponencialmente crescente.

Mecânicas de Combate Adicionais

Prevenção de Morte de Um Só Golpe

O EliteMobs impede que os bosses matem instantaneamente os jogadores num único acerto. Independentemente do resultado do cálculo de dano, o dano está limitado a (atributo generic_max_health do jogador - 1), garantindo que os jogadores sobrevivem sempre com pelo menos 1 ponto de vida. O limite usa o atributo generic_max_health em vez da HP atual, por isso tem em conta todos os modificadores de vida máxima (bónus de perícia de armadura, efeitos de poção, etc.).

Bloqueio com Escudo

Quando os jogadores bloqueiam com um escudo, o dano recebido é reduzido em 80% (configurado como blockingDamageReduction em MobCombatSettings). O bloqueio anula completamente os ataques de projétil à distância (o projétil é removido).

Bónus de Vida da Perícia de Armadura

Os jogadores ganham vida máxima bónus com base no seu nível de Perícia de Armadura. Cada nível acima de 1 concede +2 HP (+1 coração). Isto é aplicado como um modificador de atributo e é a principal forma de os jogadores aumentarem a sua sobrevivência em níveis mais altos.

Resumo do Escalonamento por Nível

A tabela seguinte resume como as diferenças de nível afetam o combate em ambas as direções:

Level DifferenceBoss HP ModifierBoss Damage ModifierDifficulty
-10 (jogador acima do nível)0.25x HP~0.4x danoTrivial
-5 (jogador acima do nível)0.5x HP~0.6x danoMuito Fácil
0 (mesmo nível)1.0x HP1.0x danoEquilibrado
+5 (jogador abaixo do nível)2.0x HP~1.6x danoDesafiante
+10 (jogador abaixo do nível)4.0x HP~2.5x danoMuito Difícil

Combate Escalado (Scaled Combat)

O combate escalado é um modo de combate alternativo concebido para elite mobs naturais do overworld e bosses de evento. Faz o boss simular estar no mesmo nível que o jogador, para que o equipamento e a perícia ainda importem mas o nível apresentado do mob não. O resultado é que cada jogador, independentemente do nível de progressão, enfrenta uma luta igualmente justa contra o mesmo mob do overworld.

Como o Combate Escalado Difere do Combate Normalizado

O EliteMobs tem três modos de combate:

ModeUsed ForLevel Matters?Config Key
StandardMobs básicos sem flags especiaisSim -- o dano e a vida escalam com o nível real do mobdamageToEliteMobMultiplierV2 / damageToPlayerMultiplierV2
NormalizedBosses de masmorra e regionais (normalizedCombat: true)Sim -- mas os bosses usam uma base normalizada separada para um balanceamento consistente de masmorrasnormalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier
ScaledElites naturais do overworld e bosses de evento (scaledCombat: true ou config global)Não -- o boss é simulado ao nível do jogadorscaledDamageToEliteMultiplier / scaledDamageToPlayerMultiplier

A distinção-chave: com o combate normalizado, um boss de nível 50 é mais difícil do que um boss de nível 10. Com o combate escalado, ambos se sentem como lutas do mesmo nível porque o sistema finge que o boss tem qualquer que seja o nível do jogador.

Como Funciona

Dano (Boss para Jogador)

Quando um boss de combate escalado causa dano a um jogador, a fórmula de dano define o nível do boss igual ao nível de perícia de armadura do jogador:

mobLevel = armorSkillLevel  (instead of the boss's actual level)

Isto significa que o ajuste de perícia se torna 1.0 (uma vez que bossLevel - armorSkillLevel = 0), e o dano depende inteiramente do equipamento e da perícia de armadura do jogador -- não do nível armazenado do mob. A restante fórmula (dano base, ajuste de equipamento, poções, etc.) funciona exatamente da mesma forma que descrito nas secções acima.

Dano (Jogador para Boss)

Quando um jogador ataca um boss de combate escalado, a fórmula:

  1. Simula o boss ao nível de perícia de arma do jogador -- trata temporariamente o mob como se estivesse no mesmo nível que a perícia de arma do jogador.
  2. Executa a fórmula de dano padrão contra esse nível simulado, produzindo um resultado de "dano contra um mob do mesmo nível".
  3. Reescala para a HP real do boss -- converte o dano da fórmula de uma percentagem da HP do mob simulado para a mesma percentagem do total de HP real do boss.
simulatedMobLevel = playerWeaponSkillLevel
formulaDamage = playerToEliteDamageFormula(player, eliteEntity at simulatedMobLevel)
damagePercentage = formulaDamage / simulatedMobHP
actualDamage = damagePercentage * actualBossMaxHP

Isto significa que um jogador devidamente equipado mata sempre um boss de combate escalado no mesmo número de acertos relativo à arma, independentemente do nível em que o boss está armazenado. Para healthMultiplier: 1.0, a referência é cerca de 3 acertos de espada; outras famílias de armas seguem o fator de velocidade de ataque descrito acima.

Loot e Recompensas

Para mobs de combate escalado, as recompensas de loot baseiam-se no nível de combate do jogador em vez do nível do mob. Isto significa que um jogador de nível alto a matar um elite escalado do overworld recebe loot apropriado à sua progressão, enquanto um jogador de nível baixo a matar o mesmo mob recebe loot de nível apropriadamente mais baixo.

Apresentação do Nível

As entidades de combate escalado apresentam um símbolo em vez de um nível numérico na sua placa de nome, uma vez que o seu nível real é irrelevante para o jogador:

  • Entidades escaladas padrão (healthMultiplier 1.0 ou inferior): apresenta um símbolo de espada (predefinição: 「⚔」)
  • Entidades escaladas de alta ameaça (healthMultiplier acima de 1.0): apresenta um símbolo de caveira (predefinição: )

Estes símbolos podem ser personalizados em MobCombatSettings.yml através de scaledStandardLevelSymbol e scaledHighThreatLevelSymbol.

Ativar o Combate Escalado

Para Todos os Elites Naturais (Config Global)

Em MobCombatSettings.yml:

useScaledCombatForNaturalElites: true

Isto está ativado por predefinição no EliteMobs 10. Quando ativado, todos os elite mobs gerados naturalmente no overworld usam combate escalado automaticamente. Os bosses de masmorra que usam normalizedCombat não são afetados por esta definição.

Para Bosses Personalizados Individuais

Num ficheiro de configuração de Boss Personalizado:

scaledCombat: true

Isto força um boss personalizado específico a usar combate escalado independentemente da definição global. Útil para bosses de evento ou encontros personalizados do overworld que devem sentir-se igualmente justos para todos os jogadores.

Nota: Se um boss tiver normalizedCombat: true (ou for um boss regional/instanciado com a normalização ativada globalmente), o combate normalizado tem prioridade e o boss não usará combate escalado -- a menos que scaledCombat: true seja explicitamente definido no ficheiro do boss, caso em que o combate escalado prevalece.

Chaves de Configuração

As seguintes chaves do MobCombatSettings.yml controlam o comportamento do combate escalado:

KeyDefaultDescription
useScaledCombatForNaturalElitestrueAtiva o combate escalado para todos os elites gerados naturalmente
scaledDamageToEliteMultiplier1.0Multiplicador global para o dano do jogador a bosses de combate escalado
scaledDamageToPlayerMultiplier1.0Multiplicador global para o dano de bosses de combate escalado aos jogadores
scaledStandardLevelSymbol「⚔」Símbolo mostrado na placa de nome para entidades escaladas padrão
scaledHighThreatLevelSymbolSímbolo mostrado para entidades escaladas com healthMultiplier acima de 1.0
useRecommendedHealthScalingtrueUsa o escalonamento de vida exponencial do EliteMobs 10 para elites naturais (false = valores lineares legados, ver abaixo)

Quando Usar Cada Modo de Combate

  • Combate normalizado (normalizedCombat: true): Para masmorras, instâncias e bosses regionais onde queres um controlo preciso sobre a dificuldade e o boss tem um nível fixo que se espera que os jogadores igualem.
  • Combate escalado (scaledCombat: true ou definição global): Para conteúdo do overworld, bosses de evento e qualquer encontro onde jogadores de todos os níveis devem ter a mesma experiência.
  • Combate padrão (nenhuma das flags): Para mobs onde o nível bruto deve determinar diretamente a dificuldade, como elites escalados por distância perto do spawn.

Escalonamento de Vida Legado (useRecommendedHealthScaling: false)

Quando useRecommendedHealthScaling é definido como false em MobCombatSettings.yml, os elite mobs naturais (não os bosses de masmorra ou regionais) usam uma fórmula legada simplificada em vez do escalonamento exponencial:

baseDamage = level * 2
mobHealth = baseDamage * 3 (TARGET_HITS_TO_KILL_MOB)

Isto produz números de HP e dano muito mais pequenos, mais próximos do comportamento do EliteMobs 9. Esta definição existe para retrocompatibilidade com servidores que construíram integrações em torno dos números de combate mais antigos do EliteMobs. Não é recomendada porque torna a progressão do jogador mais plana. Esta definição não afeta o combate de bosses regionais normalizado.

Usar estes dados para masmorras

NOTA: ISTO ASSUME QUE ESTÁS A USAR OS VALORES DE normalizedCombat! Esses valores foram especificamente feitos para balancear masmorras mais facilmente.

Parte da dificuldade de um boss é fazê-lo ter a vida e o dano apropriados para o encontro. No entanto, tem em conta que isto é apenas uma parte, e que os powers são igualmente importantes.

O que se segue é apresentado no formato correto para o ficheiro do Boss Personalizado.

As contas rápidas fáceis

Com o sistema de escalonamento exponencial, o healthMultiplier e o damageMultiplier escalam diretamente os valores base:

  1. Um healthMultiplier de 1.0 significa que o boss leva aproximadamente 3 acertos de espada a ser morto por um jogador do mesmo nível. Outras armas corpo a corpo variam pelo fator de velocidade de ataque: armas de rajada amortecida como machados, maças e tridentes corpo a corpo levam menos acertos do que as espadas, enquanto as enxadas levam mais acertos porque mantêm o fator legado de arma rápida. Um multiplicador de 2.0 duplica a vida, 0.5 reduz-a para metade, e assim por diante.

  2. Um damageMultiplier de 1.0 significa que o boss mata um jogador do mesmo nível devidamente equipado em aproximadamente 5 acertos. Multiplicadores mais altos tornam o boss mais mortal, multiplicadores mais baixos tornam-no mais seguro.

Como o escalonamento é exponencial, estas contagens de acertos relativas à arma mantêm-se consistentes independentemente do nível do boss -- um boss de nível 10 com healthMultiplier: 2.0 leva o mesmo número de acertos relativos à espada que um boss de nível 80 com healthMultiplier: 2.0 quando combatidos por um jogador do mesmo nível.

Tem em conta que os jogadores tendem a dar prioridade às armas, e muitas vezes acabam com armaduras muito piores do que as armas. A menos que desenhes tipos muito específicos de arenas com combate à distância, provavelmente não queres causar muito dano por acerto. Testa o teu conteúdo!

Criar um mob de masmorra médio

Com o escalonamento do normalizedCombat, podes aplicar uma configuração muito minimalista:

normalizedCombat: true
healthMultiplier: 1.0 #~3 sword hits to slay
damageMultiplier: 1.0 #survives ~5 hits

Nota: uma vez que 1.0 é a predefinição, isto significa que também podes simplesmente não definir nada.

Criar packs de lixo (trash packs)

Os trash packs são numerosos mas não muito perigosos:

normalizedCombat: true
healthMultiplier: 0.7 #~2 sword hits to slay
damageMultiplier: 0.5 #survives ~10 hits

Criar reforços

Os reforços devem morrer muito facilmente, mas representar um perigo em termos de dano (estes valores recomendados para 4+ entidades corpo a corpo, o uso real pode variar):

normalizedCombat: true
healthMultiplier: 0.25 #~1 sword hit to slay
damageMultiplier: 0.6 #survives ~8 hits

Criar minibosses

Os minibosses devem aguentar-se, e representar um desafio mecânico para os jogadores. Deve ser um teste de perícia que dura algum tempo, mas não algo extremamente mortal:

normalizedCombat: true
healthMultiplier: 3.0 #~10 sword hits to slay
damageMultiplier: 1.2 #survives ~4 hits

Criar bosses

Os bosses são um verdadeiro desafio, a conclusão de uma escalada numa masmorra e um verdadeiro teste de perícia com tudo em jogo. Os encontros devem ser longos e a morte deve ser uma ameaça presente.

normalizedCombat: true
healthMultiplier: 7.0 #~23 sword hits to slay
damageMultiplier: 1.4 #survives ~3.5 hits

Criar World Bosses

Os world bosses são perigosos, mas acima de tudo têm muita vida e invocam muitos reforços / têm muitos ataques de área de efeito. Estes destinam-se a ser combatidos por grandes grupos de jogadores ao longo do maior período de tempo que um encontro de elite deve durar. Não são muito mortais, mas têm muitas mecânicas que podem sobrecarregar jogadores mal preparados.

normalizedCombat: true
healthMultiplier: 40.0 #~120 sword hits to slay
damageMultiplier: 1.5 #survives ~3 hits

Estes são apenas valores recomendados aproximados e quaisquer valores finais devem ser ajustados em torno dos próprios encontros.