Criar World Bosses
Os World Bosses também são por vezes referidos como Regional Bosses (bosses regionais).
O que são?
Os World Bosses são Bosses Personalizados configurados para aparecer numa localização específica com um intervalo específico. Estes são também os bosses usados em Masmorras (Dungeons). No entanto, nesta secção vamos abordar especificamente a criação de World Bosses para uso fora de masmorras.
Para que servem?
Os World Bosses permitem aos jogadores enfrentar um desafio fixo sabendo que o loot será gratificante.
O que preciso para criar um World Boss?
- Uma localização. Recomenda-se uma sala de boss, com um raio de cerca de 15 blocos (30 blocos de diâmetro) devido ao alcance de aggro do Minecraft. Além disso, certifica-te de que o terreno está protegido através de uma região do WorldGuard (para que os jogadores não consigam construir armadilhas) e de que o terreno não pode ser explorado durante o combate.
- Um tempo de respawn. O temporizador de respawn é essencial. Não recomendo um temporizador de respawn inferior a 30 minutos, caso contrário o respawn do boss será menos um acontecimento. 1 hora é um tempo bastante bom, mas também podes querer fazer com que o boss reapareça uma vez por dia ou até uma vez por semana.
- Um tempo de fuga (escape). Quanto mais longo for o respawn, mais longo deve ser o tempo de fuga. Tem também em conta que o tempo de fuga deve ser longo o suficiente para que as pessoas possam desafiar o boss confortavelmente. Os temporizadores de fuga são importantes se não quiseres permitir que os jogadores se atirem em kamikaze contra o boss até o matarem. Isto não é obrigatório, nem sequer recomendado se quiseres fazer bosses de respawn massivos com uma semana de duração.
- Um Boss Personalizado. Os World Bosses são, na realidade, apenas Bosses Personalizados com regras de spawn personalizadas. Certifica-te de que selecionas powers com uma boa compatibilidade para combate em grupo (raid).
- Loot interessante. O grande atrativo dos World Bosses, para além do desafio, é o loot. Certifica-te de que os jogadores conseguem obter algo dele que simplesmente não conseguem obter noutro lado.
- Um tema. Um bom boss Regional deve ter um tema, com uma localização temática e loot temático.
Opções de configuração de Boss Personalizado para World Bosses:
Estas definições são adicionadas aos ficheiros de configuração normais de Boss Personalizado. Podes encontrar uma página extensa da wiki sobre esses aqui.
isRegionalBoss
Define se o boss é um boss regional. Os bosses regionais são outro nome para World Bosses, por isso queres definir isto como true.
| Key | Values | Default |
|---|---|---|
isRegionalBoss | Boolean | false |
Exemplo
isRegionalBoss: true
spawnLocations
As localizações de spawn devem ser definidas a partir do jogo usando o comando /em place boss <filename.yml>.
Embora seja possível adicionar localizações manualmente a partir da configuração, não recomendo tentar fazer isso, pois é demasiado fácil errar.
| Key | Values | Default |
|---|---|---|
spawnLocations | String List | nenhum |
Exemplo
Localizações nos ficheiros de configuração (para utilizadores avançados) Os ficheiros de configuração do Boss Regional armazenam todas as instâncias desse Boss Regional num único ficheiro, guardando várias localizações de spawn bem como temporizadores de respawn.
Em termos práticos, isso significa que esta entrada:
spawnLocations:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
- elitemobs_sewer_maze,-135.02262355317436,168.2,-153.28849346821508,-98.53906,60.750263:1609026066482
- elitemobs_sewer_maze,-70.43846307626053,168.2,-174.13499832314378,-271.24023,64.19999:1610710886530
- elitemobs_sewer_maze,-130.39762674971664,168.2,-171.67396911490718,-47.532227,51.900173:1609026066482
- elitemobs_sewer_maze,-117.12782160766056,162.2,-166.40989416757444,-71.37402,-1.4997427:1610710974882
- elitemobs_sewer_maze,-105.13138759611667,168.2,-169.85898023126538,-124.34766,41.24988:1610710945331
- elitemobs_sewer_maze,-106.21847515732084,169.2,-152.3609257554766,-170.86523,21.450315:1610537606222
contém 7 Bosses Regionais diferentes, em localizações diferentes, e com temporizadores de respawn diferentes.
Vamos analisar os detalhes, olhando para o primeiro Boss Regional:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
Como isto segue o formato world,x,y,z,pitch,yaw:unixTimeStamp, o boss aparece num mundo chamado elitemobs_sewer_maze em x = -70.17178578884845, y = 168.2, z = -173.17112099568718, pitch = -271.24023, yaw = 64.19999.
O timestamp unix armazena o momento, em tempo unix, em que o boss reaparecerá. Isto é usado para guardar os tempos de respawn através de reinícios. Se quiseres saber a que hora isso corresponde, existem inúmeras ferramentas de conversão de tempo unix para tempo real que podes encontrar online.
Se quiseres que um boss específico reapareça após um reload ou reinício, tudo o que precisas de fazer é apagar a parte :unixTimeStamp (incluindo os dois pontos), para que a entrada fique: world,x,y,z,pitch,yaw
spawnCooldown
Define quanto tempo demora até o boss reaparecer, em minutos.
Nota: recomendam-se respawns mais longos para bosses grandes!.
| Key | Values | Default |
|---|---|---|
spawnCooldown | Integer | 0 |
Exemplo
spawnCooldown: 20
timeout
Define quanto tempo o boss permanece ativo antes de fugir/desaparecer automaticamente, em minutos. Quando definido como 0, o boss nunca expira (timeout).
Nota: Isto deve ser tempo suficiente para que os jogadores completem a luta confortavelmente.
| Key | Values | Default |
|---|---|---|
timeout | Integer | 0 |
Exemplo
timeout: 60
Define o boss para fugir após 60 minutos se não for derrotado.
leashRadius
Define o raio a partir da spawnLocation até ao qual o World Boss pode ir antes de ser teletransportado de volta para o seu ponto de spawn. Isto impede os jogadores de arrastarem o boss para uma localização onde poderia ser mais fácil combatê-lo.
Nota: tenta evitar criar áreas de combate que exijam leashes inferiores a 20 blocos, pois isso tornará a luta pior.
| Key | Values | Default |
|---|---|---|
leashRadius | Double | nenhum |
Exemplo
leashRadius: 30
escapeMessage
Define a mensagem transmitida aos jogadores quando o boss foge devido ao timeout. Funciona em conjunto com as definições timeout e announcementPriority.
| Key | Values | Default |
|---|---|---|
escapeMessage | String | nenhum |
Exemplo
escapeMessage: "&cThe World Boss has escaped!"
announcementPriority
Define o nível de prioridade para os anúncios de spawn/morte/fuga do boss. Valores mais altos mostram mais anúncios e ativam funcionalidades adicionais.
| Level | Behavior |
|---|---|
0 | Silencioso (sem anúncios, sem rastreamento) |
1 | Apenas mensagens de chat (anúncios de spawn/morte/fuga) |
2 | Nível 1 + rastreável pelos jogadores através do menu /em |
3 | Nível 2 + notificações no Discord (se configurado) |
| Key | Values | Default |
|---|---|---|
announcementPriority | Integer | 0 |
Exemplo
announcementPriority: 3
Define o boss para anunciar no chat e no Discord, e permite que os jogadores o rastreiem.
isPersistent
Controla se o boss sobrevive ao descarregamento de chunks. Deve ser definido como true para todos os World Bosses para impedir que desapareçam quando o chunk é descarregado.
Nota: Demasiados bosses persistentes (centenas) podem causar problemas de desempenho.
| Key | Values | Default |
|---|---|---|
isPersistent | Boolean | false |
Exemplo
isPersistent: true
removeAfterDeath
Determina se o World Boss é removido permanentemente depois de ser derrotado. Útil para bosses de evento únicos ou encontros especiais que não devem reaparecer.
Quando false (predefinição), o boss reaparecerá após o período de spawnCooldown.
Quando true, o boss é eliminado permanentemente da lista de localizações de spawn.
| Key | Values | Default |
|---|---|---|
removeAfterDeath | Boolean | false |
Exemplo
removeAfterDeath: true
Blocos Transitivos
Também conhecidos como onSpawnBlockStates e onRemoveBlockStates.
Estes valores permitem que os Bosses Regionais façam aparecer blocos quando entram em combate e os removam quando são removidos, ou seja, quando fogem devido ao timeout ou quando morrem.
É assim que podes fazer os bosses abrir ou fechar portas / áreas ou até modificar uma arena durante o combate se o usares com bosses de fase!
| Key | Values | Default |
|---|---|---|
onSpawnBlockStates | Ver Explicação Detalhada | nenhum |
| Key | Values | Default |
|---|---|---|
onRemoveBlockStates | Ver Explicação Detalhada | nenhum |
Explicação Detalhada
Todos os blocos são relativos à localização de spawn. Certifica-te de que tens a tua localização de spawn final antes de começares a definir quaisquer blocos.
Se já criaste uma grande área de Blocos Transitivos e agora precisas de mover o boss, mas não queres refazer os Blocos Transitivos. Então podes usar a ação Teleport do EliteScript para mover o boss para a localização correta depois de ele aparecer. Tem em conta que terás de ajustar a tua leash em conformidade.
Devido à complexidade de definir blocos, não é recomendado fazer isto manualmente. Deves usar os seguintes comandos para o fazer:
- /em transitiveBlocks register
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks edit
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks registerArea
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks editArea
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks cancel
Vamos analisar isto.
/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
O comando mais básico. Este é um interruptor que executas uma vez para começar, e novamente para confirmar. Tal como todos os outros comandos, escolhes se estás a definir estes blocos para serem modificados no estado ON_SPAWN ou ON_REMOVE.
Se registares o ON_SPAWN, isto modificará os blocos quando o boss aparecer ou reaparecer. Se registares o ON_REMOVE, isto modificará os blocos quando o boss morrer ou expirar usando o mecanismo de timeout do Boss Personalizado.
Para registar blocos, simplesmente coloca ou remove os blocos que desejas modificar enquanto esta definição está ativa.
/em transitiveBlocks edit <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Se quiseres modificar blocos já definidos, podes usar este comando. Funciona de forma muito semelhante a /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>.
/em transitiveBlocks registerArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Tal como /em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>, isto permite-te registar blocos, mas permite selecioná-los obtendo dois cantos diametralmente opostos (igual à seleção de região do worldedit / worldguard) em vez de selecionar blocos individualmente.
Por razões de segurança, há um limite de 500 blocos (por predefinição, modificável através de defaultTransitiveBlockLimiter no config.yml) para seleções por região. Tem em conta que cada bloco é modificado no mesmo tick, por isso, se estiveres a modificar muito terreno, provavelmente começarás a ver grandes picos de lag ao executar estas modificações.
/em transitiveBlocks editArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
Funciona da mesma forma que /em transitiveBlocks edit mas para áreas. Pode ser usado para ultrapassar o limite de registo de 500 blocos (predefinição) para áreas.
/em transitiveBlocks cancel
A qualquer momento, se for cometido um erro ao registar blocos, podes executar este comando para cancelar o registo. Reverterá quaisquer alterações que tenhas começado a registar nessa edição / registo.
Dicas profissionais para criar uma boa e grande luta de Boss Regional
-
Pensa realmente em como os powers do teu Boss Personalizado se complementam. Não queres que o teu boss passe a maior parte do tempo parado porque está a lançar algo, pois isso pode na verdade tornar a luta muito fácil. Também não queres que o boss tenha apenas ataques à distância e nenhum power corpo a corpo, ou o contrário, a menos que estejas a desenhar algo muito específico. Os testes de jogo são importantes.
-
Vida - muita. Esse multiplicador de vida provavelmente deveria estar num sólido 10 se quiseres que as pessoas se juntem de facto para combater o boss.
-
Dano - não demasiado. Os EliteMobs já são extremamente mortais por predefinição, e os powers tendem a ser exponencialmente mais mortais. Em vez de aumentares o dano até ao teto, considera usar powers para fazer o boss bater com mais força.
-
Exploits, em todo o lado. Certifica-te bem de que o terreno não é explorável. Coloca o boss numa sala fechada para impedir que as pessoas tentem abatê-lo à distância (snipe). O power de invulnerabilidade a flechas é provavelmente extremamente importante para muitos World Bosses, uma vez que os mobs do Minecraft não conseguem lidar com serem abatidos à distância de vários chunks, por isso, se quiseres permitir ataques com arco, certifica-te de que os arcos não podem ser explorados.
-
Conhece o plugin. Há muitos pequenos truques para derrotar os EliteMobs, como o facto de alguns powers poderem ser contrariados usando escudos, enquanto outros devem ser contrariados desviando-se ou até afastando-se temporariamente do boss. Quanto melhor compreenderes como os powers funcionam e como são contrariados, melhores serão os bosses que criares.
Exemplo Completo de World Boss
Aqui está um exemplo completo de uma configuração de World Boss usando todas as definições abordadas neste guia:
isEnabled: true
entityType: ZOMBIE
name: "&cThe Zombie King"
level: 50
healthMultiplier: 10.0
damageMultiplier: 2.0
# World Boss specific settings
isRegionalBoss: true
isPersistent: true
# Spawn settings
spawnLocations:
- world,100,64,100,0,0
spawnCooldown: 60
# Combat boundaries
leashRadius: 30
timeout: 20
# Messages and announcements
spawnMessage: "&cThe Zombie King has risen!"
deathMessage: "&aThe Zombie King has been defeated by $players!"
escapeMessage: "&eThe Zombie King has escaped..."
announcementPriority: 2
# Arena modification
onSpawnBlockStates:
- 0,0,0,BARRIER
onRemoveBlockStates:
- 0,0,0,AIR
# Boss features
powers:
- zombie_reinforcements.yml
- ground_pound.yml
uniqueLootList:
- magmaguys_toothpick.yml
Este boss irá:
- Aparecer na localização especificada a cada 60 minutos depois de ser derrotado
- Fugir após 20 minutos se não for derrotado
- Anunciar spawn/morte/fuga no chat e permitir o rastreamento pelos jogadores
- Sobreviver ao descarregamento de chunks
- Modificar os blocos da arena ao aparecer e ao morrer
- Largar loot único quando derrotado