Configuration Résolu \ Skript / - Comment mettre un laps de temps avant de refaire la commande.

Statut
N'est pas ouverte pour d'autres réponses.

Oriax

Deadpool's Skills
22 Janvier 2018
144
3
6
125
21
Alsace, France
discord.gg
Bonjour, j'aimerais réussir a trouver comment pouvoir mettre un certain nombre de temps avant que le joueur puisse refaire ici chez moi la commande /dailybox.
Avant de poster ce poste j'ai bien sure regarder sur d'autre forum tel que ici :

https://skript-mc.fr/forum/threads/encore-moi-2-skripts.2509/

ET ici :

https://skript-mc.fr/forum/threads/délai-de-réutilisation-dune-commande.2759/

Mais je n'y arrive toujours pas.
Le give de la clé et le message que la console send au joueur marche parfaitement, c'est seulement le délai de combien de seconde doit se passer avant de pouvoir refaire la commande. Voila ma config skript :

command /dailybox:
trigger:
make console execute command "/crate key %player% &eDailyBox"
send "&7[&6&lXORUSE&7] &6Tu a bien reçu ta &eDailyBox &6!" to player
set {_cooldown} to <number>
loop {_cooldown} times:
send "&6Un peux de patience petit coquin &d;)" to player
wait 84600 second

C'est cette partie la qui ne marche pas chez moi :

set {_cooldown} to <number>
loop {_cooldown} times:
send "&6Un peux de patience petit coquin &d;)" to player
wait 84600 second
 

Oriax

Deadpool's Skills
22 Janvier 2018
144
3
6
125
21
Alsace, France
discord.gg
Bonsoir !

Essaies avec des ticks et non des secondes ;)

AlexFatta

Je vient de changer les 'second' par ticks' mais cela ne marche pas...
Quand je reload le skript une erreur apparaît :

Empty configuration section! You might want o indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. (utile.sk, line 60: if {cooldown.%player%} is less than 86400 ticks:')
indentation error: expected 8 spaces, but found 2 tabs (utile.sk, line 62: wait 86400 ticks')

Voila c'est tout ce que j'ai comme erreur qui pourrait nous aider a trouver la solution ainsi que le problème, merci pour votre réponse.
 

Krown0s

Développeur débutant :3
29 Mai 2016
84
20
56
Il te dit clairement qu'il faut que tu indentes certaines lignes. De plus, utilise la fonction "code" :
mcfr.png


Ce qui va permettre de voir ton code bien comme il le faut.
 

Gaïa MMORPG

Bucheron
15 Avril 2016
18
2
14
34
www.gaia-craft.fr
Bonsoir,

Il est normal que ton skript ne fonctionne pas comme tu l'entends, tu ne dis à aucun moment donné que "la commande ne peut être exécutée si elle a déjà été exécutée il y a X temps"...

Voici comment je lis la partie de ton code qui ne fonctionne pas :
Code:
set {_cooldown} to <number>
Définit une variable locale *à cette commande* (si le joueur exécute la commande à nouveau, cette variable sera recréée, en parallèle et ainsi de suite). D'ailleurs, la syntaxe <number> est curieuse à cet endroit ; elle existe dans skript, mais ne peut pas être utilisé comme ça ! Il faut mettre un nombre fixe ou une variable ici.

Code:
loop {_cooldown} times:
send "&6Un peux de patience petit coquin &d;)" to player
wait 84600 second
Cette partie va envoyer {_cooldown} fois le message spécifié au joueur ayant exécuté la commande, puis attendre 84600 secondes, {_cooldown} fois...
Ça ne correspond pas à ce que tu recherches.

Je te conseillerais plutôt de définir une variable (NON locale, donc sans mettre le "_" devant); par exemple {cooldown.%player's uuid%} et de la supprimer à la fin de ton temps d'attente prédéfini.
Ensuite, tu vérifies au tout début de ta commande "if {cooldown.%player's uuid%} is set:" auquel cas tu annonces ton "send "&6Un peux de patience petit coquin &d;)" to player".

J'espère que j'ai été clair.
Bonne continuation !
 

Oriax

Deadpool's Skills
22 Janvier 2018
144
3
6
125
21
Alsace, France
discord.gg
Bonsoir,

Il est normal que ton skript ne fonctionne pas comme tu l'entends, tu ne dis à aucun moment donné que "la commande ne peut être exécutée si elle a déjà été exécutée il y a X temps"...

Voici comment je lis la partie de ton code qui ne fonctionne pas :
Code:
set {_cooldown} to <number>
Définit une variable locale *à cette commande* (si le joueur exécute la commande à nouveau, cette variable sera recréée, en parallèle et ainsi de suite). D'ailleurs, la syntaxe <number> est curieuse à cet endroit ; elle existe dans skript, mais ne peut pas être utilisé comme ça ! Il faut mettre un nombre fixe ou une variable ici.

Code:
loop {_cooldown} times:
send "&6Un peux de patience petit coquin &d;)" to player
wait 84600 second
Cette partie va envoyer {_cooldown} fois le message spécifié au joueur ayant exécuté la commande, puis attendre 84600 secondes, {_cooldown} fois...
Ça ne correspond pas à ce que tu recherches.

Je te conseillerais plutôt de définir une variable (NON locale, donc sans mettre le "_" devant); par exemple {cooldown.%player's uuid%} et de la supprimer à la fin de ton temps d'attente prédéfini.
Ensuite, tu vérifies au tout début de ta commande "if {cooldown.%player's uuid%} is set:" auquel cas tu annonces ton "send "&6Un peux de patience petit coquin &d;)" to player".

J'espère que j'ai été clair.
Bonne continuation !

Merci pour ton aide je vait tester ca.
 

Alex Fatta

Commandant de la Flotte et de la Horde
13 Août 2014
1 391
1
191
187
Bonjour !

Ce topic date de 2018.... Il a sûrement trouvé la solution... Je signal à un modérateur qui viendra lock ce topic.

AlexFatta
 
Statut
N'est pas ouverte pour d'autres réponses.