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 combina ajustes exponenciais de perícia com modificadores de equipamento. A fórmula de vida do boss sem limites duplica a cada 5 níveis, enquanto os ajustes ofensivos e defensivos de perícia duplicam a cada 7,5 níveis de diferença. A vida do boss e o dano base do jogador deixam de crescer apenas pelo nível do mob ao atingir o limite de vida configurado do Minecraft. Estas curvas não garantem combates idênticos em todos os intervalos de nível.
O poder do jogador vem de duas fontes numa divisão 50/50:
- 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, lanças, bastões ou varinhas).
- 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)
A XP de armas é dividida pelas competências registadas nos golpes ou no lançamento de projéteis, conforme a contribuição de dano. Trocar de arma quando o mob morre não redireciona a XP.
As perícias de armas disponíveis são:
| Skill | Weapon |
|---|---|
| Espadas | Todos os tipos de espada |
| Machados | Todos os tipos de machado |
| Arcos | Arco |
| Bestas | Besta |
| Tridentes | Tridente |
| Enxadas | Todos os tipos de enxada |
| Maças | Maça (1.21+) |
| Lanças | Todos os tipos de lança (1.21.11+) |
| Bastões | experimental_arcane_staff |
| Varinhas | experimental_arcane_wand |
| Armadura | Todas 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.).
Os jogadores podem ter até 3 bónus ativos por tipo de arma ou armadura. Os seus números de balanceamento estão fixos no plugin e não são configuráveis. Como todas as curvas desta página são traçadas sem eles, veja Bónus de Perícia no Pipeline de Dano para saber como se compõem em dano real antes de usar estes números para balancear um confronto.
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. capHealth = Experimental Combat active ? max(1, actualMaxHealth - 30) : actualMaxHealth
10. finalDamage = min(finalDamage, capHealth - 1)
As três camadas são:
- Dano base -- quanta HP por acerto o jogador deverá perder (
playerMaxHealth / 5). - 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.
- 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).
O limite por golpe usa a vida máxima real menos 1 em combate normal. Com Experimental Combat ativo, retira primeiro o seu aumento fixo de 30 HP. Essa vida adicional aumenta a reserva do jogador sem aumentar o dano base recebido. Um jogador já ferido ainda pode morrer num golpe.
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 Difference | Skill Adjustment | Approximate 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íveis | 4.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 Type | Event Causes | Protection Enchantments Used |
|---|---|---|
| MELEE | Ataque direto, ataque de varrimento | Apenas Protection |
| PROJECTILE | Flechas, fireballs | Protection + Projectile Protection |
| EXPLOSION | Explosão de creeper, de ghast | Protection + Blast Protection |
| FIRE | Fogo, tick de fogo | Protection + Fire Protection |
| OTHER | Tudo o resto | Apenas 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:
| Material | Armor Level |
|---|---|
| Leather | 1 |
| Gold | 2 |
| Chainmail | 3 |
| Iron | 4 |
| Turtle Shell | 4 |
| Diamond | 5 |
| Netherite | 7 |
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 Situation | Gear Reduction | Gear Adjustment | Hits to Kill (same skill level) |
|---|---|---|---|
| Nu (sem equipamento) | 0% | 2.0 | ~2.5 |
| Equipamento a meio correspondente | 25% | 1.5 | ~3.3 |
| Equipamento correspondente (gearScore = mobLevel) | 50% | 1.0 | ~5.0 |
| +4 níveis acima do mob | 60% | 0.8 | ~6.25 |
| +10 níveis acima do mob (limite) | 75% | 0.5 | ~10.0 |
Tabela de Cenários
Os números de acertos seguintes pressupõem vida completa com a base normal de 20 HP mais a vida da perícia de armadura, multiplicadores de dano predefinidos e sem vida adicional, poções ou bónus de perícia. O Experimental Combat acrescenta 30 HP sem aumentar o dano base recebido, pelo que os jogadores nesse modo podem receber mais acertos.
| Scenario | Skill Adj | Gear Red | Gear Adj | Hits |
|---|---|---|---|---|
| Nv1 nu vs Nv1 | 1.0 | 0% | 2.0 | 2.5 |
| Nv1 nu vs Nv5 | 1.45 | 0% | 2.0 | ~1.7 |
| Nv1 diamante vanilla vs Nv5 | 1.45 | 50% | 1.0 | ~3.5 |
| Nv25 correspondente vs Nv25 | 1.0 | 50% | 1.0 | 5.0 |
| Nv25 correspondente+ProtIV vs Nv25 | 1.0 | 53.3% | 0.93 | 5.4 |
| Nv25 correspondente vs Nv30 | 1.59 | 41.7% | 1.17 | 2.7 |
| Nv25 equipamento de pico vs Nv25 | 1.0 | 75% | 0.50 | 10.0 |
| Nv50 correspondente vs Nv50 | 1.0 | 50% | 1.0 | 5.0 |
Objetivos-chave de design:
- 5 acertos com nível correspondente: Com a vida normal de referência acima, um jogador devidamente equipado e com vida completa é derrotado em aproximadamente 5 acertos normais de um elite mob do mesmo nível.
- 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.
- Referência consistente por nível: O combate correspondente nos níveis 25 e 50 tem como objetivo aproximadamente 5 acertos nessas condições. A vida adicional do Experimental Combat altera o número real.
- 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 fórmula de vida do boss sem limites no EliteMobs 10 duplica a cada 5 níveis. A vida real é limitada pelo máximo do Minecraft, aplicado antes e depois de healthMultiplier, pelo que essa duplicação termina quando um limite de vida é atingido.
A fórmula de vida para Bosses Personalizados é:
baseHealth = min(2.1875 * 2^(bossLevel / 5), minecraftMaxHealth)
health = max(1, min(baseHealth * customBossHealthMultiplier, minecraftMaxHealth))
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, antes do limite de vida máxima descrito abaixo:
| Boss Level | Health | +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) |
O Teto de Vida Máxima do Minecraft
O próprio Minecraft recusa-se a dar a uma entidade mais vida do que settings.attribute.maxHealth.max no spigot.yml. O EliteMobs lê esse valor no arranque e, se estiver abaixo de 2048, eleva-o para 2048 e grava o ficheiro. Chamemos a esse valor MAX.
O teto é aplicado duas vezes -- uma à fórmula de nível pura, e outra depois de o healthMultiplier ter sido aplicado:
effectiveHealth = min( min(2.1875 * 2^(level / 5), MAX) * healthMultiplier, MAX )
O limite interior é a razão pela qual mesmo um healthMultiplier abaixo de 1.0 acaba por deixar de escalar: a fórmula pura ultrapassa 2048 ao nível 50, independentemente do multiplicador que usar, e tudo a jusante passa a trabalhar a partir de um número fixo. O limite exterior morde ainda mais cedo para multiplicadores acima de 1.0.
Num servidor predefinido (MAX = 2048):
| healthMultiplier | Uso típico | A HP deixa de crescer ao | Fixada em |
|---|---|---|---|
| 0.25 | Reforços | Nível 50 | 512 HP |
| 0.7 | Grupo de trash | Nível 50 | ~1,434 HP |
| 1.0 | Mob de masmorra padrão | Nível 50 | 2,048 HP |
| 3.0 | Miniboss | Nível 42 | 2,048 HP |
| 7.0 | Boss | Nível 36 | 2,048 HP |
| 40.0 | World boss | Nível 23 | 2,048 HP |
Acima desses níveis a reserva de vida fica congelada: um world boss de nível 60 e um world boss de nível 90 têm HP idêntica. Quando o EliteMobs limita um valor, regista um aviso a nomear a entidade, o nível e o multiplicador, para que isto apareça na consola em vez de passar despercebido.
Se está a construir conteúdo acima de aproximadamente o nível 35 com valores de healthMultiplier grandes, aumente você mesmo settings.attribute.maxHealth.max no spigot.yml. Caso contrário, os seus escalões de boss achatam-se uns nos outros -- os valores de healthMultiplier recomendados mais adiante nesta página deixam de diferenciar os confrontos assim que todos eles ficam limitados ao mesmo número.
O dano base do jogador usa a vida de nível limitada, dividida por 3, deixando de crescer apenas pelo nível do mob quando atinge o limite interno. Os multiplicadores de armas, competências e outros continuam a aplicar-se. Um healthMultiplier elevado perde a resistência adicional no limite final de vida.
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 * equipmentEnchantmentMultiplier * enchantmentMultiplier * arrowDamageMultiplier
finalDamage = max(formulaDamage, 1) * damageModifier * combatMultiplier * critMultiplier
damageAfterSkills = finalDamage * (1 + sum of every active skill bonus fraction)
Cada componente é descrito abaixo. A camada de bónus de perícia corre por último, depois de o evento de dano ter sido disparado; veja Bónus de Perícia no Pipeline de Dano.
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 = min(2.1875 * 2^(mobLevel / 5), minecraftMaxHealth) (ver a secção Maximum health of Custom Bosses 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.
Estas estimativas exigem equipamento e competências do mesmo nível e margem abaixo do limite final de vida. healthMultiplier: 2.0 só duplica a vida base enquanto o resultado cabe nesse limite; não garante seis golpes de espada em todos os níveis.
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 Type | Example Attack Speed | Factor | Formula Hits vs healthMultiplier: 1.0 |
|---|---|---|---|
| Espada | 1.6 | 1.00x | 3.0 |
| Machado | 1.0 | 1.26x | ~2.4 |
| Maça | 0.6 | 1.63x | ~1.8 |
| Enxada | 4.0 | 0.40x | 7.5 |
| Tridente, corpo a corpo | 1.1 | 1.21x | ~2.5 |
| Lança, exemplo diamante | ~0.95 | ~1.68x | ~1.8 |
| Arco/besta projétil | N/A | 1.00x | a 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 Difference | Skill Adjustment | Effect |
|---|---|---|
| -15 | 0.25x | Um quarto do dano |
| -7.5 | 0.50x | Metade do dano |
| 0 (correspondente) | 1.0x | Base |
| +7.5 | 2.0x | Dobro do dano |
| +15 | 4.0x | Quá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 Scenario | Bonus | Weapon Adj | Effect on Hits |
|---|---|---|---|
| Punhos nus (sem arma) | 0.00 | 0.50 | 6 acertos (2x mais lento) |
| Arma a meio nível | 0.25 | 0.75 | 4 acertos |
| Arma correspondente (weaponLevel = mobLevel) | 0.50 | 1.00 | 3 acertos (base) |
| +4 níveis acima do mob | 0.60 | 1.10 | ~2.7 acertos |
| +10 níveis acima do mob (limite) | 0.75 | 1.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:
| Key | Default | Description |
|---|---|---|
strengthDamageMultiplierV2 | 0.2 | Dano bónus por nível de Strength |
weaknessDamageMultiplierV2 | 0.2 | Penalização de dano por nível de Weakness |
equipmentEnchantmentMultiplier
Os níveis de Sharpness e Power nos itens equipados pelo jogador contribuem com um bónus percentual de dano. Cada nível vale 2.5%, e ambos os encantamentos são contados em todos os itens:
perItemBonus = (Sharpness level + Power level) * 0.025
equipmentEnchantmentMultiplier = 1.0 + sum of perItemBonus across all six slots
A soma abrange todos os seis slots (4 de armadura + mão principal + mão secundária), por isso Sharpness num escudo ou na armadura também contribui. Esta é uma camada separada do enchantmentMultiplier abaixo, que cobre apenas os encantamentos por tipo de mob (Smite, Bane of Arthropods).
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 é somada em todos os seis slots de equipamento (4 de armadura + mão principal + mão secundária) a partir das estatísticas de probabilidade de crítico do equipamento elite do jogador, e depois limitada:
critChance = min(sum of all six slots, maximumCriticalStrikeChance)
O maximumCriticalStrikeChance fica em MobCombatSettings.yml e tem a predefinição 0.40 (40%). Sem o limite, acumular probabilidade de crítico nos seis slots pode chegar a 100%, ponto em que cada golpe é um golpe "crítico" -- o crítico deixa de se ler como um acontecimento, embora continue a pagar o 1.5x completo. Valores acima de 0.5 não são recomendados por essa razão. O limite é restringido ao intervalo [0.0, 1.0], independentemente do que estiver configurado.
Os golpes críticos são aplicados antes de o evento de dano disparar, o que os mantém como um passo multiplicativo separado da camada aditiva de bónus de perícia descrita abaixo, por isso um bónus de perícia grande nunca pode engolir o crítico.
Limitação de Modificadores (Clamping)
O modificador de nível de uso geral (getLevelModifierFromDifference, que é 2 ^ (levelDifference / 5)) é limitado entre MIN_MODIFIER = 0.125 e MAX_MODIFIER = 8.0 para impedir valores extremos em diferenças de nível muito grandes. Como duplica a cada 5 níveis, esses limites são atingidos com +/-15 de diferença de nível.
Este modificador é um auxiliar de uso geral, não um passo nas fórmulas acima. A HP do boss vem diretamente de 2.1875 * 2^(level / 5) e é delimitada pelo teto de vida máxima, não por este limite, e nem a fórmula de dano de jogador-para-elite nem a de elite-para-jogador o invocam. Não use 0.125/8.0 ao raciocinar sobre a produção de combate real.
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.
Os limites que de facto delimitam a produção guiada por perícias são o limite de probabilidade de crítico e os dois tetos de redução defensiva, todos descritos na secção seguinte.
Bónus de Perícia no Pipeline de Dano
Tudo o que está acima descreve as curvas sem bónus. Um jogador real tem também até três bónus de perícia ativos por tipo de arma, e esses assentam por cima da fórmula. Se balancear um confronto apenas contra as curvas, vai subestimar consistentemente o dano que os jogadores realmente causam.
Os números de balanceamento dos bónus de perícia -- valores, escalonamento, probabilidades de proc, cooldowns, contagens de acumulações -- são constantes fixas no plugin, não configuração. Os ficheiros skillbonuses/*.yml transportam apenas a apresentação (nome de exibição, descrição, nível de desbloqueio, ícone de menu). As chaves de balanceamento retiradas (baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks, stackBonus) são ativamente removidas dos ficheiros existentes no carregamento, para deixarem de parecer botões que pode rodar. Todos os servidores correm, por isso, números de combate idênticos enquanto a reformulação está a ser validada.
Onde a camada corre (ofensiva)
Os bónus de perícia são o último passo do caminho jogador-para-elite:
... formula → damageModifier × combatMultiplier → critical hit (×1.5)
→ EliteMobDamagedByPlayerEvent fires (other plugins can modify)
→ skill bonuses applied
→ final damage set
Como o crítico é aplicado antes do evento e a camada de perícias depois dele, os dois nunca competem -- um bónus de perícia não pode sobrepor-se nem absorver um golpe crítico.
Os bónus ofensivos acumulam-se de forma aditiva
Cada bónus ativo contribui apenas com a sua fração de bónus, e essas frações são somadas:
totalMultiplier = 1.0 + (m1 - 1.0) + (m2 - 1.0) + (m3 - 1.0) + ...
Três bónus de 1.2x cada produzem, portanto, 1.6x, e não os 1.73x que a composição multiplicativa daria. Isto aplica-se uniformemente a todos os tipos de arma.
Esta é uma mudança em relação ao comportamento anterior, em que só os machados usavam uma regra de "o maior vence": apenas o maior bónus se aplicava, e qualquer golpe de machado em que uma perícia superasse 1.5x descartava silenciosamente o golpe crítico por completo. Ter uma família de armas a correr com uma regra de acumulação diferente também tornava o dano dos machados impossível de comparar com tudo o resto.
A mesma fusão aditiva cobre os debuffs entre perícias lidos a partir do alvo em vez do atacante -- Hunter's Mark, Death Mark, Judgment, Expose Weakness e um Riposte pronto entram todos como termos aditivos adicionais.
Consequência prática: um jogador com três bónus ofensivos bem escolhidos está realisticamente a fazer algo em torno de 1.4x-2x a curva publicada antes dos procs, e mais quando uma habilidade de cooldown acerta. O objetivo de design dos "3 golpes de espada" descreve um jogador sem bónus selecionados.
Os bónus defensivos têm dois tetos
Os bónus de perícia de armadura reduzem o dano recebido e, ao contrário do lado ofensivo, compõem-se de forma multiplicativa -- cada um faz passar o dano já reduzido por damage * (1 - reduction). É por isso que existem dois limites separados:
| Limite | Valor | Âmbito |
|---|---|---|
| Limite por perícia | 80% | Delimita a redução de qualquer perícia isolada |
| Teto agregado | 85% | Delimita todas as fontes de perícia combinadas, por golpe |
O limite por perícia, por si só, não chega: três fontes, cada uma nos 80%, multiplicar-se-iam até 0.2 x 0.2 x 0.2 = 99.2% de redução total -- imunidade efetiva, com cada limite individual ainda intacto.
O teto agregado fecha essa brecha. É aplicado uma vez, mesmo no fim, comparando o dano que entrou no pipeline de perícias com o dano que saiu e recusando-se a deixar a razão cair abaixo de 1 - 0.85:
finalDamage = max(damageAfterSkills, incomingDamage * 0.15)
Trabalhar sobre a razão em vez de sobre uma soma corrente de reduções é o que o torna robusto. Os ramos individuais têm formas diferentes -- uns multiplicam, outros atribuem um valor diretamente, outros acumulam, outros leem configuração -- e a ordem e o número de contribuidores são irrelevantes para o resultado. Uma build defensiva totalmente acumulada come sempre pelo menos 15% de cada golpe recebido.
A negação total está deliberadamente fora do teto. Evasion, Last Stand e Divine Shield cancelam totalmente o evento de dano em vez de o reduzirem. São mecânicas de tudo ou nada, não reduções acumuladas, por isso levam-no a zero dano independentemente do piso de 85%.
Um limite agregado fixo é um instrumento rude: todas as builds defensivas acumuladas batem na mesma parede, e assim que ela é atingida o terceiro bónus que o jogador escolheu não vale nada. A direção futura pretendida são retornos decrescentes em reduções sucessivas, em vez de um teto rígido.
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 cálculo final do dano do boss é limitado à vida máxima real menos 1 em combate normal. Com Experimental Combat ativo, o limite é max(1, actualMaxHealth - 30) - 1, excluindo apenas o aumento fixo de 30 HP desse modo. Os restantes modificadores de vida máxima continuam a contar. O limite usa a vida máxima e não a atual, pelo que um jogador ferido ainda pode morrer num único acerto.
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 os modificadores de nível antes de aplicar os limites de vida e os outros modificadores de combate. As proporções de vida do boss deixam de se verificar quando qualquer um dos dois limites é atingido.
| Level Difference | Boss HP Modifier | Boss Damage Modifier | Difficulty |
|---|---|---|---|
| -10 (jogador acima do nível) | 0.25x HP | ~0.4x dano | Trivial |
| -5 (jogador acima do nível) | 0.5x HP | ~0.6x dano | Muito Fácil |
| 0 (mesmo nível) | 1.0x HP | 1.0x dano | Equilibrado |
| +5 (jogador abaixo do nível) | 2.0x HP | ~1.6x dano | Desafiante |
| +10 (jogador abaixo do nível) | 4.0x HP | ~2.5x dano | Muito 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:
| Mode | Used For | Level Matters? | Config Key |
|---|---|---|---|
| Standard | Mobs básicos sem flags especiais | Sim -- o dano e a vida escalam com o nível real do mob | damageToEliteMobMultiplierV2 / damageToPlayerMultiplierV2 |
| Normalized | Bosses de masmorra e regionais (normalizedCombat: true) | Sim -- mas os bosses usam uma base normalizada separada para um balanceamento consistente de masmorras | normalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier |
| Scaled | Elites naturais do overworld e bosses de evento (scaledCombat: true ou config global) | Não -- o boss é simulado ao nível do jogador | scaledDamageToEliteMultiplier / 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:
- 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.
- 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".
- 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:
| Key | Default | Description |
|---|---|---|
useScaledCombatForNaturalElites | true | Ativa o combate escalado para todos os elites gerados naturalmente |
scaledDamageToEliteMultiplier | 1.0 | Multiplicador global para o dano do jogador a bosses de combate escalado |
scaledDamageToPlayerMultiplier | 1.0 | Multiplicador global para o dano de bosses de combate escalado aos jogadores |
scaledStandardLevelSymbol | 「⚔」 | Símbolo mostrado na placa de nome para entidades escaladas padrão |
scaledHighThreatLevelSymbol | ☠ | Símbolo mostrado para entidades escaladas com healthMultiplier acima de 1.0 |
useRecommendedHealthScaling | true | Usa 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: trueou 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:
-
Um
healthMultiplierde 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. -
Um
damageMultiplierde 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.
Estas estimativas exigem equipamento e competências do mesmo nível e margem abaixo do limite final de vida. healthMultiplier: 2.0 só duplica a vida base enquanto o resultado cabe nesse limite; não garante seis golpes de espada em todos os níveis.
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!
Duas coisas que estas contagens de acertos não têm em conta:
- Os bónus de perícia. Todas as contagens acima assumem zero bónus ativos. Um jogador com três bónus ofensivos mata visivelmente mais depressa, e um jogador com três defensivos sobrevive visivelmente mais tempo (até ao teto agregado de 85%). Trate os números como um piso do poder do jogador, não como uma previsão.
- O teto de vida máxima. Acima dos níveis listados em O Teto de Vida Máxima do Minecraft, o
healthMultiplierdeixa de aumentar a HP por completo. A predefinição de world boss, em particular, fica limitada a partir do nível 23 num servidor predefinido.
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.