Baldurg Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 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...
WeBer_Le_Pecheur Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 (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é le 9 juin 2018 par WeBer_Le_Pecheur
Yghore Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 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 ^^
WeBer_Le_Pecheur Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 Exact, j'avais peut-être trouvé une autre solution, mais je n'ai pas réussi a la faire fonctionner donc je ne l'ai pas proposé : https://docs.skunity.com/syntax/expressions/Date%20Infomation
WeBer_Le_Pecheur Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 (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é le 9 juin 2018 par Invité
Yghore Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 Il sors pas des valeurs illogique, mais des valeurs que tu ne comprend pas ! xD je te conseille d'utiliser %now% 1
WeBer_Le_Pecheur Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 (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é le 9 juin 2018 par Invité
Yghore Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 Ta machine est un vps ou serveur dédiée, car skript reprend la date du serveur si je le souviens bien
WeBer_Le_Pecheur Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 Ta machine est un vps ou serveur dédiée, car skript reprend la date du serveur si je le souviens bien Local sur mon bon vieux pc :p
Yghore Posté(e) le 9 juin 2018 Posté(e) le 9 juin 2018 Bizarre ! Je pense que le code que tu a proposé marche ;)
Baldurg Posté(e) le 10 juin 2018 Auteur Posté(e) le 10 juin 2018 (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é le 10 juin 2018 par Baldurg
WeBer_Le_Pecheur Posté(e) le 11 juin 2018 Posté(e) le 11 juin 2018 (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é le 11 juin 2018 par Invité
Baldurg Posté(e) le 11 juin 2018 Auteur Posté(e) le 11 juin 2018 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!
WeBer_Le_Pecheur Posté(e) le 11 juin 2018 Posté(e) le 11 juin 2018 (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é le 11 juin 2018 par Invité
Baldurg Posté(e) le 15 juin 2018 Auteur Posté(e) le 15 juin 2018 Bonjour, merci beaucoup ce script fonctionne sur mon serveur, j'espère qu'il servira à d'autres personnes! merci encore! 1
Messages recommandés