Aller au contenu
  • 0

ScoreBoard: "Fin dans" et "Minuteur"


Question

Posté(e)

Bonjour,

Je vais pour la première fois demander de l'aide ici, donc je ne sais pas trop comment ça se passe, veuillez m'en excuser d'avance !

 

Donc, venons en au fait !

 

J'ai créé un scoreboard qui affiche un Minuteur (donc qui rajoute 1 seconde toutes les secondes et qui affiche les secondes passées dans un scoreboard) et également un "Fin dans" lié aux jours (Je fais un Skript pour un Fallen Kingdom)

 

Tout est bon, tout marche, SAUF que pour utiliser ce fameux scoreboard, hé bien il faut le rendre dynamique toutes les secondes...

Donc j'ai chercher plusieurs choses pour faire fonctionner, certaines marchaient mais au moment ou il y avait plusieurs joueurs ça affichait "1 seconde" pour le Joueur1 "2 secondes" pour le Joueur2 "3secondes" pour le Joueur1, etc...

 

Donc j'ai fais un système de commande "make all players execute command "/board""

Là, tout marche, SAUF QUE hé bien ça spam la console, et ça me plait pas tellement cette technique

Donc j'aimerais savoir s'il y a d'autres solutions ^^

 

Merci d'avoir lu et en espérant être aidé au plus vite !

9 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Si tu envoie la commande depuis la console et que tu modifie la commande pour qu'elle fasse un "loop all players" et que les actions soit utilisées avec "loop-player" au lieu de "player" ça marche. J'avais fait un jeu, je faisais comme ça, et aucun spam dans la console (vu que la commande ne renvoie aucun texte)

 

Edit: Voilà le bout de code (j’exécutais cette commande toutes les secondes)

command /scspawn:
   trigger:
       command sender is console
       set {_enjeu} to 0
       set {_spec} to 0
       set {_other} to 0
       loop all players:
           if {player.game.%uuid of loop-player%} is set:
               add 1 to {_enjeu}
           else if {speca.%loop-player%} is set:
               add 1 to {_spec}
           else:
               add 1 to {_other}
       loop all players:
           {player.game.%uuid of loop-player%} is not set
           if {speca.%loop-player%} is not set:
               wipe loop-player's sidebar
               set name of sidebar of loop-player to "&a&l&nSpawn"
               set score "&6Joueurs" in sidebar of loop-player to number of all players
               set score "&6En jeu" in sidebar of loop-player to {_enjeu}
               set score "&6Spectateurs" in sidebar of loop-player to {_spec}
               set score "&6Au spawn" in sidebar of loop-player to {_other}

  • 0
Posté(e)

Malheureusement j'utilisais justement l'évènement loop all players, voici comment je m'y prenais (PS: c'est le bug du Joueur1 qui reçoit une partie des secondes et du Joueur2 qui reçoit l'autre partie)

 

every 1 second:
   if {rk.game} is "Start":
       loop all players:
           delete score "&eMinuteur : &6%{rkc.h.f}%:%{rkc.m.f}%:%{rkc.s.f}%" in sidebar of loop-player
           add 1 to {rkc.s}
           if {rkc.s} is 61:
               add 1 to {rkc.m}
               set {rkc.s} to 0
               if {rkc.m} is 61:
                   add 1 to {rkc.h}
                   set {rkc.m} to 0
           if {rkc.s} is less than 10:
               set {rkc.s.f} to "0%{rkc.s}%"
           else:
               set {rkc.s.f} to {rkc.s}
           if {rkc.m} is less than 10:
               set {rkc.m.f} to "0%{rkc.m}%"
           else:
               set {rkc.m.f} to {rkc.m}
           if {rkc.h} is less than 10:
               set {rkc.h.f} to "0%{rkc.h}%"
           else:
               set {rkc.h.f} to {rkc.h}
           set score "&eMinuteur : &6%{rkc.h.f}%:%{rkc.m.f}%:%{rkc.s.f}%" in sidebar of player to 1

 

Voilà donc pourquoi j'ai utilisé le système de commande :/

  • 0
Posté(e)

Non testé:

every 1 second:
   if {rk.game} is "Start":
       set {_rkc.h.f} to {rkc.h.f}
       set {_rkc.m.f} to {rkc.m.f}
       set {_rkc.s.f} to {rkc.s.f}
       add 1 to {rkc.s}
       if {rkc.s} is 61:
           add 1 to {rkc.m}
           set {rkc.s} to 0
           if {rkc.m} is 61:
               add 1 to {rkc.h}
               set {rkc.m} to 0
       if {rkc.s} is less than 10:
           set {rkc.s.f} to "0%{rkc.s}%"
       else:
           set {rkc.s.f} to {rkc.s}
       if {rkc.m} is less than 10:
           set {rkc.m.f} to "0%{rkc.m}%"
       else:
           set {rkc.m.f} to {rkc.m}
       if {rkc.h} is less than 10:
           set {rkc.h.f} to "0%{rkc.h}%"
       else:
           set {rkc.h.f} to {rkc.h}
       loop all players:
           delete score "&eMinuteur : &6%{_rkc.h.f}%:%{_rkc.m.f}%:%{_rkc.s.f}%" in sidebar of loop-player
           set score "&eMinuteur : &6%{rkc.h.f}%:%{rkc.m.f}%:%{rkc.s.f}%" in sidebar of player to 1

  • J'aime 2
×
×
  • 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.