Aller au contenu principal

Temps de Recharge des Elite Scripts

Les temps de recharge définissent le délai qui doit s'écouler avant que le boss puisse exécuter à nouveau le même script ou tout autre pouvoir*.

  • Remarque : certains pouvoirs ne sont actuellement pas affectés par les temps de recharge.

Emplacement de Configuration

Les temps de recharge sont configurés dans la section Cooldowns d'un elite script :

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

Remarque : Les clés de configuration ne sont pas sensibles à la casse (local, Local, LOCAL fonctionnent tous).

Note sur les Unités : Toutes les valeurs de temps de recharge sont spécifiées en ticks. Dans Minecraft, il y a 20 ticks par seconde, donc :

  • 20 ticks = 1 seconde
  • 60 ticks = 3 secondes
  • 100 ticks = 5 secondes
  • 99999 ticks ≈ 83 minutes

Valeurs par Défaut

Si la section Cooldowns est omise, local et global sont tous deux à 0 par défaut, ce qui signifie que le script contourne entièrement le système de temps de recharge.

Contournement du Temps de Recharge

Les scripts sans section Cooldowns, ou avec local et global tous deux à 0, contourneront complètement le système de temps de recharge. Cela permet des comportements déclenchés par événement qui doivent toujours s'exécuter quel que soit l'état de temps de recharge du boss.

Exemple :

eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# Pas de section Cooldowns - le script s'exécute toujours quand l'événement se déclenche

Les temps de recharge ont deux valeurs :

local

local définit le temps, en ticks, avant que le même script puisse se relancer. Exemple :

Exemple

local: 60

Permet au pouvoir de se relancer après 3 secondes.

global

global définit le temps, en ticks, avant que tout autre script ou pouvoir puisse se relancer[1]. Exemple :

Exemple

global: 20

Empêche tous les autres pouvoirs de démarrer pendant 1 seconde.

[1] Remarque : Ceci s'applique aux implémentations de pouvoirs hérités (pas les EliteScripts). Tous les pouvoirs basés sur EliteScript supportent correctement les temps de recharge globaux. Certains des anciens pouvoirs ne sont actuellement pas affectés, c'est un travail en cours.

Remarque : en rendant le temps de recharge local plus long et le global plus court, vous pouvez garantir que le boss alternera entre ses pouvoirs disponibles ! Ne rendez jamais le temps de recharge global plus long, et je recommande de laisser au moins une seconde de temps de recharge local pour donner aux autres pouvoirs une chance de se déclencher.

De plus, si votre pouvoir a une durée spécifique pendant laquelle il est actif, vous devriez utiliser ce système pour empêcher d'autres pouvoirs de s'exécuter simultanément et de potentiellement ruiner votre pouvoir.

Aléatoire

Les temps de recharge local et global supportent tous deux l'aléatoire en utilisant la syntaxe de plage. Cela permet aux durées de temps de recharge de varier, ajoutant de l'imprévisibilité au comportement du boss.

Exemple :

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

Définit le temps de recharge local aléatoirement entre 40 et 80 ticks (2-4 secondes) et le global aléatoirement entre 10 et 30 ticks (0,5-1,5 secondes).

Remarque : Les valeurs sont sélectionnées aléatoirement à chaque application du temps de recharge.

Exécuter des Scripts une Seule Fois avec les Temps de Recharge

Pour s'assurer que les scripts ne se déclenchent qu'une seule fois tout en utilisant un Événement qui peut se produire plusieurs fois pendant un combat, définissez le temps de recharge local à un nombre élevé, comme 99999. Cet exemple illustre le concept :

Exemple
eliteScript:
SetMeOnFireOnlyOnce:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 60
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 99999
# global: 20 # Optionnel : Empêcher d'autres pouvoirs pendant 1 seconde

Dans ce scénario, l'EliteMobDamagedByPlayerEvent déclenche l'action SET_ON_FIRE. Sans temps de recharge, l'action s'activerait à chaque fois que le joueur frappe le mob.

Cependant, avec un temps de recharge local réglé à 99999, l'action ne se déclenchera qu'une fois toutes les 99999 ticks (83 minutes). Comme le combat dure rarement aussi longtemps, cela fait effectivement que le script ne s'exécute qu'une seule fois par rencontre de combat.

Le temps de recharge global est optionnel dans ce cas - s'il est omis ou réglé à 0, il n'empêchera pas les autres pouvoirs de s'exécuter.

Dépannage

Clés de Temps de Recharge Invalides

Si vous utilisez une clé non reconnue dans la section Cooldowns, un avertissement apparaîtra dans les logs du serveur :

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

Les clés valides sont : local, global (insensible à la casse)