Aller au contenu

[COMMANDE HEURE PRECISE]Skript qui execute une commande à une heure réelle


Messages recommandés

Posté(e)

Spigot 1.12.2 / skript derniere version trouvée ici( https://github.com/SkriptLang/Skript/releases ) :

Type du skript : Déclencheur de commande

 

Description du script en détails :

Bonjour,

je suis actuellement à la recherche d'un skript qui me permettrait, à une heure précise (minuit et midi IRL)

d'éxécuter une commande précise, a savoir la commande /stop (j'ai un script externe qui redémarrera le serveur) et de prévenir les joueurs par message. Par exemple, si a 12:00h il y a 6 joueurs, je veux qu'ils reçoivent chacun un message du type: Attention le serveur redémarre dans 30 sec puis que le serveur s’arrête.

Merci d'avance pour votre aide

 

Commandes éventuelles avec les permissions :

Pas besoin de permissions spéciales

 

Autres précisions (bout de skript déjà fait, systèmes actuellement utilisés, etc) :

j'ai tenté:

if %now% = *12:00: #j'ai mis * car %now% donne aussi la date

send " Attention %player% le serverur redémarre!"

 

mais j'imagine bien qu'on ne peut pas comparer une variable de cette façon...

Posté(e) (modifié)

Étant donné que tu reboot ton serveur est à minuit et à midi (donc toutes les 12 heures), je pense que ceci pourrait te convenir :

on server start:
   wait 12 hours
   broadcast "Arrêt du serveur ! Redémarrage dans quelques instants !"
   wait 3 seconds
   execute console command "stop"

Modifié par WeBer_Le_Pecheur
Posté(e)

Alors petit problème a ton skript, si le serveur se fait redémarrer manuellement, par exemple a 16h. Alors ton skript va faire que le serveur va ce redémarrer 12heures après ducoup a 4h et pas a minuit ^^

Posté(e) (modifié)
Je suis sur que tu va réussir ! Aller aller!

Impossible xD, il me sort des valeurs totalement inexplicable. Regarde ce qu'il m'affiche le code donné sur skUnity : Le Mardi 29 Juillet 2008 et plus bas la bonne date mais pas la bonne heure xD

 

[ATTACH=full]8418[/ATTACH]

Modifié par Invité
Posté(e) (modifié)
Il sors pas des valeurs illogique, mais des valeurs que tu ne comprend pas ! xD je te conseille d'utiliser %now%

J'ai essayer les deux :p et le %now% me sort quelque de totalement différent aussi. Qu'on est en décembre 2018 est qu'il est 1h du mat xD

M'enfin je suis passé à autre chose, testé et fonctionnel sur Skript 2.2dev36 et spigot 1.12.2

 

every 5 minutes:
   set {_date} to "%now%"
   set {_split::*} to {_date} split at " "
   set {_hour::*} to {_split::2} split at ":"
   set {_hour} to {_hour::1} parsed as number
   set {_minute} to {_hour::2} parsed as number
   {_hour} is 00 or 12
   {_minute} is between 00 and 10
   broadcast "Arrêt du serveur ! Redémarrage dans quelques instants !"
   wait 3 seconds
   execute console command "stop"

Modifié par Invité
Posté(e) (modifié)

Bonjour,

 

merci beaucoup pour vos réponses, j'ai testé le 1er skript, il fonctionne très bien, mais il m'oblige a démarrer le serveur a minuit...

Je teste le 2ème et je vous dis si il marche sur mon serveur. Encore merci!

 

EDIT:

j'ai testé le 2ème, il marche et je peux lancer le serveur quand je veux (donc super!!!)

MAIS malheuresement à cause du:

{_minute} is between 00 and 10

quand le serveur redémarre, il attend 5 minutes conformément au code, puis il se rend compte

qu'on est encore entre 00:00 et 00:10 du coup il redémarre une 2ème fois... :(

je peux tester d’accélérer la vitesse de rafraichissement et de baisse le

is between 00 and 10

mais j'ai peur que ça fasse des lags...( même si en ce moment il n'y a pas plus de 5 joueurs en même temps)

mis à part ça %now% marche très bien chez moi je mettrai à jour l'heure de mon VPS.

Modifié par Baldurg
Posté(e) (modifié)
quand le serveur redémarre, il attend 5 minutes conformément au code, puis il se rend compte

qu'on est encore entre 00:00 et 00:10 du coup il redémarre une 2ème fois... :(

C'est un détails ça :p

 

Il suffit d'ajouter une variable avant le reboot et de regarder la différence de temps entre celle-ci et le moment ou il exécute le every, ce qui donne :

 

every 5 minutes:
   set {_date} to "%now%"
   set {_split::*} to {_date} split at " "
   set {_hour::*} to {_split::2} split at ":"
   set {_hour} to {_hour::1} parsed as number
   set {_minute} to {_hour::2} parsed as number
   {_hour} is 00 or 12
   {_minute} is between 00 and 10
   difference between {reboot} and now is greater than 10 minutes
   broadcast "Arrêt du serveur ! Redémarrage dans quelques instants !"
   set {reboot} to now
   wait 3 seconds
   execute console command "stop"

Modifié par Invité
Posté(e)

Merci pour cette modification, mais le

difference between {reboot} and now is greater than 10 minutes

pose problème car la première fois la variable reboot n'est pas définie... et je ne peux pas mettre

set {reboot} to now

au début sinon la valeur sera toujours sous 10 minutes et il ne redémarrera jamis...

 

merci de ton aide!

Posté(e) (modifié)

Suffit de contourner ça :p

 

every 5 minutes:
   set {_date} to "%now%"
   set {_split::*} to {_date} split at " "
   set {_hour::*} to {_split::2} split at ":"
   set {_hour} to {_hour::1} parsed as number
   set {_minute} to {_hour::2} parsed as number
   {_hour} is 00 or 12
   {_minute} is between 00 and 10
   {reboot} is set:
       difference between {reboot} and now is smaller than 10 minutes
       stop
   broadcast "Arrêt du serveur ! Redémarrage dans quelques instants !"
   set {reboot} to now
   wait 3 seconds
   execute console command "stop"

Modifié par Invité
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.