Aller au contenu principal

Temps de recharge Elite Script

Les temps de recharge définissent le temps qui doit s'écouler avant que le boss soit éligible pour exécuter à la fois le même script ou tout autre pouvoir*.

  • note : 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:
- [configuration de l'événement]
Actions:
- [configuration de l'action]
Cooldowns:
local: [valeur ou plage]
global: [valeur ou plage]

Note : Les clés de configuration sont insensibles à 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 définis sur 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 définis sur 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 indépendamment de 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 reproduire. Exemple :

Exemple

local: 60

Configure le pouvoir pour pouvoir s'exécuter à nouveau après 3 secondes.

global

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

Exemple

global: 20

Configure tous les autres pouvoirs pour ne pas pouvoir démarrer pendant 1 seconde.

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

Note : en rendant le temps de recharge local plus long et le temps de recharge 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 potentiellement ruiner votre pouvoir.

Randomisation

Les temps de recharge local et global prennent en charge la randomisation en utilisant une 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 pour être aléatoirement entre 40 et 80 ticks (2-4 secondes) et le temps de recharge global pour être aléatoirement entre 10 et 30 ticks (0,5-1,5 secondes).

Note : Les valeurs sont sélectionnées aléatoirement chaque fois que le temps de recharge est appliqué.

Exécuter les scripts une seule fois avec les temps de recharge

Pour garantir que les scripts se déclenchent une seule fois tout en utilisant un Event qui peut se produire plusieurs fois pendant un combat, définissez le temps de recharge local sur un nombre élevé, tel que 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, le 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 défini sur 99999, l'action ne se déclenchera qu'une fois tous les 99999 ticks (83 minutes). Puisque le combat dure rarement aussi longtemps, cela fait effectivement que le script ne s'exécute qu'une fois par rencontre de combat.

Le temps de recharge global est optionnel dans ce cas - s'il est omis ou défini sur 0, il n'empêchera pas d'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 journaux du serveur :

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

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