Pular para o conteúdo principal

Introdução

Nesta página vais encontrar vários exemplos de poderes de custom boss criados com EliteScript e com a WebApp. Estes exemplos simples mostram como usar várias ações e outras funcionalidades para criar poderes de boss únicos.

Além disso, cada exemplo é acompanhado por uma demonstração visual, para ser mais fácil perceber como o script funciona dentro do jogo.

Sente-te à vontade para copiar qualquer um dos exemplos e usá-lo nas tuas próprias masmorras ou mundos.

Estes são exemplos de EliteScript

O EliteScript (.yml) continua a ser totalmente suportado e é o que todos os exemplos desta página usam. Já não é a única opção: os poderes também podem ser escritos em Lua, que é o que quase todos os poderes incluídos no EliteMobs usam agora. Consulta Criar Poderes para veres como os dois formatos se comparam.

Os valores de potionEffectType usam os nomes modernos com namespace do Minecraft — SLOWNESS, INSTANT_HEALTH, NAUSEA — e não as grafias antigas do Bukkit (SLOW, HEAL, CONFUSION). Os nomes antigos continuam a ser resolvidos através de um mecanismo de compatibilidade descontinuado, mas é o nome moderno que os poderes incluídos usam e é esse que tem garantia de continuar a funcionar.

Exemplos de poderes

Slam Down

Este script faz o boss teletransportar-se 8 blocos acima do jogador que lhe causou dano e depois embater no chão. A seguir, aplica o efeito de poção de lentidão a todos os jogadores num raio de 3 blocos do boss e mostra a mensagem "Stunned" no ecrã durante 3 segundos.

Expandir exemplo
eliteScript:
SlamDown:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TELEPORT
FinalTarget:
targetType: DIRECT_TARGET
offset: 0,8,0
Target:
targetType: SELF
- action: PUSH
vValue: 0,-5,0
Target:
targetType: SELF
wait: 15
- action: POTION_EFFECT
potionEffectType: SLOWNESS
amplifier: 3
duration: 60
Target:
targetType: NEARBY_PLAYERS
range: 3
wait: 20
- action: TITLE_MESSAGE
subtitle: "Stunned!"
duration: 40
fadeIn: 10
fadeOut: 10
Target:
targetType: NEARBY_PLAYERS
range: 3
wait: 20
Cooldowns:
local: 180
global: 80

Push Away

Este script gera uma cúpula de 4 blocos à volta do boss. A seguir, inicia um efeito de partículas na fronteira da zona, com a duração de um segundo, e depois outra ação empurra para longe todos os jogadores que estiverem dentro da zona. Devido à definição de offset do empurrão, os jogadores são ligeiramente projetados para cima. Por fim, o script envia uma mensagem a todos os jogadores dentro da zona.

Expandir exemplo
eliteScript:
PushAway:
Events:
- EliteMobDamagedEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
track: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_BORDER
track: true
repeatEvery: 5
times: 4
- action: PUSH
Target:
targetType: ZONE_FULL
track: true
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: ACTION_TARGET
normalize: true
multiplier: 1.0
offset: 0,0.2,0
repeatEvery: 1
times: 20
- action: MESSAGE
sValue: "&cCool boss!: &fBE GONE!"
Target:
targetType: ZONE_FULL
repeatEvery: 10
times: 2
Cooldowns:
local: 140
global: 80

Arrow Rain

Cria um script que desenha um círculo no chão à volta do jogador que causou dano ao mob e mostra também uma mensagem no ecrã a dizer ao jogador para sair do círculo. Depois, 2 segundos mais tarde, dispara flechas para baixo nesse mesmo local, a partir de 10 blocos de altura.

Expandir exemplo
eliteScript:
MakeCircle:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 5
borderRadius: 4
height: 1
Target:
targetType: DIRECT_TARGET
track: false
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
track: false
coverage: 1.0
repeatEvery: 5
times: 8
particles:
- particle: FLAME
- action: TITLE_MESSAGE
Target:
targetType: DIRECT_TARGET
fadeOut: 10
duration: 20
fadeIn: 10
subtitle: Move out of the zone!
- action: RUN_SCRIPT
scripts:
- "ArrowRain"
Cooldowns:
local: 160
global: 80
ArrowRain:
Zone:
shape: CYLINDER
radius: 5
borderRadius: 4
height: 1
Target:
targetType: DIRECT_TARGET
track: false
offset: 0,10,0
Actions:
- action: SUMMON_ENTITY
wait: 40
sValue: ARROW
Target:
targetType: ZONE_FULL
track: false
vValue: 0,-1,0
repeatEvery: 10
times: 4

Fire Aura

Isto cria um script que spawna partículas à volta do boss usando a zona cilíndrica, com a duração de 6 segundos. O boss também recebe a tag FireOn durante 6 segundos.

Se os jogadores atacarem o boss enquanto a tag estiver ativa, ficam a arder durante 1 segundo. Isto é feito com condições: o script SetOnFire só consegue executar se o boss tiver a tag correspondente FireOn.

Expandir exemplo
eliteScript:
Visual:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: CYLINDER
radius: 2
height: 3
Target:
targetType: SELF
track: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: FLAME
Target:
targetType: ZONE_FULL
track: true
coverage: 1.0
repeatEvery: 5
times: 24
- action: TAG
tags:
- "FireOn"
duration: 120
Target:
targetType: SELF
Cooldowns:
local: 180
global: 80
SetOnFire:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 20
Target:
targetType: DIRECT_TARGET
Conditions:
Target:
targetType: SELF
conditionType: BLOCKING
hasTags:
- "FireOn"

Poison Lines

Este script cria duas zonas cuboides centradas no boss. A IA do boss é desligada durante 2 segundos. As zonas cuboides estão configuradas de forma a formarem um sinal de mais no chão.

O script cria depois partículas de nuvem durante 2 segundos nas zonas e, a seguir, cria partículas de fumo e aplica o efeito de poção de veneno às zonas durante 3 segundos.

Expandir exemplo
eliteScript:
PoisonLine1:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 20
y: 1
z: 2
Target:
targetType: SELF
track: false
Actions:
- action: SET_MOB_AI
bValue: false
duration: 40
Target:
targetType: SELF
scripts:
- "PoisonLine2"
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 1
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
coverage: 1
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
wait: 40
repeatEvery: 5
times: 12
Cooldowns:
local: 200
global: 80
PoisonLine2:
Zone:
shape: CUBOID
x: 2
y: 1
z: 20
Target:
targetType: SELF
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 1
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
coverage: 1
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
wait: 40
repeatEvery: 5
times: 12

Bounce

Este script cria uma zona cilíndrica de 10 blocos centrada no boss e depois aplica efeitos de partículas e empurrões à zona durante 10 segundos.

A ação de empurrar projeta os jogadores ligeiramente para cima em cada tick, criando a ilusão de que estão aos saltos enquanto se encontram dentro da zona.

Expandir exemplo
eliteScript:
Bounce:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 10
height: 2
Target:
targetType: SELF
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: EXPLOSION_NORMAL
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 0.2
- action: PUSH
vValue: 0,0.4,0
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 200
Cooldowns:
local: 220
global: 80

Summon

Este script cria uma zona cilíndrica (posicionada 6 blocos acima do jogador devido ao offset aplicado) centrada no jogador que causou dano ao boss. Além disso, mostra uma mensagem no ecrã a esse jogador.

Após um atraso de 2 segundos, os reforços spawnam na zona designada. No entanto, só uma parte da zona é ocupada por reforços, porque usámos o coverage. Se o jogador não conseguir eliminar todos os reforços, estes desaparecem automaticamente ao fim de 20 segundos (400 ticks).

Expandir exemplo
eliteScript:
Summon:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 3
height: 1
Target:
targetType: DIRECT_TARGET
offset: 0,6,0
Actions:
- action: SUMMON_REINFORCEMENT
sValue: "fc_boss.yml"
duration: 400
Target:
targetType: ZONE_FULL
coverage: 0.2
wait: 40
- action: TITLE_MESSAGE
subtitle: "Friends! Help!!!"
duration: 30
fadeIn: 10
fadeOut: 10
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 333
global: 80

Potion Zones

Este script é ativado quando um jogador causa dano ao boss. Executa depois o script PotionZoneBad ou o PotionZoneGood.

No script PotionZoneBad, é gerada uma zona cilíndrica à volta dos jogadores próximos que estejam a menos de 20 blocos do boss. Produz efeitos de partículas de nuvem e de fumo grande com uma cobertura definida, inflige o efeito de poção de wither e envia uma mensagem aos jogadores próximos.

No script PotionZoneGood, é gerada uma zona cilíndrica à volta dos jogadores que estejam a menos de 20 blocos do boss. Os efeitos de partículas deste script estão invertidos. Este script aplica um efeito de poção de cura em vez de wither e envia uma mensagem aos jogadores próximos.

Expandir exemplo
eliteScript:
Trigger:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
scripts:
- "PotionZoneBad"
- "PotionZoneGood"
onlyRunOneScript: true
Cooldowns:
local: 110
global: 80
PotionZoneBad:
Zone:
shape: CYLINDER
height: 2
radius: 5
Target:
targetType: NEARBY_PLAYERS
range: 20
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
repeatEvery: 10
times: 4
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
wait: 40
repeatEvery: 10
times: 6
- action: POTION_EFFECT
potionEffectType: WITHER
amplifier: 3
duration: 80
Target:
targetType: ZONE_FULL
track: false
wait: 40
repeatEvery: 10
times: 6
- action: MESSAGE
sValue: "&cCool boss!: &fFeel the burn!"
Target:
targetType: NEARBY_PLAYERS
range: 20
PotionZoneGood:
Zone:
shape: CYLINDER
height: 2
radius: 5
Target:
targetType: NEARBY_PLAYERS
range: 20
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
repeatEvery: 10
times: 4
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
wait: 40
repeatEvery: 10
times: 6
- action: POTION_EFFECT
potionEffectType: INSTANT_HEALTH
amplifier: 1
duration: 80
Target:
targetType: ZONE_FULL
track: false
wait: 40
repeatEvery: 10
times: 6
- action: MESSAGE
sValue: "&cCool boss!: &fFeel the... Wait, this is the wrong one."
Target:
targetType: NEARBY_PLAYERS
range: 20

Blind Waves

Este script lança duas ondas de raio rasteiras projetadas nas direções positiva e negativa de X, com origem no boss.

Usamos o parâmetro offset para determinar o comprimento e o tamanho dos raios, concretamente ao definir o valor de Z. Além disso, indicamos a direção de propagação das ondas ao definir os valores de X. (Isto é apenas uma explicação de como este script em concreto usa estes valores; não tens de fazer o teu exatamente assim.)

Embora fosse possível ajustar os valores de Y para aumentar a altura das ondas de raio, deixamo-los a 0 para dar aos jogadores a opção de saltarem por cima dos raios.

O parâmetro animationDuration determina o tempo que as ondas de raio demoram a viajar dos alvos até aos alvos finais. Reduzir este valor torna os raios mais rápidos e mais difíceis de evitar.

A seguir, são aplicados efeitos de partículas e de poção. Os jogadores que não conseguirem desviar-se nem saltar por cima das ondas de raio ficam cegos durante 5 segundos (100 ticks).

Expandir exemplo
eliteScript:
Blind:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
offset: 0,0,5
track: false
FinalTarget:
targetType: SELF
offset: 10,0,5
track: false
Target2:
targetType: SELF
offset: 0,0,-5
track: false
FinalTarget2:
targetType: SELF
offset: 10,0,-5
track: false
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
repeatEvery: 5
times: 20
- action: POTION_EFFECT
potionEffectType: BLINDNESS
amplifier: 5
duration: 100
Target:
targetType: ZONE_FULL
track: true
repeatEvery: 1
times: 100
scripts: "Blind2"
Cooldowns:
local: 200
global: 80
Blind2:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
offset: 0,0,5
track: false
FinalTarget:
targetType: SELF
offset: -10,0,5
track: false
Target2:
targetType: SELF
offset: 0,0,-5
track: false
FinalTarget2:
targetType: SELF
offset: -10,0,-5
track: false
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
repeatEvery: 5
times: 20
- action: POTION_EFFECT
potionEffectType: BLINDNESS
amplifier: 5
duration: 100
Target:
targetType: ZONE_FULL
track: true
repeatEvery: 1
times: 100

Freeze Wall

Este script cria 3 raios rotativos centrados no boss. Precisamos de 3 raios rotativos diferentes porque não é possível definir a altura do raio, por isso usamos vários scripts e o offset para empilhar os raios em altura, de modo a parecerem uma única parede rotativa.

Os 3 scripts têm zonas idênticas, exceto no offset, que é diferente. Estão definidos com 6 blocos de comprimento a partir do boss e configurados para fazer uma rotação de yaw de 360 graus em 10 segundos (200 ticks).

Todos os scripts têm efeitos de partículas definidos e aplicam a ação VISUAL_FREEZE durante 5 segundos (100 ticks) a qualquer jogador que seja atingido pelas paredes de raio.

Expandir exemplo
eliteScript:
Trigger:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
scripts:
- "FreezeWall"
- "FreezeWall2"
- "FreezeWall3"
Cooldowns:
local: 300
global: 80
FreezeWall:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
Target2:
targetType: SELF
offset: 6,0,0
track: false
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200
FreezeWall2:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
offset: 0,1,0
Target2:
targetType: SELF
track: false
offset: 6,1,0
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200
FreezeWall3:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
offset: 0,2,0
Target2:
targetType: SELF
track: false
offset: 6,2,0
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200