Aller au contenu

Messages recommandés

Posté(e) (modifié)

Salut !

Comme promis, nous voici pour un tutoriel sur Skore. C'est un addon développé par LimeGlass (encore) et qui permet de faire des scoreboards. Bref commençons.

I/ Informations
II/ Syntaxes
III/ Scoreboards statiques
IV/ Scoreboards dynamiques
V/ Exemples
VI/ Fin

 

I/ Informations

Skore est un addon qui a presque 1 an tout pile. Il est en version 1.0.0. Vous pouvez le télécharger ici, et télécharger sa dépendance ici. Car oui, Skore a besoin d'une dépendance. C'est TitleManager. Quand vous avez installer ces deux plugins, redémarrez le serveur (pas de reload). Vous pouvez ensuite aller dans la config de Title manager pour désactiver ce dont on ne veux pas, en l'occurence, les scoreboards. Vous allez donc passez enabled a false. (vers la ligne 190).

scoreboard:

  # Toggles this feature
  enabled: false

Si vous voulez vous pouvez aussi désactiver d'autres fonctionnalités, mais ca c'est a vous de voir car elles ne changeront pas notre code.

Enfin : pourquoi utiliser Skore et pas d'autres addon.

Déjà, il faut savoir que skore ne fonctionne que en 1.12, et n'est plus MàJ par son auteur, qui a même supprimé le repo GitHub du projet.

Skore utilise les packets, il ne passe pas par les scoreboards spigot, comme SkRayFall et Skellett le font, ce qui rend les skoreboards plus performants. Ensuite, skore est un addon très simple a utiliser, alors pourquoi ne pas le prendre ? C'est optimisé, performant, simple d'utilisation... Exemple : 

Voici un exemple de skoreboard (=scoreboard fais avec skore). Mes TPS ne sont pas descendus en dessous de 19.5/19.6. Plutôt cool non ? surtout que jamais vous n'utiliserais ce genre de scoreboard x

 

II/ Syntaxes

Voici toutes les syntaxes disponible (elles se trouvent dans plugins/Skore/syntaxes.yml) :

(1¦(create|set[up])|2¦(remove|reset|delete)) [a] [([skore] sc|sk)oreboard] (for|to|of) %players%

[Skore] [(all [[of] the]|the)] (slot|value|line)[s] %numbers% (of|from|in) skoreboard[s] %players%
[Skore] %players%'[s] skoreboard[s] (slot|value|line)[s] %numbers%

[Skore] [(all [[of] the]|the)] title[s] (of|from|in) skoreboard[s] %players%
[Skore] %players%'[s] skoreboard[s] title[s]

%player% (1¦has|2¦does not have) [a] skoreboard

La première va permettre de soit créer un scoreboard au joueur, soit en supprimer 1.

Les 2 suivantes vont permettre de définir des lignes au scoreboard.

La 2 d'après vont définir des titres au scoreboard.

La dernière est une condition pour vérifier si le joueur a un scoreboard.

 

III/ Scoreboards statiques

Alors, commençons a créer un skoreboard.

Déjà, il va falloir créer le skoreboard quand le joueurs rejoint le serveur. On va donc faire

on join:
	setup a skoreboard for player

Setup a skoreboard for player est équivalent au "wipe player's sidebar" de SkRayFall. Il permet de créer un scoreboard au joueur.

Ensuite on va vérifier si le joueur a un scoreboard de créé. Oui ca peut paraitre bête car on l'a créé une ligne au dessus, mais comme ca si jamais il y a un problème et qu'il ne se créé pas, le serveur ne crashera pas. Donc on rajoute :

on join:
	setup a skoreboard for player
	if player has a skoreboard:

Jusque la très simple. On créé un skoreboard quand le joueur arrive, et si il a réussit a se créer, on fait la suite. Mais on mets quoi dans la suite 🤔

 

On va commencer par définir un titre au skoreboard. Il peut faire 32 charactères de long maximum, en comptant les codes couleurs. C'est une limite de Minecraft, pas de skore, donc on ne peux rien y faire 🤷‍♂️

Bref voici la syntaxe :

set title of skoreboard player to "&aVoici un titre ! &eIl est long" #32 chars max

Et voilà ! On peut ensuite ajouter des lignes, qui suivront ce modèle, et qui feront maximum 40 caractère (limite de Minecraft encore une fois... pas de skore) 

set slot 1 of skoreboard player to "&aVoici une ligne ! &eElle est longue..." #40 chars max

 

Voici le skoreboard que j'ai donc créé

on join:
	setup a skoreboard for player
	if player has a skoreboard:
		set title of skoreboard player to "&aVoici un titre ! &eIl est long" #32 chars max
		set slot 1 of skoreboard player to "&aVoici une ligne ! &eElle est longue..." #40 chars max
		set slot 2 of skoreboard player to "&r"
		set slot 3 of skoreboard player to "&9&l&nPseudo :"
		set slot 4 of skoreboard player to "    &b%player%"
		set slot 5 of skoreboard player to "&r "
		set slot 6 of skoreboard player to "&9&l&nArgent :"
		set slot 7 of skoreboard player to "    &b%player's balance%"
		set slot 8 of skoreboard player to "&r8  "
		set slot 9 of skoreboard player to "&r9   "
		set slot 10 of skoreboard player to "&r10    "
		set slot 11 of skoreboard player to "&r11     "
		set slot 12 of skoreboard player to "&r12      "
		set slot 13 of skoreboard player to "&r13       "
		set slot 14 of skoreboard player to "&r14        "
		set slot 15 of skoreboard player to "&r15         "

Bon il est moche, jugez pas, mais au moins il fonctionne 😛 . A noter on peut mettre maximum 15 lignes.

Bref il y a un problème avec ce skoreboard, c'est qu'il ne se rafraîchit jamais. c'est a dire que la, si le joueur gagne de l'argent, ma ligne 7 ne va pas bouger... Pour remédier a ca, je vais vous montrer comment rendre le scoreboard dynamique.

 

III/ Dynamique

On commence pareil :

on join:
	setup a skoreboard for player

Mais après on va modifier un peu. Déjà, voyons avec 1 page (je vous montrerai comment faire plusieurs pages après).

Déjà, pour l'actualiser, je vais utiliser un while, car il nous faut bien une boucle qui va refresh le scoreboard. Et ensuite je vais mettre mes lignes habituelles :


on join:
	setup a skoreboard for player
	while player is online:
		if player has a skoreboard:
			set title of skoreboard player to "&aVoici un titre ! &eIl est long" #32 chars max
			set slot 1 of skoreboard player to "&aVoici une ligne ! &eElle est longue..." #40 chars max
			set slot 2 of skoreboard player to "&r"
			set slot 3 of skoreboard player to "&9&l&nPseudo :"
			set slot 4 of skoreboard player to "    &b%player%"
			set slot 5 of skoreboard player to "&r "
			set slot 6 of skoreboard player to "&9&l&nArgent :"
			set slot 7 of skoreboard player to "    &b%player's balance%"
			set slot 8 of skoreboard player to "&r  "
			set slot 9 of skoreboard player to "&9&l&nDate :"
			set slot 10 of skoreboard player to "    &b%now%"
			wait 10 ticks

Et voilà !

Comme vous pouvez le voir, j'ai mis que le skoreboard se rafraîchit tous les 10 ticks (= 2 fois par seconde)

Vous pouvez mettre moins mais je n'y vois pas de raison de le faire, surtout que ca réduira légèrement vos performances.

A savoir : pour la vidéo au dessus, j'avais mis le scoreboard dans un every tick: loop all players: (avec 1 joueur) et mes TPS n'allaient pas en dessous de 19.5 / 19.6. Donc vous pouvez mettre wait 1 tick, mais ca ne servira a rien ^^ car on est pas a 1/20ème de seconde près.

Important : il est cependant OBLIGATOIRE d'avoir un wait a la fin du while (la ou je l'ai mis). Sinon votre serveur va crash instantanément.

 

IV/ Exemples

Voici un exemple de skoreboard avec plusieurs pages, et 5 secondes d'attentes entre chaque page 

on join:
	setup a skoreboard for player
	while player is online:
		if player has a skoreboard:
			set title of skoreboard player to "Mon serveur !" #----- Premier Skoreboard
			set slot 1 of skoreboard player to "&r"
			set slot 2 of skoreboard player to "&9&l&nPseudo :"
			set slot 3 of skoreboard player to "    &b%player%"
			set slot 4 of skoreboard player to "&r "
			set slot 5 of skoreboard player to "&9&l&nArgent :"
			set slot 6 of skoreboard player to "    &b%player's balance%"
			set slot 7 of skoreboard player to "&r  "
			set slot 8 of skoreboard player to "&9&l&nDate :"
			set slot 9 of skoreboard player to "    &b%now%"
			set slot 10 of skoreboard player to "&r   "
			set slot 11 of skoreboard player to "Page 1/2"
			wait 5 seconds # ----- On attend 5 secondes
			set title of skoreboard player to "Mon serveur !" #------ 2ème skoreboard
			set slot 1 of skoreboard player to "&r"
			set slot 2 of skoreboard player to "Tes Kills :"
			set slot 3 of skoreboard player to "&r "
			set slot 4 of skoreboard player to "Tes morts"
			set slot 5 of skoreboard player to "&r  "
			set slot 6 of skoreboard player to "Ton meilleur KillStreak"
			set slot 7 of skoreboard player to "&r   "
			set slot 8 of skoreboard player to "Tes pâtes préférées"
			set slot 9 of skoreboard player to "&r    "
			set slot 10 of skoreboard player to "&r    "
			set slot 11 of skoreboard player to "Page 2/2"
		wait 5 seconds # ------- On attend 5 secondes

 

V/ Fin

Voilà pour ce tutoriel que j'avais fait il y a déjà 1 an ! J'attendais seulement que l'auteur corrige quelquebugs, mais il ne l'a jamais fait.... Voici donc le seul bug que j'ai pu trouvé a l'heure actuelle :

Quand on a un skoreboard avec un certains nombre de lignes, puis qu'on affiche un 2ème skoreboard avec moins de ligne, les dernières lignes du 1er vont être affichées dans le 2ème.
Exemple :

Si vous avez un skoreboard avec marqué
1: "Ligne 1"
2: "Ligne 2"
3: "Ligne 3"
4: "Page 1"

puis un 2ème avec 

1: "Ligne 1"
2: "Ligne 2"
3: "Page 2"

Alors vous verrez sur la première page "Ligne 1, Ligne 2, Ligne 3, Page 1" et sur la deuxième page : "Ligne 1, Ligne 2, Page 2, Page 1"

 

Pensez à allez voir aussi le tuto de @Salwyn sur skore ! Il l'avait sortit juste avant moi 😉 : https://skript-mc.fr/forum/topic/16526-skript-scoreboard/

 

 

Bref, sur ce : bonne vacances 

Modifié par noftaly
  • J'aime 3
Posté(e)

Bonjour !

Tu viens de m'apprendre quelque chose. Je n'étais pas au courant qu'il était possible d'animé le scoreboard. Sinon super tutoriel ! ( Tu l'as posté quelques minutes après que j'aie posté la v2 du mien encore en attente d'approbation mais ne t'en fais pas, je ne piquerais rien de ce qui est mit dans le tien ^^ )

Bonne journée !

  • Merci 1
Posté(e)
à l’instant, Salwyn a dit :

Bonjour !

Tu viens de m'apprendre quelque chose. Je n'étais pas au courant qu'il était possible d'animé le scoreboard. Sinon super tutoriel ! ( Tu l'as posté quelques minutes après que j'aie posté la v2 du mien encore en attente d'approbation mais ne t'en fais pas, je ne piquerais rien de ce qui est mit dans le tien ^^ )

Bonne journée !

Pas de problème ! Et l'animation c'est tout bête, c'est juste une loop qui change le scoreboard a chaque fois 😄

Posté(e)
il y a 1 minute, noftaly a dit :

Pas de problème ! Et l'animation c'est tout bête, c'est juste une loop qui change le scoreboard a chaque fois 😄

J'ai vu, je pense que je vais animé celui de mon serveur ^^

( Je t'ai donné 40 crédits pour ton super tutoriel ( J'en aurais bien donné plus mais j'en avais que 180 :x ) )

  • Merci 1
Posté(e)
Citation

Je t'ai donné 40 crédits pour ton super tutoriel ( J'en aurais bien donné plus mais j'en avais que 180 :x )

Merci beaucoup ! ❤️ et t'inquiète c'est pas un problème 😉 

Posté(e)

Merci pour ce tutoriel !
On en a maintenant 2, et on a 2 façons différentes d'expliquer cet addon. ^^
Je me demandais s'il était possible de cacher les scores (à droite) en Skript ?
Je sais qu'en Java c'est possible mais je ne sais pas en Skript 🙂

Posté(e)
à l’instant, Romitou a dit :

Merci pour ce tutoriel !
On en a maintenant 2, et on a 2 façons différentes d'expliquer cet addon. ^^
 Je me demandais s'il était possible de cacher les scores (à droite) en Skript ?
 Je sais qu'en Java c'est possible mais je ne sais pas en Skript 🙂

En Java c'est possible, mais pas avec un plugin il me semble... J'ai seulement vu des mods/clients faire ca 🤔 après peut être que je me trompe 😅

Mais en tout cas c'est sur : pour le moment en skript ce n'est pas possible

  • J'aime 1

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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.