Pular para o conteúdo principal

Criando Bosses

webapp_banner.jpg

Criando bosses personalizados

Antes de começar

Onde vão os arquivos de boss?

Os arquivos de boss vão na pasta de configuração ~/plugins/EliteMobs/custombosses.

É possível criar subpastas, como ~/plugins/EliteMobs/custombosses/meusbosses. Isso é recomendado para manter as coisas organizadas.

Um arquivo define um boss, embora seja possível gerar o mesmo boss várias vezes e até definir vários locais de spawn para o mesmo arquivo de boss.

É possível usar a webapp para criar bosses personalizados e muito mais de forma rápida e fácil.

Menor configuração possível

O menor arquivo de configuração possível para um Boss Personalizado é:

Note que isso é apenas um arquivo vazio. Isso ainda irá gerar um boss zumbi personalizado com um nome personalizado, pois esses são os padrões. Tudo nesta página é opcional!

Exemplo de boss

Vamos dar uma olhada em um exemplo de como é um arquivo de boss.

Exemplo
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.yml
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"

Configurações básicas

isEnabled

Define se o boss está habilitado.

ChaveValoresPadrão
isEnabledtrue / falsetrue
Exemplo
isEnabled: true

entityType

Define o tipo de entidade do boss.

ChaveValoresPadrão
entityTypeEscolha daqui.
O valor também deve estar presente na pasta ~plugins/EliteMobs/mobproperties.
ZOMBIE
Magma Cubes e Slimes

Como esses tipos de entidades não atacam jogadores diretamente, mas causam dano através de contato, isso pode resultar em grandes explosões de dano em um curto período de tempo. Por causa disso, geralmente não recomendamos usá-los como mobs Elite com frequência. No entanto, se você ainda deseja usá-los, sugerimos definir damageMultiplier para cerca de 0.1.

Também recomendamos usar o seguinte EliteScript para evitar que Magma Cubes ou Slimes deixem os jogadores travados:

eliteScript:
NerfDamage:
Events:
- ZoneEnterEvent
- ZoneLeaveEvent
Zone:
shape: SPHERE
radius: 1
Target:
targetType: SELF
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 10
Exemplo
entityType: ZOMBIE

name

Define o nome do boss.

ChaveValoresPadrão
nameString, aceita códigos de cor e os placeholders listados abaixo"Default Name"
Exemplo
name: "$normalLevel &cBoss legal!"

create_boss_name_pic_no_level.jpg

Se você deseja incluir o nível do boss no campo de nome, basta usar um dos seguintes placeholders.

PlaceholderDescriçãoExemploSaída (para um boss de nível 10)
$levelSubstitui pelo nível"$level Boss legal"10 Boss legal
$normalLevelSubstitui pelo nível, feito para mobs normais"$normalLevel Boss legal"[10] Boss legal
$minibossLevelSubstitui pelo nível, feito para minibosses"$minibossLevel Boss legal"〖10〗 Boss legal
$bossLevelSubstitui pelo nível, feito para bosses"$bossLevel Boss legal"『10』 Boss legal
$reinforcementLevelSubstitui pelo nível, feito para reforços"$reinforcementLevel Boss legal"〔10〕 Boss Legal
$eventBossLevelSubstitui pelo nível, feito para bosses de evento"$eventBossLevel Boss legal"「10」 Boss legal
Exemplo
name: "$normalLevel &cBoss legal!"

create_boss_name_pic.jpg


level

Define o nível do boss.

ChaveValoresPadrão
levelNúmeros Inteiros positivos ou dynamicdynamic

dynamic é usado para eventos e ajusta ao nível dos jogadores próximos no momento do spawn do boss. Não é recomendado para bosses regionais.

Exemplo
level: 1

scale

Define a escala (tamanho) do boss.

ChaveValoresPadrão
scaleMultiplicador1.0

Ao escalar, 1.0 representa o tamanho padrão. Para tornar a entidade maior, aumente o valor (ex: 1.2). Para tornar a entidade menor, diminua o valor (ex: 0.8).

Exemplo
scale: 1.2

bossType

Define qual tipo o boss é. Isso é usado para exibir barras de vida do boss e outros recursos.

ChaveValoresPadrão
bossTypeNORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENTNORMAL

MINIBOSS, BOSS, EVENT farão o plugin exibir barras de vida quando os jogadores estiverem lutando contra esses tipos de boss.

Nota: REINFORCEMENT é normalmente atribuído automaticamente a mobs de reforço invocados, mas pode ser definido manualmente se necessário.

Exemplo
bossType: MINIBOSS

silent

Define se os sons do boss devem ser silenciados.

ChaveValoresPadrão
silentBooleanfalse

Quando definido como true, esta opção silencia todos os sons padrão de mob do Minecraft, fazendo com que o boss não produza nenhum som.

Exemplo
silent: true

healthMultiplier

Define a vida do boss. O valor desta configuração também determina o tipo de barra de vida exibida durante a luta. Valores mais altos mostrarão uma barra de vida de mini-boss ou boss completo.

ChaveValoresPadrão
healthMultiplierMultiplicador1.0
Exemplo
healthMultiplier: 1.5

damageMultiplier

Define o multiplicador de dano do boss.

ChaveValoresPadrão
damageMultiplierMultiplicador1.0
Exemplo
damageMultiplier: 1.5

isBaby

Define se o boss usa a variante bebê do mob. Só pode ser aplicado a mobs com variantes bebê. Se você gostaria de disfarçar o boss mas gostaria que ele também permanecesse um bebê enquanto disfarçado (certifique-se de que a entidade do disfarce também suporta a variante bebê), você pode usar esta configuração:

disguise: HOGLIN:baby
ChaveValoresPadrão
isBabytrue / falsefalse
Exemplo
isBaby: true

helmet/chestplate/leggings/boots/mainhand/offhand

Define a armadura do boss. Nem todos os modelos do minecraft são capazes de mostrar armadura. A armadura do boss é puramente cosmética e não afeta a jogabilidade.

ChaveValoresPadrão
helmetMaterial, UUIDnone
chestplateMaterialnone
leggingsMaterialnone
bootsMaterialnone
mainHandMaterialnone
offHandMaterialnone

Nota: Este campo também permite definir modelos personalizados para itens. Para definir o ID do modelo personalizado, adicione o ID após o tipo de material seguindo este formato: MATERIAL_DO_ITEM:ID. Exemplo: DIAMOND_SWORD:1 define o boss para usar uma espada de diamante com o modelo personalizado #1 no seu pacote de texturas.

Nota 2: Este campo também permite definir cores personalizadas de couro com o formato MATERIAL_DO_ITEM:CODIGO onde o código é a representação hexadecimal da cor. Exemplo: LEATHER_LEGGINGS:ffa500 criaria calças laranja. Você pode usar códigos hex, apenas remova o # do código hex. Você pode obter códigos hex aqui.

Nota 3: O campo de capacete também permite definir capacetes de mob como cabeças de jogador. Simplesmente obtenha o UUID da cabeça de jogador que você gostaria de usar e digite-o no campo de capacete. O jogador precisa estar online para isso funcionar ou a cabeça será padronizada para uma cabeça genérica do MineCraft. Você pode obter UUIDs de jogadores aqui.

Exemplo
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

create_boss_armor.jpg


powers

Define os poderes que o boss tem.

ChaveValoresPadrão
powersConsulte a lista abaixonone
Exemplo
powers:
- hyper_loot.yml
- attack_arrow.yml

Nota: Você pode conferir esta página se quiser ver uma lista de poderes pré-fabricados que você pode usar.


Configuração intermediária - Gerando reforços

Reforços também vão na categoria de poderes, usando as seguintes configurações:

Nota: Reforços são configurados dentro da seção powers do seu arquivo de configuração do boss, não como uma seção separada.

Configurações de reforços
ChaveDescriçãoValoresPadrão
summonTypeO que aciona o spawn do reforço. Obrigatório.Consulte a lista abaixonone
filenameNome do arquivo do boss para gerar como reforço. Obrigatório.Stringnone
chanceChance do reforço gerar. Opcional.Double1.0
amountDefine a quantidade de reforços para gerar. Opcional.Integer1
inheritAggroFaz o reforço herdar o aggro do boss. Opcional.true / falsefalse
spawnNearbyFaz os reforços gerarem em um raio de 30 blocos do boss. Opcional.true / falsefalse
inheritLevelFaz o reforço herdar o nível do boss. Opcionaltrue / falsefalse
customSpawnFaz o reforço gerar usando o sistema de spawn personalizado. Apenas usado para summonType: GLOBAL
locationLocal de spawn. Opcional.nome_do_mundo,x,y,z ou x,y,z para um local relativo ao boss. O deslocamento é relativo ao local de spawn para bosses regionais. Você também pode usar same_as_boss para fazer reforços gerarem no mesmo mundo que o boss.none
lightningRodConfiguração especial para summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Faz cristais finais gerarem raios ao redor deles. Opcional.true / falsenone

Tipos de invocação definem as condições para os reforços gerarem. A seguir está uma lista dos tipos de invocação válidos:

Tipos de invocação
ValorDescrição
ONCEGera os reforços apenas uma vez, na primeira vez que o boss é danificado.
ON_HITGera os reforços ao ser atingido.
ON_COMBAT_ENTERGera os reforços quando o boss entra em combate.
ON_DEATHGera reforços quando o boss morre.
GLOBALGera um reforço para cada jogador online. Requer que a chave customSpawn tenha um spawn personalizado válido definido.
ON_COMBAT_ENTER_PLACE_CRYSTALColoca reforços de cristal final ao entrar em combate, apenas para uso com lutas de dragão personalizadas.

Note que também é possível gerar reforços através de Elite Scripts, então há maneiras mais personalizáveis de gerar reforços.

Exemplo
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
customSpawn: false
location: same_as_boss,10,20,30
lightningRod: false

Configuração avançada - Criando seus próprios poderes

É possível criar seus próprios poderes, seja no próprio arquivo do boss ou como um novo arquivo de configuração na pasta powers. Você pode aprender mais sobre isso aqui.

Nota: Você também pode definir comportamentos do boss diretamente no arquivo de configuração do boss usando o campo eliteScript. Para documentação completa sobre o uso de Elite Scripts, consulte o guia de poderes.

Limitando poderes com base na dificuldade de masmorras instanciadas

Masmorras instanciadas podem ter configurações de dificuldade, e é possível fazer com que um poder específico seja habilitado apenas para dificuldades específicas.

Opções de limitação de poderes
ChaveDescriçãoValoresPadrão
filenameNome do arquivo do poder.Stringnone
difficultyIDNome da dificuldade, correspondendo ao nome da dificuldade no pacote de masmorra.Stringnone

Isso só se aplicará a masmorras instanciadas.

Exemplo
powers:
- filename: movement_speed.yml
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3

spawnMessage

Define a mensagem a ser enviada quando o boss gera. Requer configurar o announcementPriority.

ChaveValoresPadrão
spawnMessageStrings e códigos de cornone
Exemplo
announcementPriority: 3
spawnMessage: Eu surjo mais uma vez!

create_boss_spawn_message.jpg


deathMessages

Define a lista de mensagens a serem enviadas quando o boss morre. Requer configurar o announcementPriority.

ChaveValoresPadrão
deathMessagesStrings, códigos de cor e os placeholders abaixonone
Exemplo
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4O Test Boss foi morto!'
- '&c&l 1º Causador de Dano: $damager1name &ccom $damager1damage de dano!'
- '&6&l 2º Causador de Dano: $damager2name &6com $damager2damage de dano!'
- '&e&l 3º Causador de Dano: $damager3name &ecom $damager3damage de dano!'
- '&4Matadores: $players'
- '&e&l---------------------------------------------'

create_boss_death_message.jpg

Mensagens de morte usam os seguintes placeholders:

Placeholders
ValorDescrição
$damager1nameO nome do principal causador de dano
$damager2nameO nome do segundo principal causador de dano
$damager3nameO nome do terceiro principal causador de dano
$damager1damageA quantidade de dano do principal causador de dano
$damager2damageA quantidade de dano do segundo principal causador de dano
$damager3damageA quantidade de dano do terceiro principal causador de dano
$playersExibe uma lista de todos os causadores de dano

onKillMessage

Define a mensagem a ser enviada quando o boss mata um jogador. Requer configurar o announcementPriority.

ChaveValoresPadrão
onKillMessageStrings e códigos de cornone
Exemplo
announcementPriority: 3
onKillMessage: Eu ganho, você perde!

create_boss_spawn_message.jpg


slimeSize

Define o tamanho do boss slime, mas funciona apenas para Slimes e Magmacubes.

ChaveValoresPadrão
slimeSizeInteger4
Exemplo
slimeSize: 5

neutral

Define se o boss gerará como neutro ou não. Isso se aplica apenas a tipos de entidades que podem ser neutras, como Lobos ou Golens de Ferro.

ChaveValoresPadrão
neutralBooleanfalse
Exemplo
neutral: true

Configurações avançadas

timeout

Define a quantidade de tempo, em minutos, antes do Boss Personalizado desaparecer.

ChaveValoresPadrão
timeoutTempo (em minutos) Integer0
Exemplo
timeout: 20

Define o boss para escapar após 20 minutos.


isPersistent

Define se o boss pode sobreviver a um descarregamento de chunk. Recomendado apenas para bosses de evento devido ao potencial impacto de desempenho do carregamento persistente de chunks e rastreamento de entidades através de reinicializações do servidor.

ChaveValoresPadrão
isPersistenttrue / falsefalse
Exemplo

Exemplo:

isPersistent: true

damageModifiers

Define armas contra as quais os bosses podem ser fortes ou fracos.

ChaveValoresPadrão
damageModifiersMaterialnone
Exemplo
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0

Neste exemplo, os bosses receberão apenas 80% de dano de espadas de diamante (ou 20% menos), mas receberão 200% de dano de tridentes (ou 2x mais).


normalizedCombat

Modifica o dano do boss e vida máxima para corresponder aos valores da entidade normalizada em ~/plugins/EliteMobs/mobproperties. Este é o padrão para bosses regionais para garantir uma curva de dificuldade suave.

ChaveValoresPadrão
normalizedCombattrue / falsefalse
Exemplo

Exemplo:

normalizedCombat: true

escapeMessage

Define a mensagem que é transmitida aos jogadores quando o boss escapa através do mecanismo de timeout. Requer announcementPriority para ser configurado.

ChaveValoresPadrão
escapeMessageStringnone
Exemplo
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage

Define a mensagem mostrada na barra do boss. Isso é usado para rastrear tanto a vida do Boss Personalizado quanto sua localização no servidor. Requer o annoucementPriority para ser configurado.

ChaveValoresPadrão
locationMessageString, Códigos de cor e os placeholders listados abaixonone

Placeholders:

ValorDescrição
$distanceSubstituído pela distância que o jogador está do Boss Personalizado. Esta é a opção preferível.
$locationSubstituído pelas coordenadas x y z do Boss Personalizado
Exemplo
announcementPriority: 3
locationMessage: "&4Boss legal: Em $location apenas $distance blocos de distância!"

create_boss_location_message.jpg

Isso mostraria algo como Boss legal: Em 414,55,347 apenas 10 blocos de distância!


uniqueLootList

Define os Itens Personalizados que são dropados pelo boss.

ChaveValoresPadrão
uniqueLootListListnone

Entradas de loot no Loot Personalizado seguem o formato da Tabela de Loot. Informações sobre isso aqui! Observe que alguns arquivos mais antigos podem estar usando tabelas de loot desatualizadas que parecem diferentes do exemplo.

Exemplo
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- SCRAP:level=5-10:amount=10-20:ignorePlayerLevel=false:chance=0.5
- UPGRADE_ITEM:level=5-10:amount=1-2:ignorePlayerLevel=false:chance=0.1
- magmaguys_toothpick.yml:0.5:elitemobs.*

dropsEliteMobsLoot

Define se o boss dropará loot do EliteMobs, excluindo itens em uniqueLootList. Inclui moedas.

ChaveValoresPadrão
dropsEliteMobsLoottrue / falsetrue

Recomendado definir como falso para mobs de reforço.

Exemplo
dropsEliteMobsLoot: true

dropsVanillaLoot

Define se o Boss Personalizado dropará o loot vanilla normalmente associado ao seu tipo de mob vanilla.

ChaveValoresPadrão
dropsVanillaLoottrue / falsetrue
Exemplo
dropsVanillaLoot: true

dropsRandomLoot

Define se o Boss Personalizado dropará loot gerado proceduralmente do EliteMobs. Não inclui moedas elite.

ChaveValoresPadrão
dropsRandomLoottrue / falsetrue
Exemplo
dropsRandomLoot: true

trails

Define o rastro que o boss deixa para trás ao se mover.

ChaveValoresPadrão
trailsPartículas ou materiais de itensnone
Exemplo
trails:
- CLOUD

onDamageMessages

Define a mensagem que o Boss Mob exibe quando atinge um jogador. Esta é uma lista, e a usada é randomizada da lista.

ChaveValoresPadrão
onDamageMessagesListnone
Exemplo
onDamageMessages:
- "Eu acertei você!"
- "Haha eu acertei você!"

create_boss_damage_message.jpg


onDamagedMessages

Define a mensagem que o Boss Mob exibe quando danificado por um jogador. Esta é uma lista, e a usada é randomizada da lista.

ChaveValoresPadrão
onDamagedMessagesListnone
Exemplo
onDamagedMessages:
- "Você me acertou!"
- "Fui atingido!"

create_boss_damaged_message.jpg


mountedEntity

Define a entidade que o boss montará e cavalgar.

ChaveValoresPadrão
onDamagedMessagesNome do arquivo do boss a montar ou tipo de entidadenone

Não tente fazer o boss montar a si mesmo.

Exemplo
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

Nota: Bosses regionais compartilharão sua coleira com a entidade que estão montando, o que significa que ambos serão arrastados de volta ao local de spawn se excederem a distância permitida por sua coleira.


announcementPriority

Define o nível de prioridade para anúncios. Prioridades mais baixas significam que nenhum anúncio é feito, prioridades mais altas podem anunciar não apenas no chat, mas também no discord se configurado.

ChaveValoresPadrão
announcementPriorityInteger1

Aqui está uma lista do que as prioridades fazem:

ValorDescrição
0O boss ficará completamente silencioso, sem mensagens de anúncio.
1Este é o padrão. Bosses podem enviar mensagens de chat, ao gerar, ao morrer e mensagens de fuga.
2Além das coisas em 1, o boss será configurado para ser rastreável pelos jogadores através do menu /em.
3Além das coisas em 2, mensagens de transmissão serão espelhadas no Discord se configurado. Informações de configuração do Discord aqui.

Aqui está um exemplo de um boss que é rastreável, é capaz de enviar mensagens de spawn/morte/fuga no chat e no Discord:

Exemplo
announcementPriority: 3

Nota: Você terá que configurar o spawnMessage, deathMessage/deathMessages, escapeMessage para anúncios no chat e discord e o locationMessage para o recurso de rastreamento se desejar usar o nível de Prioridade de Anúncio correspondente.


followDistance

Define a distância em que os bosses ficam agressivos e entram em combate. Medido a partir do próprio mob.

ChaveValoresPadrão
followDistanceDoublenone, usa padrões do Minecraft

Nota 1: Bosses regionais têm metade da followDistance quando fora de combate. Isso é para que eles não fiquem agressivos de muito longe, o que pode causar problemas de combate irritantes devido a restrições de coleira.

Nota 2: Quanto maior a followDistance, mais intensivo na CPU do servidor o boss se torna. Use com cuidado e responsabilidade!

Exemplo
followDistance: 30

Define um alcance de 30 blocos onde se um jogador chegar a essa distância perto do boss ele começará a perseguir/atacar o jogador.


onDeathCommands

Define a lista de comandos a executar na morte do boss personalizado.

ChaveValoresPadrão
onDeathCommandsListnone

A lista suporta os seguintes placeholders:

ValorDescrição
$levelPlaceholder para o nível do boss.
$namePlaceholder para o nome do boss.
$chance=x$Faz um comando ter uma chance de executar.
$playersFaz o comando executar uma vez para cada jogador na lista de causadores de dano e substitui cada vez com o nome de usuário de um jogador diferente nessa lista.
$locationXCoordenada X do boss no momento da morte.
$locationYCoordenada Y do boss no momento da morte.
$locationZCoordenada Z do boss no momento da morte.
$damager1nameNome de usuário do principal causador de dano
$damager2nameNome de usuário do segundo principal causador de dano
$damager3nameNome de usuário do terceiro principal causador de dano

Dê uma olhada no exemplo abaixo para entender melhor como eles funcionam.

Exemplo
onDeathCommands:
- "say $players matou $name! Isso foi nível $level!"
- "$chance=0.5$ say Que morte!"

create_boss_mounted.jpg

Se Player1, Player2 e Player3 todos danificaram o boss antes de matá-lo, esta será a saída do comando do console:

say Player1 matou CustomBossName! Isso foi nível X!
say Player2 matou CustomBossName! Isso foi nível X!
say Player3 matou CustomBossName! Isso foi nível X!

Adicionalmente, há 50% de chance de que o seguinte também seja exibido:

say Que morte!

onSpawnCommands

Define a lista de comandos que serão executados no spawn do boss.

ChaveValoresPadrão
onSpawnCommandsListnone

Isso usa os mesmos placeholders que onDeathCommands! Placeholders de causadores de dano não se aplicarão pois não haverá causadores de dano neste momento.

Exemplo
onSpawnCommands:
- say Boss gerou!

create_boss_mounted.jpg


onCombatEnterCommands

Define a lista de comandos que serão executados quando o boss entrar em combate.

ChaveValoresPadrão
onCombatEnterCommandsListnone

Isso usa os mesmos placeholders que onDeathCommands! Placeholders de causadores de dano não se aplicarão pois não haverá causadores de dano neste momento.

Exemplo
onCombatEnterCommands:
- say Boss entrou em combate!

create_boss_mounted.jpg


onCombatLeaveCommands

Define a lista de comandos a executar quando o boss sai de combate.

ChaveValoresPadrão
onCombatLeaveCommandsListnone

Isso usa os mesmos placeholders que onDeathCommands!

Exemplo
onCombatLeaveCommands:
- say Boss saiu de combate!

create_boss_mounted.jpg


disguise

Define o disfarce do LibsDisguises se esse plugin estiver habilitado. Mais informações aqui.

ChaveValoresPadrão
disguiseStringnone
customDisguiseDataStringnone
Exemplo de disfarce
disguise: CHICKEN

create_boss_mounted.jpg

Exemplo de disfarce personalizado
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}

create_boss_mounted.jpg

Define um disfarce personalizado do skindex. Confira esta página para aprender como formatar corretamente esses dados.


customModel

Define o modelo personalizado a usar, se você tiver um modelo personalizado e os plugins FreeMinecraftModels ou ModelEngine. Mais informações sobre como fazer e usar modelos personalizados aqui.

ChaveValoresPadrão
customModelStringnone
Exemplo
customModel: seu_modelo

customModelMountPointID

Define o ID do ponto de montagem para modelos personalizados quando o boss está montando ou sendo montado por outra entidade.

ChaveValoresPadrão
customModelMountPointIDStringnone
Exemplo
customModelMountPointID: seu_id_do_ponto_de_montagem


frozen

Define se o boss pode se mover. Bosses congelados ainda podem atacar.
Nota: isso pode não funcionar em algumas entidades.

ChaveValoresPadrão
frozentrue / falsefalse
Exemplo
frozen: true

song

Define a música que um boss tocará, começando quando ele gera. Requer o arquivo .ogg da música no pacote de recursos.

ChaveValoresPadrão
songStringnone

Nota: A configuração song requer que followDistance seja definido, pois followDistance determina o alcance no qual a música começa a tocar. Confira o exemplo sobre como definir o length (milissegundos) da song.

Exemplo

Existem duas maneiras de configurar músicas. Aqui está a primeira:

song: name=elitemobs:ice_queen.idle length=76370

Isso tocará a música ice_queen.idle por 76370 milissegundos e então fará um loop. Note que a localização da música é determinada pelo pacote de recursos.

Aqui está a segunda maneira de configurar músicas:

song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657

Isso tocará a música ice_queen.end_transition por 14328 milissegundos e então fará a transição para ice_queen.end_loop por 28657 milissegundos e fará loop do end_loop.

Isso permite que bosses tenham uma música de "intro" ou "transição" e então uma faixa principal que faz loop.


cullReinforcements

Define se os reforços do boss serão removidos quando o boss morrer.

ChaveValoresPadrão
cullReinforcementstrue / falsetrue
Exemplo
cullReinforcements: true

movementSpeedAttribute

Define a velocidade de movimento do boss.
Nota: qualquer coisa além de 0.36 pode ser muito rápido.

ChaveValoresPadrão
movementSpeedAttributeDoublenone
Exemplo
movementSpeedAttribute: 0.3

Fases do boss

Bosses podem ter fases que mudam quando o boss atinge uma certa porcentagem de vida. Quando isso acontece, o boss começa a usar um arquivo de configuração diferente, o que significa que tudo sobre o boss pode mudar, incluindo coisas como o tipo de entidade.
Para aprender mais sobre fases de boss clique aqui.

ChaveDescriçãoValoresPadrão
phasesDefine as fases que o boss terá. ObrigatórioListnone
phaseSpawnLocationDefine onde o boss de fase gera. OpcionalStringnone
Exemplo

Para este exemplo, vamos mostrar três arquivos de configuração diferentes.

Primeiro arquivo de configuração do boss: phase_1_boss.yml

name: "Fase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30

Segundo arquivo de configuração do boss: phase_2_boss.yml

name: "Fase 2"
entityType: SKELETON

Terceiro arquivo de configuração do boss: phase_3_boss.yml

name: "Fase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER

Este boss mudaria para o arquivo de configuração phase_2_boss.yml com 60% de vida, e para o arquivo de configuração phase_3_boss.yml com 30% de vida no mesmo mundo que a fase 2 e nas coordenadas x=10, y=64 e z=100. O tipo de entidade e o nome do boss também mudariam.

O formato para uma entrada é nomedoarquivo:porcentagemDeVida.

phaseSpawnLocation é opcional, se não for definido o boss mudará de fase onde estiver.

As seguintes coisas são importantes saber ao projetar um boss de fases:

  • O arquivo de configuração para a primeira fase define todas as fases do boss.
  • Ameaça / dano contado é mantido entre fases para jogadores.
  • Mudar de fase é baseado na porcentagem de vida perdida, que é preservada ao mudar para uma fase diferente. Isso significa que aumentar ou diminuir o healthMultiplier entre fases não irá curar ou danificar o boss, ele ainda mudará com a mesma porcentagem, mas terá mais ou menos vida para essa fase.
  • Bosses de fases revertem para a fase 1 se saírem de combate.
  • Bosses de fases que também são bosses regionais compartilham o mesmo raio de coleira e mecanismo de timeout em todas as fases, e reaparecerão como o boss da fase 1 quando o timer terminar.
  • O arquivo de configuração para a última fase define o loot para o boss.
  • Fases não podem ser puladas - dano excessivo ainda fará o boss mudar de fases na porcentagem definida.
  • Bosses de fases que têm montarias deixam de estar montados ao mudar de fases.

Bosses regionais

Bosses regionais são um tipo específico de Bosses Personalizados que geram em um local configurado específico e são capazes de reaparecer naquele local após um atraso. Além disso, eles podem ter coleiras que garantem que permaneçam em uma zona específica, entre outros recursos.

Estes são usados para todo o conteúdo de masmorra. Para aprender mais sobre bosses regionais clique aqui.

ChaveDescriçãoValoresPadrão
isRegionalBossDefine se o boss é regional. Deve ser true se você quer um boss regional.true / falsefalse
spawnLocationDefine os locais de spawn do boss.Adicione estes através do comando /em addSpawnLocation [nomedoarquivo.yml]!none
spawnCooldownDefine o tempo de recarga de reaparecimento do boss, em minutos.Integer0
leashRadiusDefine a distância que o boss pode ir de seu ponto de spawn antes de ser puxado de volta. Medido a partir do spawn.Doublenone
onSpawnBlockStatesDefine os blocos que o boss modificará quando gerar.Verifique comandos abaixonone
onRemoveBlockStatesDefine os blocos que o boss modificará quando desaparecer.Verifique comandos abaixonone

Conforme indicado, Bosses Regionais podem ter onSpawnBlockStates e onRemoveBlockStates.

Este é um recurso muito útil para modificar arenas de combate durante o combate, especialmente quando combinado com mudanças de fase, pois se torna possível abrir e fechar arenas de combate através da mudança de estados de blocos.

O formato para estes é muito complexo para escrever manualmente, então existem alguns comandos para ajudá-lo a configurá-los:

ComandoDescrição
/em registerblocks [arquivo_boss_regional.yml] [on_spawn/on_remove]Inicia o registro de seleções manuais de blocos para estados de blocos ao gerar ou ao remover.
/em registerblocksedit [arquivo_boss_regional.yml] [on_spawn/on_remove]Edita os estados de blocos ao gerar ou ao remover.
/em registerblocksarea [arquivo_boss_regional.yml] [on_spawn/on_remove]Permite que administradores selecionem grandes áreas de blocos para salvar como estados.
/em registerblocksareaedit [arquivo_boss_regional.yml] [on_spawn/on_remove]Permite que administradores editem grandes áreas de blocos para salvar como estados.
Exemplo de uso:

Digamos que você queira fazer uma luta onde um boss gera em uma arena que tem uma porta aberta, e você quer fazer com que a porta feche quando a luta começar e reabra quando a luta terminar.

Para fazer isso, você precisará de duas fases de boss e registrar três conjuntos diferentes de estados de blocos. Para este exemplo, vou nomear essas fases phase_1_boss.yml e phase_2_boss.yml respectivamente.

  1. Use /em registerblocks phase_1_boss.yml on_spawn ou /em registerblocksedit phase_1_boss.yml on_spawn para registrar os blocos da porta em seu estado aberto.

Isso significa registrar os blocos de ar. Seleção de área é recomendada aqui.

Isso é necessário para garantir que a porta esteja aberta quando o boss gera para que os jogadores tenham garantia de uma entrada.

  1. Use /em registerblocks phase_2_boss.yml on_spawn ou /em registerblocksedit phase_2_boss.yml on_spawn para registrar os blocos da porta em seu estado fechado.

Isso significa registrar os blocos sólidos da porta que impediriam o jogador de sair.

Isso é necessário para mudar a porta para estar sólida quando o boss entra na fase 2, impedindo que os jogadores saiam.

  1. Use /em registerblocks phase_2_boss.yml on_remove ou /em registerblocksedit phase_2_boss.yml on_remove para registrar os blocos da porta em seu estado aberto.

Isso significa registrar os mesmos blocos do primeiro passo novamente (os blocos de ar).

Isso é necessário para abrir a porta quando o boss morre, permitindo que os jogadores saiam da arena.


alert

Define se o boss está alerta. Por padrão, Bosses Regionais são desacelerados e têm uma distância de aggro menor quando estão fora de combate. Esta configuração impede que Bosses Regionais sejam desacelerados e tenham uma distância de aggro menor enquanto fora de combate, então eles sempre se comportarão da mesma maneira dentro ou fora de combate.

ChaveValoresPadrão
alertBooleantrue
Exemplo
alert: true

removeAfterDeath

Define se o Boss Regional será permanentemente deletado após ser morto. Isso é o que BetterStructures usa para Santuários, onde o Boss Regional é projetado apenas para ser lutado uma vez e então nunca mais naquele local.

ChaveValoresPadrão
removeAfterDeathBooleanfalse
Exemplo
removeAfterDeath: true

Bosses instanciados

Bosses instanciados são um subtipo de Bosses Regionais usados em Masmorras Instanciadas.

ChaveDescriçãoValoresPadrão
instancedTorna o boss personalizado instanciado. Obrigatório.true / falsefalse

Definir bosses como instanciados é obrigatório para masmorras instanciadas funcionarem corretamente. Também recomendamos remover coleiras para quaisquer bosses instanciados.

Exemplo
instanced: true