Sistema de Habilidades
O EliteMobs usa um sistema de progressão baseado em habilidades, onde os jogadores sobem de nível ao lutar contra elite mobs. Em vez de um único nível global, os jogadores desenvolvem habilidades individuais de armas e uma habilidade de armadura que, em conjunto, determinam o seu poder geral.
Existem 11 tipos de habilidade:
| Habilidade | Arma | Notas |
|---|---|---|
| Espadas | Qualquer _SWORD | |
| Machados | Qualquer _AXE | |
| Arcos | BOW | |
| Bestas | CROSSBOW | |
| Tridentes | TRIDENT | |
| Enxadas (Foices) | Qualquer _HOE | |
| Maças | MACE | Requer Minecraft 1.21+ |
| Lanças | Qualquer _SPEAR | Requer Minecraft 1.21.11+ (com resource pack) |
| Cajados | Arma STAFF válida definida no FMM | Requer FreeMinecraftModels compatível |
| Varinhas | Arma WAND válida definida no FMM | Requer FreeMinecraftModels compatível |
| Armadura | Capacetes, peitorais, calças, botas | Sobe de nível passivamente |
As habilidades sobem de nível ao usar a arma associada para matar elite mobs. O seu Nível de Combate, calculado a partir das habilidades, ajuda a determinar o acesso ao conteúdo e a dificuldade dos elites naturais próximos. As restrições de equipamento usam a habilidade correspondente de arma ou armadura; o equipamento elite de nível 20 ou inferior está isento.
Como as Habilidades Sobem de Nível
Quando mata um elite mob, ganha XP com base no nível do mob. O XP é distribuído da seguinte forma:
- O XP de armas é dividido pelas habilidades 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 o XP.
- O XP de armadura é atribuído automaticamente com um multiplicador de 1/3 sobre a sua parte de XP. Pode ultrapassar uma habilidade de arma individual se usar vários tipos de armas.
- Combates em grupo: Quando vários jogadores causam dano ao mesmo elite, o XP é dividido proporcionalmente à contribuição de dano de cada jogador. Se causou 60% do dano, recebe 60% do XP base.
XP Base dos Mobs
O XP base ganho ao matar um mob é:
mob_xp = mob_level ^ 2
| Nível do Mob | XP Ganho |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
Multiplicador de XP de Boss
Mobs mais duros valem mais. O XP base acima é multiplicado por um fator derivado do healthMultiplier e do damageMultiplier do mob:
bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)
O componente de HP usa um expoente sublinear (0.6) para que lutas mais longas paguem mais sem tornar os bosses de vida elevada desproporcionalmente lucrativos de farmar. O componente de dano é fortemente amortecido, porque mesmo pequenos aumentos de dano elevam muito a dificuldade e uma recompensa linear empurraria os jogadores para alvos suicidas.
| healthMultiplier | damageMultiplier | Multiplicador de XP |
|---|---|---|
| 1.0 | 1.0 | 1.00x |
| 3.0 (miniboss) | 1.2 | 1.99x |
| 7.0 (boss) | 1.4 | 3.41x |
| 40.0 (world boss) | 1.5 | 9.83x |
A ordem completa das operações numa morte é: nível efetivo do mob (após os limites antiexploit abaixo) → XP base → multiplicador de boss → divisão pela contribuição de dano → XP de arma e XP de armadura.
Proteções Antiexploit
Todas as três são configuradas em AntiExploit.yml e são totalmente ignoradas quando enableFarmingProtection é false. Consulte Proteção contra Farming para a tabela de configuração completa.
- Mobs de nível baixo (por habilidade): Cada habilidade de arma ou armadura só ganha XP se o mob estiver, no máximo,
farmingProtectionLevelDifferenceníveis abaixo do nível dessa habilidade específica (predefinição15). Esta verificação usa o nível individual da habilidade, não o nível de combate, e é totalmente ignorada no combate escalado, onde o mob é normalizado ao jogador e não faz sentido considerá-lo de nível demasiado baixo. - Mobs de nível alto: O XP de habilidade usa um nível efetivo de recompensa limitado a
combat_level + farmingProtectionLevelDifference(predefinição15). O mesmo limite aplica-se ao loot de elites naturais; o loot de bosses personalizados não usa este limite de nível da proteção contra farming. Os restantes requisitos para receber XP continuam a aplicar-se. - Limite natural de farming de elites: As mortes de elites naturais (que não sejam bosses personalizados) são contadas numa janela deslizante com a duração de
farmingProtectionMinutes(predefinição30). UltrapassarfarmingProtectionKillsmortes (predefinição20) dentro dessa janela bloqueia-o das recompensas de elites naturais durante uma janela completa. É informado no chat quando o bloqueio começa e novamente quando termina. Os bosses personalizados estão isentos.
Vantagens de XP por permissões
O XP de armas e armadura ganho em combate pode receber um multiplicador por permissões. Estas vantagens não contornam os requisitos para receber recompensas nem multiplicam outras atribuições de XP.
elitemobs.perks.xp.<perk>.<skill>
Use os nomes ingleses das habilidades em minúsculas (swords, armor, wands, etc.), ou all para todas as habilidades.
| Vantagem | Multiplicador |
|---|---|
10percentboost | 1.10 |
25percentboost | 1.25 |
50percentboost | 1.50 |
double | 2.00 |
150percentboost | 2.50 |
triple | 3.00 |
quadruple | 4.00 |
customboost | customXpPerkMultiplier em skills.yml, 1.0 por predefinição |
As vantagens normais não se acumulam: aplica-se o maior multiplicador elegível. customboost substitui essa escolha, mesmo que o multiplicador configurado seja 1.0 ou inferior. As negações explícitas por habilidade são respeitadas. O multiplicador personalizado tem de ser finito e não negativo; valores inválidos são substituídos por 1.0.
O resultado é arredondado para baixo para XP inteiro antes do evento público de XP de habilidade. Por exemplo, elitemobs.perks.xp.double.swords duplica o XP elegível de espadas sem duplicar o XP de armadura.
Progressão de XP
O XP necessário para avançar do seu nível atual para o nível seguinte segue esta fórmula:
Níveis 1-100:
xp_to_next_level = 8.5 * current_level ^ 3
Níveis acima de 100 (limite suave):
xp_to_next_level = 8.5 * current_level ^ 3 * (1 + ((current_level - 100) ^ 2 / 100))
O multiplicador do limite suave é 1.0 no nível 100 (sem penalização extra) e cresce de forma quadrática. Ao nível 150, o multiplicador atinge 26x, tornando o progresso adicional extremamente difícil.
Tabela de XP Por Nível
A tabela abaixo mostra o XP necessário para passar de um dado nível para o seguinte, e aproximadamente quantas mortes de mobs do mesmo nível isso requer (habilidade de arma, não armadura):
| Nível | XP até ao Nível Seguinte | Mortes de Mobs do Mesmo Nível |
|---|---|---|
| 10 | 8,500 | 85 |
| 25 | 132,812 | 213 |
| 50 | 1,062,500 | 425 |
| 75 | 3,585,937 | 638 |
| 100 | 8,500,000 | 850 |
A armadura ganha XP a 1/3 da taxa das armas, por isso são precisas aproximadamente 3x mais mortes para subir a armadura de nível em comparação com os números acima. Ao nível 50, isso significa cerca de 1,275 mortes do mesmo nível só para a armadura.
Nível de Combate
O seu Nível de Combate é a medida geral do seu poder. É calculado como:
combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3
O resultado é arredondado para baixo (divisão inteira).
O Nível de Combate determina:
- O nível dos elite mobs que surgem à sua volta
- A que masmorras e conteúdo instanciado pode aceder
- O limite superior do nível de recompensa para XP de habilidade e loot de elites naturais; a elegibilidade de XP por nível baixo usa cada habilidade individual
As restrições de equipamento usam a habilidade correspondente de arma ou armadura, não o Nível de Combate. Os itens de nível 20 ou inferior estão isentos.
Apresentação do Nível de Combate
O seu nível de combate aparece como um número flutuante acima da cabeça, visível para si e para os outros jogadores conforme as regras de visibilidade das etiquetas de nome. Usa entidades de texto baseadas em pacotes e atualiza-se quando as habilidades mudam. O formato é configurável (predefinição: Combat Lv. X). Quando o [Alpha] Advanced Combat System lhe atribui uma classe ativa, a etiqueta mostra essa classe e o seu nível. Enquanto estiver em combate, aparece uma linha de vida ❤ current/max por cima da etiqueta. Nos mundos indicados em classLabelWorldExclusions, a etiqueta da classe fica oculta; aí, os jogadores sem classe mantêm a etiqueta do nível de combate.
usePassengerCombatLevelDisplay em config.yml é true por predefinição, pelo que esta etiqueta vai no jogador como um passageiro que existe apenas nos pacotes e nunca fica para trás a pé. Os outros jogadores continuam a ver o nome do jogador. Defini-la como false usa texto que segue o jogador, que se teletransporta atrás dele com um curto deslizamento. Enquanto outra entidade monta o jogador, o modo passageiro passa automaticamente a texto que o segue. Enquanto o jogador vai num veículo que sentaria a etiqueta no lugar do próprio jogador, a etiqueta vai no veículo. Consulte Feedback de combate.
Barra de XP
Quando ganha XP de habilidade, surge uma boss bar animada que mostra o seu progresso até ao nível seguinte. A barra apresenta:
- Animação suave que sobe lentamente à medida que o XP é ganho
- Uma cor diferente por tipo de habilidade (ex.: vermelho para Espadas, verde para Arcos, azul para Armadura)
- Efeitos especiais de partículas e som ao subir de nível
- Esconde-se automaticamente após 5 segundos de inatividade
Restrições de Equipamento
O equipamento do EliteMobs tem requisitos de nível ligados ao sistema de habilidades. Para equipar um item elite, o seu nível de habilidade para esse tipo de arma ou armadura tem de ser igual ou superior ao nível do item.
Exceção: Os itens de nível 20 ou inferior podem ser equipados por qualquer pessoa, independentemente do nível de habilidade. Isto garante que os novos jogadores podem usar livremente o equipamento de início de jogo sem ficarem bloqueados.
Se tentar equipar um item acima do seu nível de habilidade, receberá uma mensagem de aviso e o item não fornecerá quaisquer bónus elite.
Bónus de Habilidade
À medida que sobe de nível as suas habilidades, desbloqueia habilidades de combate especiais em quatro níveis. Cada nível desbloqueia um conjunto de bónus para essa habilidade, e não apenas um:
| Nível | Desbloqueia ao |
|---|---|
| 1 | Nível 10 |
| 2 | Nível 25 |
| 3 | Nível 50 |
| 4 | Nível 75 |
Desbloquear um nível não concede um slot. Pode ter até 3 bónus ativos por tipo de arma ou armadura de cada vez, escolhidos entre tudo o que desbloqueou. Os bónus de habilidade são geridos através do menu /em ou visitando o NPC de Bónus de Habilidade na Guilda dos Aventureiros.
Os ficheiros skillbonuses/*.yml controlam a apresentação (nome apresentado, descrição, nível de desbloqueio, tipo de bónus, ícone de menu e modelos de lore) e parte do equilíbrio. O plugin lê baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks e stackBonus quando um bónus consulta a sua configuração. Os bónus que não leem estas chaves usam constantes fixadas no código. Consulte Bónus de Habilidade para saber que valores cada bónus obtém da configuração.
Consulte Bónus de Habilidade para a lista completa de todos os 104 bónus e o que fazem.
Notificações e UI
O sistema de habilidades fornece várias formas de feedback:
- Subir de Nível: Mensagem de título, som de desafio completo e explosão de partículas de totem-da-imortalidade em cada subida de nível.
- Marcos: É enviada uma transmissão para todo o servidor apenas quando um jogador atinge um nível marcante (a cada 5 níveis: 5, 10, 15, ...). As subidas de nível normais não são transmitidas. A transmissão pode ser desligada em
dungeons.yml. - Apresentação do Nível de Combate: Número flutuante acima da cabeça, visível para si e para os outros jogadores conforme as regras de visibilidade das etiquetas de nome. Atualiza-se automaticamente ao subir de nível.
- Barra de XP: Boss bar animada que mostra o progresso de XP de habilidade durante o combate.
- Mensagens de Ganho de XP: Mensagens opcionais de XP por morte (desativadas por predefinição, pois podem ser repetitivas).
A maioria do acima é configurada em skills.yml; a transmissão de subida de nível marcante e a sua mensagem ficam em dungeons.yml.
Comandos de Admin
| Comando | Permissão | Descrição |
|---|---|---|
/em skill check <player> | elitemobs.skill.check | Ver os níveis de habilidade, progresso de XP e percentagens de um jogador |
/em skill set <player> <skillType> <level> | elitemobs.skill.admin | Definir uma habilidade específica para um determinado nível |
/em skill setAll <player> <level> | elitemobs.skill.admin | Definir todas as habilidades para o mesmo nível |
/em debug combat start | elitemobs.admin | Iniciar o teste automatizado do sistema de combate |
/em debug combat test <type> | elitemobs.admin | Testar um tipo de arma específico (ex.: swords, bows) |
/em debug combat results | elitemobs.admin | Ver os resultados do último teste de combate |
/em debug combat cancel | elitemobs.admin | Cancelar um teste de combate ativo |
O argumento skillType de /em skill set aceita: ARMOR, SWORDS, AXES, BOWS, CROSSBOWS, TRIDENTS, HOES, MACES, SPEARS, STAVES, WANDS.
Configuração do Servidor
O sistema de habilidades é configurado em skills.yml. Definições principais:
| Definição | Predefinição | Descrição |
|---|---|---|
skillSystemEnabled | true | Ativa ou desativa todo o sistema de habilidades |
armorSkillHealthBonusEnabled | true | Se a habilidade de Armadura concede vida máxima bónus (+1 coração por nível acima de 1) |
scalePlayerHealthDisplayToVanilla | false | Mantém a HP máxima do EliteMobs, mas escala visualmente o HUD do jogador de volta aos 10 corações vanilla |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | Quando o bónus de vida da armadura está desativado, força os jogadores aos 20 de vida máxima vanilla ao entrar |
skillWorldExclusions | (vazio) | Lista de nomes de mundos onde o sistema de habilidades está inativo. Os jogadores nestes mundos não recebem XP de habilidade, bónus de vida da armadura, barras de XP nem apresentação de nível de combate. Útil para mundos de eventos onde todos devem ser iguais. A correspondência não diferencia maiúsculas de minúsculas |
classLabelWorldExclusions | (vazio) | Lista de nomes de mundos onde apenas a etiqueta da classe acima dos jogadores fica oculta. Os nomes dos jogadores, as indicações de vida em combate, as habilidades e a XP não mudam, e os jogadores sem classe mantêm a etiqueta do nível de combate. A correspondência não diferencia maiúsculas de minúsculas |
skillsMenuTitle | &5&lYour Skills | Título do menu de habilidades |
showCombatLevelDisplay | true | Mostrar a etiqueta da classe ou do nível de combate acima dos jogadores |
showXPBar | true | Mostrar a barra animada de progresso de XP durante o combate |
skillBarTitleFormat | &6$skillName &7Lv.$level$xpText | Formato do título da barra de XP |
skillLevelUpTitleFormat | &e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦ | Formato do título da boss bar de subida de nível |
combatLevelFormat | &6&lCombat Lv. $level | Formato de apresentação do nível de combate |
Para a referência completa de configuração, consulte a página Configuração do EliteMobs.
[Alpha] Advanced Combat System
Consulte o guia de progressão de classes, treino e controlos para o percurso completo, incluindo Adventurer, as provas dos treinadores, os requisitos de base e as teclas de Java.
O [Alpha] Advanced Combat System acrescenta classes e habilidades ao combate do EliteMobs. Partilhe o seu feedback sobre a alfa com o programador. Em plugins/EliteMobs/AdvancedCombatSystem.yml, enabled é true por predefinição; mude-o para false e recarregue o EliteMobs para desativar o módulo. As classes e o seu equilíbrio mantêm-se fixos durante a fase alfa. As definições de versões anteriores não são importadas automaticamente; configure este ficheiro antes de iniciar um servidor atualizado.
/em class abre o perfil, /em class info <class> explica uma forma e /em class select <class> seleciona uma forma desbloqueada. Exigem elitemobs.command. As classes base são paladin, berserker, ranger, cleric e spellcaster. Spellcaster exige FreeMinecraftModels compatível com o cajado e a varinha incluídos; permanece bloqueado sem esse conteúdo. Os cajados e as varinhas usam identidades de itens registadas: um pau, lança ou vara de blaze normal não é automaticamente uma arma mágica.
Em Java, prime F e depois 1/2/3 para Mobility, Signature ou Utility. Um segundo F seleciona Mobility; durante a janela de seleção, o clique esquerdo seleciona Signature e o direito Utility. Os controlos estão ativos no conteúdo de combate do EliteMobs. allowClassAbilitiesOutsideEliteMobsWorlds é true por predefinição e permite ativá-los fora desse conteúdo durante a sessão, premindo F duas vezes enquanto está agachado.
O NPC GUILD_GREETER abre a seleção de bónus de habilidades de arma, quer o combate de classes esteja ativo ou não. Visite os NPCs CLASS_TRAINER separados para treinar classes. A progressão de classes é separada da de armas e armadura; dano de habilidades de classe sem identidade de arma não dá XP de armas.