Existe-t-il une sorte de commande que je pourrais utiliser pour tester quand le joueur mange quelque chose, puis après que le joueur ait mangé cette chose, lui donner 2 cœurs ? J'ai l'impression que ça pourrait être un test pour commande....
Réponse
Trop de publicités?De la même manière que vous pourriez empêcher quelqu'un d'utiliser une épée en diamant La façon la plus simple de faire cela dans Vanilla est d'utiliser les tableaux de bord. Malheureusement, il n'y a aucun moyen de vérifier tous les aliments avec un seul objectif de tableau d'affichage ; vous devrez définir un objectif pour chaque aliment. De plus, un bogue dans les versions précédentes empêche de faire ce que vous demandez, et vous devrez utiliser les snapshots 1.8 ou plus.
Pour cet exemple, je vais utiliser le pain, mais vous devez couvrir chaque aliment. Commencez par définir les objectifs du tableau de bord pour chaque type d'aliment à suivre :
/scoreboard objectives add ateBread stat.useItem.minecraft.bread
Vous n'avez pas besoin de le faire à partir d'un bloc de commande, n'importe quel opérateur peut exécuter la commande.
Ensuite, pour chaque aliment, vous aurez besoin d'une paire de blocs de commande, le premier de la paire alimentant le second avec un comparateur. Le premier recherche les joueurs qui ont mangé un aliment et leur donne 2 cœurs (4HP), le second réinitialise l'objectif du tableau de bord de ces joueurs pour cet aliment :
effect @a[score_ateBread_min=1] 6
scoreboard players set @a[score_usedBread_min=1] usedBread 0
Enfin, reliez toutes les paires de blocs de commande à une horloge rapide, et le tour est joué.
Il y a maintenant quelques inconvénients. Premièrement, si leur barre de faim est pleine, ils ne pourront pas manger et ne pourront donc pas se régénérer en utilisant cette méthode. Ensuite, si leur barre de faim est pleine (ou presque), ils se régénéreront naturellement, ce qui n'est pas forcément le résultat souhaité. La vidéo suivante propose un moyen de contourner ce problème, et permet également de tout configurer à partir d'un seul bloc de commandes.
https://www.youtube.com/watch?v=BUxlOvU4P94?start=0
Il fait quelques choses différemment de ce que je montre ci-dessus, mais le résultat final est le même.