Et salut tout le monde !
Aujourd'hui je continue dans ma lancée ! Après mon précédent tutoriel que je vous incite à aller regarder, en voici un autre.
Peu importe, on est ici pour parler de lampadaires. Ah non c'est le /stats.
Les néophytes ou les débutants se posent l'éternelle question :
Donc, au lieu de demander à quoi ça sert, demandez "qu'est-ce qu'on peut faire avec ?".
Après cette introduction 10 fois trop longue, le sommaire
Revenons à nos moutons cubiques.
Le /stats vas permettre de stocker des statistiques (merci captain obvious) à propos d'entités ou de blocks dans un scoreboard. Je donne une définition large, floue et obscure car il est quasi-impossible de résumer une commande en une seule phrase. Certains me diront :
On aborde tout de suite un example où le /stats nous est utile.
On veut compter les joueurs présents : c'est devenu très "simple" avec l'arrivée du /stats (1.8) !
Maintenant, passons à la partie qui fâche...
Petit code utilisé dans les commandes :
entre accolades {} signifie "obligatoire"
entre crochets [] signifie "facultatif"
ce symbole ( | ) signifie "ou"
Avec block, on stockera les stats d'un block (sans blague) capable d'exécuter des commandes (donc un command block).
Avec entity, on stockera les stats d'une entité exécutant des commandes (soit si c'est un joueur, soit via le /execute)
Nous allons commencer avec entity. Comme entité de test, nous allons utiliser un armorstand nommé "AS" que nous allons invoquer grâce à cette commande :
Après entity, nous devons mettre un sélecteur
Sur AS, nous pouvons :
Après set, il faut spécifier un mode. Modes que je vais lister :
Après le mode, vous avez encore 2 arguments :
Donc, voici notre commande finale :
Je résume en 1 phrase cette commande.
"On stocke le nombre d'entités affectées par AS dans le faux joueur "Joueurs" de l'objectif jeu."
Concrètement, si on fait cette commande :
et qu'il y a 5 joueurs, alors le /stats va faire en sorte que le nombre de joueurs soit stocké dans "Joueurs" lui-même dans "jeu".
Et voilà, nous avons fait un compteur de joueurs fonctionnel ! Plus qu'à le mettre dans un command block "repeat" !
La commande suivante sert à l'afficher :
Et voilà !
Exemples :
N'hésitez pas à apprécier ce post et à me rapporter une quelconque erreur !
J'espère vous avoir aidé !
Aujourd'hui je continue dans ma lancée ! Après mon précédent tutoriel que je vous incite à aller regarder, en voici un autre.
"Mec, t'as une vie ?"
*s'éclaircit la gorge*
Peu importe, on est ici pour parler de lampadaires. Ah non c'est le /stats.
Les néophytes ou les débutants se posent l'éternelle question :
"Mais à quoi ça sert ?"
C'est pourquoi je vais vous apprendre une chose : chaque commande a une utilité que vous ne soupçonnez pas.
Donc, au lieu de demander à quoi ça sert, demandez "qu'est-ce qu'on peut faire avec ?".
Après cette introduction 10 fois trop longue, le sommaire
Partie I : Présentation
Partie II : Syntaxe
Partie III : Applications
Partie Bonus : le QueryResult !
Partie II : Syntaxe
Partie III : Applications
Partie Bonus : le QueryResult !
Revenons à nos moutons cubiques.
Partie I : Présentation
Le /stats vas permettre de stocker des statistiques (merci captain obvious) à propos d'entités ou de blocks dans un scoreboard. Je donne une définition large, floue et obscure car il est quasi-impossible de résumer une commande en une seule phrase. Certains me diront :
"La différence avec un scoreboard ?"
Le /stats stocke des données beaucoup plus générales qu'un scoreboard. Vous allez comprendre tout de suite.
On aborde tout de suite un example où le /stats nous est utile.
On veut compter les joueurs présents : c'est devenu très "simple" avec l'arrivée du /stats (1.8) !
Maintenant, passons à la partie qui fâche...
Partie II/III : Syntaxe et Applications
Il y a deux "branches" majeures dans le /stats : block et entity
Petit code utilisé dans les commandes :
entre accolades {} signifie "obligatoire"
entre crochets [] signifie "facultatif"
ce symbole ( | ) signifie "ou"
Code:
/stats {block|entity}
Avec block, on stockera les stats d'un block (sans blague) capable d'exécuter des commandes (donc un command block).
Avec entity, on stockera les stats d'une entité exécutant des commandes (soit si c'est un joueur, soit via le /execute)
Nous allons commencer avec entity. Comme entité de test, nous allons utiliser un armorstand nommé "AS" que nous allons invoquer grâce à cette commande :
Code:
/summon ArmorStand ~ ~ ~ {CustomName:"AS",CustomNameVisible:1b}
Après entity, nous devons mettre un sélecteur
Code:
/stats entity @e[name=AS] {set|clear|list}
Sur AS, nous pouvons :
- Ajouter une stat (set)
- En enlever une (clear)
- Les lister (list)
Après set, il faut spécifier un mode. Modes que je vais lister :
- SuccessCount : compte le nombre de fois où l'entité réussit une commande
- AffectedBlocks : compte le nombre de blocks affectés par les commandes de l'entité. Exemples : /fill, /clone
- AffectedEntities : compte le nombre d'entités (ou joueurs) affecté par les commandes de l'entité (je dirais simplement "ses commandes" dorénavant). Exemples : /kill mais aussi /testfor
- AffectedItems : compte le nombre d'items affectés par ses commandes. Exemple : /clear
- QueryResult : pour en savoir plus, allez voir la partie bonus !
Code:
/scoreboard objectives add jeu dummy Jeu
Après le mode, vous avez encore 2 arguments :
- un autre sélecteur
- un nom d'objectif
"Pourquoi mettre un 2nd sélecteur alors qu'on en a déjà indiqué 1 ?"
C'est simplement pour utiliser les faux joueurs. Allez voir l'excellent tutoriel d'@Oromis pour comprendre !
Donc, voici notre commande finale :
Code:
/stats entity @e[name=AS] set AffectedEntities Joueurs jeu
Je résume en 1 phrase cette commande.
"On stocke le nombre d'entités affectées par AS dans le faux joueur "Joueurs" de l'objectif jeu."
Concrètement, si on fait cette commande :
Code:
/execute @e[name=AS] ~ ~ ~ testfor @a
et qu'il y a 5 joueurs, alors le /stats va faire en sorte que le nombre de joueurs soit stocké dans "Joueurs" lui-même dans "jeu".
Et voilà, nous avons fait un compteur de joueurs fonctionnel ! Plus qu'à le mettre dans un command block "repeat" !
La commande suivante sert à l'afficher :
Code:
/scoreboard objectives setdiplay sidebar jeu
Et voilà !
Partie Bonus : le QueryResult (introduction)
Vous avez sans doute vu ce mode bizarre. Certaines commandes n'ont pas d'effet, mais elles renvoient une valeur.
Exemples :
- /gamerule nomDeLaGamerule : sans rien derrière, cela vous renvoie l'état de la gamerule. Une valeur transcrite en 0 ou 1 en utilisant QueryResult.
- /time query : vous renvoie l'heure (en ticks) actuelle.
- /worldborder get : vous renvoie la taille de la bordure du monde !
N'hésitez pas à apprécier ce post et à me rapporter une quelconque erreur !
J'espère vous avoir aidé !