Aller au contenu

Skript /clé avec un delai


Messages recommandés

Posté(e)

Skript : 2.2 (Java 8)

Add-Ons : Umbaska, skQuery, Skript, skRayFall, MundoSk

Serveur : SpigotMC 1.8.8

 

J'aimerais avoir un skript avec une commande /clé et genre tout les 23h il peut refaire la commande

Et le give de l'item je le mettrais moi même.

Posté(e)
Variables:
   {clé.%player%} = false

command clé:
   trigger:
       if {clé.%player%} is false:
           set {clé.%player%} to true
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
           wait 23 hours
           set {clé.%player%} to false
       else:
           send "&cVous ne pouvez pas encore utiliser cette commande." to player

Posté(e)
Variables:
   {clé.%player%} = false

command clé:
   trigger:
       if {clé.%player%} is false:
           set {clé.%player%} to true
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
           wait 23 hours
           set {clé.%player%} to false
       else:
           send "&cVous ne pouvez pas encore utiliser cette commande." to player

 

 

J'y vais franc, tu peut mettre au send "&cVous ne pouvez pas encore utiliser cette commande." to player

Dans la phrase le delai qu'il reste ?

Posté(e)
Variables:
   {clé.%player%} = false

command clé:
   trigger:
       if {clé.%player%} is false:
           set {clé.%player%} to true
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
           wait 23 hours
           set {clé.%player%} to false
       else:
           send "&cVous ne pouvez pas encore utiliser cette commande." to player

 

 

Et

 

command /cle:
   trigger:
       if {cle.recup.%player%} is set:
           send "&cVeuillez patienter %{cle.recup.%player%}% seconde(s) avant de ré-utiliser cette commande."
           stop
       else:
            give stone to player
            send "&aTu as récupéré la clé !"
            set {cle.recup.%player%} to 86400
            loop {cle.recup.%player%} times: #Un jour en seconde
               add -1 to {cle.recup.%player%}
               wait 1 second
            if {cle.recup.%player%} = 0:
                delete {cle.recup.%player%}

 

Vous ne prenez pas en compte le fait que le serveur peut fermer et donc casser le temps d'attente. De plus ça va faire fonctionner le skript chaque seconde pendant 24 heures, le serveur va pas aimer si il y a plusieurs joueurs dans cette situation.

 

Pour ce genre de chose on compare deux dates :

 

command /clé:
   trigger:
       if {clé.%player%} is not set:
           set {clé.%player%} to now
           remove 23 hours from {clé.%player%}
       if difference between {clé.%player%} and now >= 23 hours:
           set {clé.%player%} to now
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
       else:
           set {_now} to "%difference between {clé.%player%} and now%"
           replace all "hours" with "heures" in {_now}
           replace all "hour" with "heure" in {_now}
           replace all "second" with "seconde" in {_now}
           replace all "seconds" with "secondes" in {_now}
           replace all "and" with "et" in {_now}
           send "&7&l[&6&lClé&7&l] &cVous avez déjà reçu votre récompense il y a seulement &e%{_now}%&c. Il faut attendre &e23 heures" to player

Posté(e)
Et

 

 

 

Vous ne prenez pas en compte le fait que le serveur peut fermer et donc casser le temps d'attente. De plus ça va faire fonctionner le skript chaque seconde pendant 24 heures, le serveur va pas aimer si il y a plusieurs joueurs dans cette situation.

 

Pour ce genre de chose on compare deux dates :

 

command /clé:
   trigger:
       if {clé.%player%} is not set:
           set {clé.%player%} to now
           remove 23 hours from {clé.%player%}
       if difference between {clé.%player%} and now >= 23 hours:
           set {clé.%player%} to now
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
       else:
           set {_now} to "%difference between {clé.%player%} and now%"
           replace all "hours" with "heures" in {_now}
           replace all "hour" with "heure" in {_now}
           replace all "second" with "seconde" in {_now}
           replace all "seconds" with "secondes" in {_now}
           replace all "and" with "et" in {_now}
           send "&7&l[&6&lClé&7&l] &cVous avez déjà reçu votre récompense il y a seulement &e%{_now}%&c. Il faut attendre &e23 heures" to player

J'allais le dire xD

Et aussi, un /reload ou un reload de ton script peut casser le délai

Posté(e)
Et

 

 

 

Vous ne prenez pas en compte le fait que le serveur peut fermer et donc casser le temps d'attente. De plus ça va faire fonctionner le skript chaque seconde pendant 24 heures, le serveur va pas aimer si il y a plusieurs joueurs dans cette situation.

 

Pour ce genre de chose on compare deux dates :

 

command /clé:
   trigger:
       if {clé.%player%} is not set:
           set {clé.%player%} to now
           remove 23 hours from {clé.%player%}
       if difference between {clé.%player%} and now >= 23 hours:
           set {clé.%player%} to now
           send "&aVous recevez 1 diamant !" to player
           give 1 diamond to player
       else:
           set {_now} to "%difference between {clé.%player%} and now%"
           replace all "hours" with "heures" in {_now}
           replace all "hour" with "heure" in {_now}
           replace all "second" with "seconde" in {_now}
           replace all "seconds" with "secondes" in {_now}
           replace all "and" with "et" in {_now}
           send "&7&l[&6&lClé&7&l] &cVous avez déjà reçu votre récompense il y a seulement &e%{_now}%&c. Il faut attendre &e23 heures" to player

 

 

Franchement merci !

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.