J'essaie de faire en sorte que les joueurs déverrouillent une porte en trouvant 5 fragments de clé. J'ai déjà un bloc de commande qui ouvre la porte lorsque l'objectif du joueur atteint 5, mais j'ai du mal à trouver comment faire correspondre un objectif à la quantité d'objets dans leur inventaire. J'ai cherché en ligne et j'ai trouvé quelques commandes sur lesquelles me baser, mais elles ne semblent pas fonctionner. Voici ce que j'ai fait jusqu'à présent avec un bloc de commande répétitif : scoreboard players add @a TempKEnt 1 {Inventory:[{id:"minecraft:prismarine_shard",Count:1b}]}
Mais la sortie indique "The dataTag does not match for (ign)". J'utilise la version 1.12.1. Toute aide est la bienvenue !
Réponse
Trop de publicités?
AjaxGb
Points
1237
La solution consiste à utiliser les statistiques de commande et clear
avec un compte de 0. Cela effacera 0 élément, mais définira un statut de commande avec l'attribut total nombre d'éléments correspondants dans l'inventaire, effacés ou non.
Les commandes sont les suivantes :
# Tell all players to store the AffectedItems stat of any commands
# they run in their own TempKEnt objective.
stats entity @a set AffectedItems @s TempKEnt
# Make sure all players have a score in TempKEnt, since /stats can
# only update scoreboard values, not create them.
scoreboard players add @a TempKEnt 0
# Have all players run the clear command to get the item count.
execute @a ~ ~ ~ clear @s minecraft:prismarine_shard -1 0
# Tell all players to stop storing their AffectedItems stat.
stats entity @a clear AffectedItems
Dans la version 1.13, ce sera beaucoup plus simple :
# Does not work in 1.12!
execute as @a store result score @s TempKEnt run clear @s minecraft:prismarine_shard 0