Déjà, tu pourrais utiliser une boucle au lieu de répéter le même code 10 fois.
Et pour ton affaire, tu peux pas empêcher un bloc de s'exécuter une fois qu'il est lancé. Tu dois donc inclure dans ce code un moyen de l'arrêter par l'extérieur. Tu peux créer une variable booléenne (true/false) avec ses propriétés :
- elle se met sur false au démarrage (donc aussi au reload),
- elle se met sur true quand tu confirmes le reload,
- à la fin de ton bloc, tu testes si elle vaut toujours true, et sinon, le code s'arrête avec un message "Reload annulé".
options:
P: &9ReloadAssist &7»&a
E: &cErreur de frappe, réessayer !.
command /reload [<text>]:
permission : assist.reload
trigger:
if arg 1 is not set:
message "&2[&a&lRELOAD&2] &8Veuillez confirmer pour reload : &9/reload confirm"
if arg 1 is "confirm":
set {Reload.EnCours} to true
send player title "&c&lReload" with subtitle "&c&o&llancé par %player%" for 15 seconds
wait 1 seconds
send player title "&c&lReload" with subtitle "&c&o&len cours" for 20 seconds
wait 5 seconds
broadcast "&2[&a&lRELOAD&2] &f&lReload dans &7&l15 &f&lsecondes !"
wait 5 seconds
#La boucle promise
set {_Seconde] to 10
while {_Seconde} is more than 1:
broadcast "&2[&a&lRELOAD&2] &f&lReload dans &7&l%{_Seconde}% &f&lsecondes !"
wait 1 seconds
remove 1 from {_Seconde}
broadcast "&2[&a&lRELOAD&2] &f&lReload dans &7&l1 &f&lseconde !"
if {Reload.EnCours} is true:
command "/rl"
else:
broadcast "&2[&a&lRELOAD&2] &f&lFinalement, non, pas de reload."
if arg 1 is "stop":
set {Reload.EnCours} to false
on load:
set {Reload.EnCours} to false
Avec ça, tu peux même ajouter des sécurités pour empêcher une personne de lancer le reload quand il est déjà lancé, ou le lancer sans attendre si on retape la commande. Tu peux aussi empêcher quelqu'un d'annuler le stop si y'a rien à stopper.