Aller au contenu
  • 0

Bug scoreboard


Question

Posté(e)

Bonjour, j'ai un bug scoreboard.

J'utilise: Skquery, ExtraSK, Skrayfall, Umbaska et WildSkript

Voici mon bug en question:

1479549501-bug.gif

 

Code:

 

every 1 second:
   make all players execute command "/zcore"

command /zcore:
   trigger:
       display board named "&6 FrinoCraft" to player
       make score "       " in board of player to 0
       make score "&6Informations" in board of player to 1
       make score "       " in board of player to 2
       make score "%number of all players%" in board of player to 3
       make score "&%player%" in board of player to 4
       move display of player to sidebar

13 réponses à cette question

Messages recommandés

  • 0
Posté(e)
every second:
   loop all players:
       wipe loop-player's sidebar
       set name of sidebar of loop-player to "&6FrinoCraft"
       set score "&3" in sidebar of loop-player to 0
       set score "&6Informations" in sidebar of loop-player to 1   
       set score "&2 " in sidebar of loop-player to 2
       set score "&6%number of all players%" in sidebar of loop-player to 3
       set score " " in sidebar of loop-player to 4
       set score "&6%loop-player%" in sidebar of loop-player to 5

  • J'aime 1
  • 0
Posté(e)
Utiliser "while" ? (Avec commande)

Un every X time est plus efficace qu'un while, car un while doit "stocker son intérieur", ce qui fait que :

 

J'ai un while de 5 secondes :

 

on join:
   while player is online:
       broadcast "..."
       wait 5 seconds

 

Le soucis c'est que lorsqu'un joueur va se connecter, et que une seconde plus tard un autre joueur se connecte, les temps seront décalés. S'il y a trop de joueurs dans un serveur, (ex : 75), il y aura beaucoup de décalages et la mémoire Skript sera remplie, par rapport à un every X time, et qui ne prend pratiquement rien en mémoire et n'a pas de décalages.

 

De toute façon cela revenait au même de faire :

 

on join:
   while player is online:
       broadcast "..."
       wait 5 seconds

 

Et...

 

every 5 seconds:
   broadcast "..."

 

Le plus efficace est le every X time dans ces conditions. Le while est plutôt à utiliser en cas d'extrême (on any movement, etc...).

 

Y a moyen d'optimiser encore plus avec un every X time. Je prends le code de @TwerkRekt pour exemple :

 

every second:
   loop all players:
       wipe loop-player's sidebar
       set name of sidebar of loop-player to "&6FrinoCraft"
       set score "&3" in sidebar of loop-player to 0
       set score "&6Informations" in sidebar of loop-player to 1  
       set score "&2 " in sidebar of loop-player to 2
       set score "&6%number of all players%" in sidebar of loop-player to 3
       set score " " in sidebar of loop-player to 4
       set score "&6%loop-player%" in sidebar of loop-player to 5

 

En rajoutant seulement une ligne de code, j'économise un tout petit peu de lags en moins :

 

every second:
   loop all players:
       wipe loop-player's sidebar
       set name of sidebar of loop-player to "&6FrinoCraft"
       set score "&3" in sidebar of loop-player to 0
       set score "&6Informations" in sidebar of loop-player to 1  
       set score "&2 " in sidebar of loop-player to 2
       set score "&6%number of all players%" in sidebar of loop-player to 3
       set score " " in sidebar of loop-player to 4
       set score "&6%loop-player%" in sidebar of loop-player to 5
       wait 2 ticks # <- Et oui coco !

 

Donc un every X time > while^^ !

 

 

 

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