Criar Reforços Personalizados
Se estás interessado em invocar elites durante o combate para reforçar um boss, este guia aborda isso em detalhe.
Passos para criar um boss personalizado:
- Cria o teu boss personalizado principal que invocará o teu boss personalizado
- Cria um boss personalizado para os reforços. Tem em mente que os bosses personalizados podem ser mais fortes do que os mobs vanilla, mas também podem ser mais fracos.
- Adiciona a linha de reforço correta ao ficheiro de configuração
Criar a linha de reforço
Vamos assumir que tens um boss personalizado com este formato:
isEnabled: true
entityType: ENDER_DRAGON
name: $eventBossLevel &eBinder of Worlds
level: 200
powers:
- ender_dragon_arrow_bombardment.yml
E queres adicionar-lhe reforços. Eis como poderia ser um desses reforços:
- summonType:ON_COMBAT_ENTER
filename: binder_of_worlds_phase_1_parkour_reinforcement.yml
E para o tornar válido, adiciona-o à lista de powers:
isEnabled: true
entityType: ENDER_DRAGON
name: $eventBossLevel &eBinder of Worlds
level: 200
powers:
- ender_dragon_arrow_bombardment.yml
- summonType: ON_COMBAT_ENTER
filename: binder_of_worlds_phase_1_parkour_reinforcement.yml
O reforço está agora adicionado à entidade do boss. No entanto, como podes ver, há várias opções aqui que podes personalizar. Vamos abordá-las.
Todas as opções de Reforço Personalizado
Dica: Também podes usar EliteScript para invocar reforços, mais sobre isso aqui.
summonType
Este é um campo obrigatório. Define quando o reforço deve aparecer.
| Key | Values | Default |
|---|---|---|
summonType | Especial [1] | nenhum (obrigatório) |
Exemplo
summonType: ON_HIT
Especial [1]
| Key | Description |
|---|---|
ONCE | Faz aparecer o reforço uma vez, a primeira vez que o boss é atingido. (pode depender de uma % de probabilidade de acontecer) |
ON_HIT | Faz aparecer o reforço sempre que o boss é atingido (pode depender de uma % de probabilidade de acontecer) |
ON_COMBAT_ENTER | Faz aparecer o reforço quando o boss entra em combate (1) |
ON_COMBAT_ENTER_PLACE_CRYSTAL | Especial: isto serve especificamente para colocar end crystals em lutas de dragão quando o boss entra em combate (1) |
ON_DEATH | Faz aparecer o reforço quando o boss morre |
GLOBAL | Faz aparecer reforços para cada jogador no mesmo mundo que o boss. Os reforços aparecerão perto dos jogadores, independentemente da distância a que estejam do boss. O sistema impõe um limite de população de 30 reforços por jogador online para prevenir sobrecarga do servidor. Os reforços aparecem a cada 10 segundos (200 ticks) enquanto o boss estiver em combate e o limite não tiver sido atingido. Isto requer que o campo customSpawn esteja definido para funcionar! |
(1) Os bosses entram em combate quer quando são atingidos por jogadores quer quando detetam um jogador dentro de alcance.
filename
Este é um campo obrigatório, pois define qual reforço deve aparecer. A única exceção a este campo ser obrigatório é ao usar a definição summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL, uma vez que os end crystals não são elites.
| Key | Values | Default |
|---|---|---|
filename | Filename | nenhum |
Exemplo
filename: test_boss.yml
Importante: O filename tem de referenciar um ficheiro de configuração de boss existente. Se o ficheiro não existir, o reforço será silenciosamente ignorado durante o spawn do boss. Verifica sempre que os teus ficheiros de boss de reforço estão devidamente criados e localizados na pasta custombosses.
Viabilidade Mínima
summonType: SUMMON_TYPE e filename: filename.yml são suficientes por si só para criar um Reforço Personalizado. O exemplo seguinte demonstra isto.
Nota: As chaves de configuração não diferenciam maiúsculas de minúsculas. Tanto summonType como SUMMONTYPE (ou qualquer outra capitalização) funcionarão corretamente.
Exemplo
isEnabled: true
entityType: ENDER_DRAGON
name: $eventBossLevel &eBinder of Worlds
level: 200
powers:
- ender_dragon_arrow_bombardment.yml
- summonType: ON_COMBAT_ENTER
filename: binder_of_worlds_phase_1_parkour_reinforcement.yml
No entanto, se quiseres ou precisares de algo mais complexo, continua a ler abaixo para veres o que mais podes fazer com estas opções.
chance
Este é um campo de configuração opcional feito para complementar as opções ONCE e ON_HIT do summonType. Representa a probabilidade de o Reforço Personalizado aparecer quando um boss é atingido.
| Key | Values | Default |
|---|---|---|
chance | Double | 1.0 |
Exemplo
chance: 0.5
Representa uma probabilidade de 50% de fazer aparecer um Reforço Personalizado.
location
location: x,y,z é um campo de configuração opcional que permite aos administradores deslocar a localização do reforço por um número de blocos. Eis os conceitos-chave que precisas de saber sobre esta opção:
A localização de deslocamento é relativa. Isto significa que location: 0,10,0 fará aparecer um boss exatamente 10 blocos acima do boss, e não nas coordenadas de mundo 0,10,0.
A localização relativa é diferente para bosses regionais. Os bosses regionais usarão sempre o seu ponto de spawn como origem da localização relativa, o que significa que, se souberes onde está o ponto de spawn do boss e contares os blocos, podes fazer com que os bosses de reforço apareçam em localizações específicas. O covil do Binder of Worlds depende disto para fazer aparecer os bosses da torre de desafio em posições de bloco extremamente específicas, independentemente de onde o boss dragão se encontra.
Os bosses aparecerão dentro de blocos se errares ao medir as distâncias.
| Key | Values | Default |
|---|---|---|
location | String | nenhum |
Exemplo
location: 0,10,0
Para um Boss Personalizado não-regional, fará aparecer o reforço exatamente 10 blocos acima do boss, independentemente de onde ele esteja.
Para um Boss Personalizado regional, fará aparecer o reforço exatamente 10 blocos acima do ponto de spawn do boss regional, independentemente de onde o boss esteja.
Nota importante: Este é um campo obrigatório especificamente para summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL!
lightningRod
É uma definição especial útil apenas para summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Dá aos end crystals a capacidade de fulminar o chão à sua volta com um atraso. O crystal é marcado como um 'elite crystal' e herdará o alvo de combate atual do boss. O próprio crystal não é persistente e será removido se o boss morrer ou sair de combate.
Não pode ser usada com os outros Reforços Personalizados, pois esses devem depender de powers para este tipo de habilidades.
| Key | Values | Default |
|---|---|---|
lightningRod | Boolean | false |
Exemplo
lightningRod: false
inheritAggro
É um campo de configuração opcional que faz os Reforços Personalizados herdarem os níveis de ameaça do boss.
Isto é especialmente útil quando queres que os reforços que aparecem ataquem a pessoa que está a causar a maior quantidade de dano.
| Key | Values | Default |
|---|---|---|
inheritAggro | Boolean | false |
Exemplo
inheritAggro: false
amount
É um campo de configuração opcional que define a quantidade de Reforços que aparecem.
| Key | Values | Default |
|---|---|---|
amount | Integer | 1 |
Exemplo
amount: 1
spawnNearby
É um campo de configuração opcional que define se o Reforço Personalizado deve aparecer nas proximidades em vez de em cima do boss ou numa localização relativa específica.
Aparece dentro de uma área de 30x30 blocos (±15 blocos nos eixos X e Z a partir do boss). O sistema tenta até 30 vezes encontrar uma localização de spawn válida ao nível do solo, tendo em conta a variação do terreno. Se nenhuma localização válida for encontrada após 30 tentativas, o reforço aparece na localização exata do boss.
| Key | Values | Default |
|---|---|---|
spawnNearby | Boolean | false |
Exemplo
spawnNearby: false
inheritLevel
É um campo de configuração opcional que define se o Reforço Personalizado deve herdar o nível do Boss Personalizado que está a reforçar.
| Key | Values | Default |
|---|---|---|
inheritLevel | Boolean | false |
Exemplo
inheritLevel: false
customSpawn
É um campo de configuração que só é usado para reforços globais. Usa as definições de spawn personalizado para definir onde os reforços poderão aparecer.
Isto pode ser usado para fazer com que os reforços possam aparecer à superfície, em locais com luz, em biomas específicos e por aí adiante. Consulta a página da wiki sobre Spawns Personalizados para mais detalhes
| Key | Values | Default |
|---|---|---|
customSpawn | Filename | nenhum |
Exemplo
customSpawn: normal_surface_spawn.yml
Montar um grande reforço
Vamos criar um reforço de exemplo usando a maioria dos campos anteriores:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
spawnNearby: true
inheritAggro: true
inheritLevel: true
Isto faz o seguinte:
- Cria um Reforço Personalizado
- O Reforço Personalizado aparecerá quando o Boss Personalizado entrar em combate (
summonType: ON_COMBAT_ENTER) - O Reforço Personalizado invocado será o de
test_boss.yml(filename: test_boss.yml) - O Reforço Personalizado aparecerá num raio de 30 blocos da localização atual do Boss Personalizado (
spawnNearby: true) - O Reforço Personalizado herdará o aggro do Boss Personalizado que está a reforçar, ou seja, atacará o jogador que causou mais dano (
inheritAggro: true) - Independentemente da definição em
test_boss.yml, o Reforço Personalizado terá o mesmo nível do Boss Personalizado que está a reforçar (inheritLevel: true)
- summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL
location: -80,10,0
lightningRod: true
Isto faz o seguinte:
- Cria um Reforço Personalizado
- O Reforço Personalizado será um End Crystal que é colocado quando o combate começa (
summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL) - O End Crystal fulminará o chão à volta com um atraso (
lightningRod: true)
# Exemplo: Boss que faz aparecer servos de vingança ao morrer
- summonType: ON_DEATH
filename: revenge_minion.yml
amount: 3
spawnNearby: true
Isto faz o seguinte:
- Cria um Reforço Personalizado
- O Reforço Personalizado aparecerá quando o boss morrer (
summonType: ON_DEATH) - O Reforço Personalizado invocado será o de
revenge_minion.yml(filename: revenge_minion.yml) - Aparecerão três reforços (
amount: 3) - Os reforços aparecerão num raio de 30 blocos de onde o boss morreu (
spawnNearby: true)
Agora, para aplicar isto ao Boss Personalizado:
isEnabled: true
entityType: ENDER_DRAGON
name: $eventBossLevel &eBinder of Worlds
level: 200
powers:
- ender_dragon_arrow_bombardment.yml
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
spawnNearby: true
inheritAggro: true
inheritLevel: true
- summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL
location: -80,10,0
lightningRod: true
E está feito! Eis mais algumas dicas:
- Os campos podem ser definidos em qualquer ordem, embora seja recomendado ter sempre o
summonTypeprimeiro! - Esta é uma grande melhoria em relação ao antigo sistema de reforços, que já não é listado. Não é recomendado depender dele neste momento, pois pode deixar de funcionar no futuro.