Pular para o conteúdo principal

Zonas do Elite Script

Zonas são locais definidos por uma forma que podem ser usados como alvos por criadores de scripts para executar qualquer tipo de ação.

Apenas uma zona pode ser definida por script.

Para visar zonas, pode usar-se o tipo de alvo ZONE_FULL ou ZONE_BORDER.

As próprias zonas também usam Alvos de Script para definir onde a zona vai aparecer.

shape

Define a forma da zona. Formas válidas:

Tipo de formaDetalhesAnimávelBorda
CYLINDERForma cilíndrica
SPHEREForma esférica
DOMEForma de cúpula (meia esfera)
CUBOIDForma de cuboide
STATIC_RAYUma linha fixa entre dois pontos
ROTATING_RAYUma linha giratória entre dois pontos
TRANSLATING_RAYUma linha que se move entre dois pontos iniciais e dois pontos finais
CONEForma de cone

Animável

Zonas com animações iniciam a animação da zona quando o script é chamado pela primeira vez.

Isto significa que, se uma ação tiver um tempo de espera, quando a ação começar a zona já se andou a mover enquanto a ação estava à espera.

As zonas são sempre animadas a cada tick. Isto significa que, se usar a ação SPAWN_PARTICLES, pode definir que ela corra a cada tick, já que a zona estará a mover-se a cada tick. Se a executar a cada segundo, verá as partículas a saltar de um lado para o outro, pois a zona continuou a mover-se mesmo nos ticks em que não foram geradas partículas.

Se quiser criar uma ação de zona rotativa mas quiser esperar um determinado número de ticks antes de iniciar a ação, faça disso um script diferente e chame esse script através do RUN_SCRIPT. Certifique-se de que o RUN_SCRIPT tem o tempo de espera que deseja.

As zonas permanecerão no local final após o término da animação.

Todas as zonas animáveis estão definidas para não acompanhar (track) os alvos do script, já que o movimento extra tornaria as coisas demasiado difíceis de entender para criadores de scripts e jogadores. Isto significa que estas zonas não seguirão bosses nem jogadores e mover-se-ão sempre relativamente aos seus pontos de spawn iniciais.


Borda

Certas zonas podem ter bordas. Ter borda significa que ZONE_BORDER pode ser usado como alvo da zona. As bordas são definidas criando uma segunda forma, mais pequena, dentro da primeira forma, maior. A área entre a zona mais pequena e a zona maior é a borda.

Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

elitescript_zones_border.jpg

Este script cria partículas de fumo que aparecem apenas na borda da zona durante 5 segundos (repeat de 5 x 20 = 100 ticks).

Se não tivesse usado a opção ZONE_BORDER mas sim a opção ZONE_FULL, então a zona inteira ficaria coberta de partículas de fumo, assim:

elitescript_zones_borderfull.jpg


SPHERE

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser SPHERE
targetDefine a localização do centro da esfera
filterDefine que tipos de entidades são visados
radiusRaio da esfera
borderRadiusRaio da esfera interior
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_sphere.jpg

Este script demonstra a forma de uma esfera usando partículas de nuvem.


DOME

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser DOME
targetDefine a localização do centro da cúpula
filterDefine que tipos de entidades são visados
radiusRaio da cúpula
borderRadiusRaio da cúpula interior
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_dome.jpg

Este script demonstra a forma de uma cúpula usando partículas de nuvem.


CONE

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser CONE
targetDefine a localização do ápice (ponta) do cone
target2Define a localização do centro da base do cone
filterDefine que tipos de entidades são visados
radiusRaio da base do cone
borderRadiusRaio do cone interior
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20

Este script demonstra a forma de um cone usando partículas de nuvem. Tenha em mente que esta zona tem a forma CONE, ou seja, é um volume 3D — importante ter em conta se pretende criar efeitos de varrimento.


CYLINDER

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser CYLINDER
targetDefine a localização do centro do cilindro
filterDefine que tipos de entidades são visados
radiusRaio do cilindro
borderRadiusRaio do cilindro interior
heightAltura do cilindro
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cylinder.jpg

Este script demonstra a forma de um cilindro usando partículas de nuvem.


CUBOID

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser CUBOID
targetDefine a localização do centro do cuboide
filterDefine que tipos de entidades são visados
xDefine o comprimento do cuboide
yDefine a altura do cuboide
zDefine a largura do cuboide; por predefinição, igual a x
xBorderDefine o comprimento do cuboide interior
yBorderDefine a altura do cuboide interior
zBorderDefine a largura do cuboide interior; por predefinição, igual a x
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cuboid.jpg

Este script demonstra a forma de um cuboide usando partículas de nuvem.


STATIC_RAY

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser STATIC_RAY
targetDefine a localização do primeiro ponto da linha
target2Define a localização do último ponto da linha
filterDefine que tipos de entidades são visados
ignoresSolidBlocksDefine se o raio atravessa blocos sólidos. Predefinição: true
pointRadiusDefine a espessura do raio. A predefinição é 0,5 blocos.
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_staticray.jpg

Este script demonstra a forma de um raio estático usando partículas de nuvem.

We have adjusted the height of the zone by using the offset option on both ends of the zone to make the ray appear from the middle of the player and the boss, otherwise the ray would appear at their feet.


ROTATING_RAY

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser ROTATING_RAY
filterDefine que tipos de entidades são visados
targetDefine a localização do primeiro ponto da linha
target2Define a localização do último ponto da linha
animationDurationDefine, em ticks, a duração da rotação
pitchPreRotationAplica uma rotação inicial ao pitch antes da animação
yawPreRotationAplica uma rotação inicial ao yaw antes da animação
pitchRotationDefine a rotação de pitch da animação
yawRotationDefine a rotação de yaw da animação
ignoresSolidBlocksDefine se o raio atravessa blocos sólidos. Predefinição: true
pointRadiusDefine a espessura do raio. A predefinição é 0,5 blocos.
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_rotatingray.gif

Este script mostra como um raio giratório se parece usando partículas de nuvem.

Primeiro, cria um raio do boss até ao jogador que o feriu, usando partículas de nuvem. Depois, ajusta as posições ligeiramente para cima, um bloco, usando o offset.

Em seguida, faz o raio girar num círculo completo em torno do jogador visado. Esta rotação leva 5 segundos (100 ticks) a completar-se, tendo o jogador visado como centro.


TRANSLATING_RAY

ChaveDetalhesObrigatório
shapeDefine a forma da zona. Deve ser TRANSLATING_RAY
filterDefine que tipos de entidades são visados
animationDurationDefine, em ticks, a duração da translação
targetDefine a localização do primeiro ponto da linha
finalTargetDefine a localização de destino do primeiro ponto da linha
target2Define a localização do segundo ponto da linha
finalTarget2Define a localização de destino do segundo ponto da linha
ignoresSolidBlocksDefine se o raio atravessa blocos sólidos. Predefinição: true
pointRadiusDefine a espessura do raio. A predefinição é 0,5 blocos.
Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_translatingray.gif

Este script mostra como um raio em movimento se parece usando partículas de nuvem.

Primeiro, cria um raio do boss até ao jogador que o feriu, usando partículas de nuvem.

Depois, anima o raio para subir 10 blocos a partir de ambos os alvos, usando o offset no FinalTarget1 e no FinalTarget2.

A animação leva 5 segundos (100 ticks) a completar-se.

Podemos facilmente fazer o raio mover-se de lado ajustando o offset do Z para algo como offset: 0,0,10:

elitescript_zones_translatingray2.gif

Este comportamento pode mudar dependendo da direção para onde estiver virado no jogo.
Se modificarmos o offset do X no script mostrado na imagem GIF, o raio pareceria afastar-se de nós numa linha reta, do nosso ponto de vista.


filter

A propriedade filter pode ser usada para visar apenas entidades específicas dentro da zona. Estas entidades podem ser:

ValorDetalhes
PLAYERApenas mira em jogadores na zona (padrão)
ELITEApenas mira em elites na zona
LIVINGMira em todas as entidades vivas na zona
Exemplo
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false

Este script de exemplo mostra como usar o filter para fazer com que a zona vise apenas elites.