Pular para o conteúdo principal

Eventos de Elite Script

Os EliteScripts são baseados em eventos. Isso significa que são acionados quando um evento específico ocorre. Os seguintes são os eventos atualmente válidos:

EventoDetalhesAlvo Direto [?]
EliteMobDamagedByEliteMobEventElite danificada por outra elite
EliteMobDamagedByPlayerEventElite danificada por um jogadorJogador atacante
EliteMobDamagedEventElite danificada por qualquer coisa
EliteMobDeathEventMorte da elite
EliteMobEnterCombatEventElite entra em combate com jogadorJogador em combate
EliteMobExitCombatEventElite sai do combate
EliteMobHealEventCura da elite (incluindo cura completa)
EliteMobSpawnEventSurgimento da elite
EliteMobTargetPlayerEventElite mira em um jogadorJogador mirado
PlayerDamagedByEliteMobEventElite causa dano a um jogadorJogador danificado
ElitePhaseSwitchEventBoss surge por troca de fase
ZoneEnterEvent (ScriptZoneEnterEvent)Entidade entra na zona. Requer que uma zona seja definida!Entidade que entrou na zona
ZoneLeaveEvent (ScriptZoneLeaveEvent)Entidade sai da zona. Requer que uma zona seja definida!Entidade que saiu da zona

Nota: "Elite" refere-se a qualquer entidade agressiva gerada pelo plugin, independentemente de ser um reforço, um chefe ou qualquer outra coisa. Nota: ZoneEnterEvent e ZoneLeaveEvent são computacionalmente custosos, por favor use-os com moderação!

Direct Target é usado pelos Alvos de Script, mais informações aqui.

Nota: EliteMobDamagedEvent é acionado quando uma elite recebe dano de QUALQUER fonte, enquanto EliteMobDamagedByPlayerEvent e EliteMobDamagedByEliteMobEvent são versões mais específicas que são acionadas apenas por dano de jogador ou mob elite, respectivamente.

Nota: os nomes dos eventos são comparados exatamente, caractere por caractere. elitemobdeathevent ou ELITEMOBDEATHEVENT são rejeitados com um aviso no console; apenas EliteMobDeathEvent funciona. Os próprios nomes das seções também diferenciam maiúsculas de minúsculas: Events, Actions, Zone, Conditions e Cooldowns têm de ser escritos exatamente assim, e um bloco Conditions: aninhado sob uma ação também tem de ser capitalizado — um conditions: em minúsculas sob uma ação é descartado silenciosamente. Tudo o que está dentro dessas seções (targetType, radius, borderRadius, isAlive, Target, ...) não diferencia maiúsculas de minúsculas, e todo valor de enum é uma constante convencional em UPPER_SNAKE_CASE com a caixa exata.

Estes também acionam os on_zone_enter / on_zone_leave do Lua

Listar ZoneEnterEvent ou ZoneLeaveEvent aqui é o que inicia o listener de zona por tick no chefe. Esse listener é a única coisa que dispara os hooks de nível superior on_zone_enter / on_zone_leave em um poder Lua no mesmo chefe. O próprio context.zones:watch_zone(...) de um poder Lua não os dispara.

ZoneEnterEvent e ZoneLeaveEvent são eventos especiais que permitem aos criadores de scripts acionar ações com base em entidades que entram e saem de zonas definidas nos scripts. O DIRECT_TARGET de ZoneEnterEvent e ZoneLeaveEvent é a entidade que entrou ou saiu (isso significa que você não pode usar o alvo direto como alvo da zona), e devido ao funcionamento da lógica interna, apenas pontos absolutos (coordenadas específicas) e pontos relativos ao chefe podem ser usados para escanear entradas e saídas (zonas que miram em jogadores não podem ser usadas).

Só pode haver uma seção de Evento por script. No entanto, vários eventos podem ser definidos como acionadores para um script:

Exemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
- EliteMobTargetPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,.3,0
Cooldowns:
local: 60
global: 20

Este script faria a elite pular quando atingida por um jogador ou quando mira em um jogador.