Pular para o conteúdo principal

Tempos de Recarga de Elite Script

Os tempos de recarga (cooldowns) definem a quantidade de tempo que deve passar antes de o boss poder voltar a usar tanto o mesmo script como qualquer outro poder*.

  • nota: alguns poderes não são, de momento, afetados pelos tempos de recarga.

Localização da configuração

Os tempos de recarga são configurados na secção Cooldowns de um elite script:

eliteScript:
ScriptName:
Events:
- [event configuration]
Actions:
- [action configuration]
Cooldowns:
local: [value or range]
global: [value or range]

Nota: As chaves de configuração não diferenciam maiúsculas de minúsculas (local, Local, LOCAL funcionam todas).

Nota sobre as unidades: Todos os valores de tempo de recarga são especificados em ticks. No Minecraft, existem 20 ticks por segundo, portanto:

  • 20 ticks = 1 segundo
  • 60 ticks = 3 segundos
  • 100 ticks = 5 segundos
  • 99999 ticks ≈ 83 minutos

Valores predefinidos

Se a secção Cooldowns for omitida, tanto local como global assumem o valor predefinido de 0, o que significa que o script ignora totalmente o sistema de tempos de recarga.

Ignorar o tempo de recarga

Scripts sem uma secção Cooldowns, ou com local e global ambos definidos como 0, ignorarão completamente o sistema de tempos de recarga. Isto permite comportamentos acionados por eventos que devem ser sempre executados, independentemente do estado de recarga do boss.

Exemplo:

eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# No Cooldowns section - script always executes when event fires

Os tempos de recarga têm dois valores:

local

local define o tempo, em ticks, antes de o mesmo script poder voltar a acontecer. Exemplo:

Exemplo

local: 60

Define que o poder pode voltar a ser executado ao fim de 3 segundos.

global

global define o tempo, em ticks, antes de qualquer outro script ou poder poder voltar a acontecer[1]. Exemplo:

Exemplo

global: 20

Define que todos os outros poderes não podem iniciar durante 1 segundo.

[1] Nota: Isto aplica-se a implementações de poderes legadas (não EliteScripts). Todos os poderes baseados em EliteScript suportam corretamente os tempos de recarga globais. Alguns dos poderes mais antigos não são, de momento, afetados por isto; é um trabalho em curso.

Nota: ao tornar o tempo de recarga local mais longo e o tempo de recarga global mais curto, pode garantir que o boss alterna entre os poderes disponíveis! Nunca torne o tempo de recarga global mais longo, e recomendo deixar pelo menos um segundo de tempo de recarga local para dar oportunidade aos outros poderes de serem acionados.

Além disso, se o seu poder tiver uma duração específica durante a qual está ativo, deve usar este sistema para impedir que outros poderes sejam executados em simultâneo e potencialmente estraguem o seu poder.

Aleatorização

Tanto os tempos de recarga local como global suportam aleatorização usando a sintaxe de intervalo. Isto permite que as durações dos tempos de recarga variem, adicionando imprevisibilidade ao comportamento do boss.

Exemplo:

Cooldowns:
local: 40~80
global: 10~30

Define o tempo de recarga local para ser aleatoriamente entre 40 e 80 ticks (2-4 segundos) e o tempo de recarga global para ser aleatoriamente entre 10 e 30 ticks (0,5-1,5 segundos).

Nota: Os valores são selecionados aleatoriamente cada vez que o tempo de recarga é aplicado.

Executar scripts apenas uma vez com tempos de recarga

Para garantir que os scripts são acionados apenas uma vez, mesmo usando um Evento que pode ocorrer várias vezes durante um combate, defina o tempo de recarga local para um número elevado, como 99999. Este exemplo demonstra o conceito:

Exemplo
eliteScript:
SetMeOnFireOnlyOnce:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 60
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 99999
# global: 20 # Optional: Prevent other powers for 1 second

Neste cenário, o EliteMobDamagedByPlayerEvent aciona a ação SET_ON_FIRE. Sem tempos de recarga, a ação seria ativada sempre que o jogador atingisse o mob.

No entanto, com um tempo de recarga local definido como 99999, a ação só será acionada uma vez a cada 99999 ticks (83 minutos). Uma vez que o combate raramente dura tanto tempo, isto faz com que, na prática, o script seja executado apenas uma vez por encontro de combate.

O tempo de recarga global é opcional neste caso - se for omitido ou definido como 0, não impedirá a execução de outros poderes.

Resolução de problemas

Chaves de tempo de recarga inválidas

Se usar uma chave não reconhecida na secção Cooldowns, aparecerá um aviso nos registos do servidor:

Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]

As chaves válidas são: local, global (não diferenciam maiúsculas de minúsculas)