Je veux faire un appareil sans pierre rouge, donc je veux détecter les données NBT d'un bloc de commande, de sorte que lorsqu'il émet un signal de comparateur, un autre bloc de commande le détecte et fait quelque chose. De l'aide ?
Réponse
Trop de publicités?Ce que vous voulez, c'est la stats
avec la commande SuccessCount
stat.
En stats
commande
La syntaxe de la commande pour ce que vous voulez faire est la suivante
stats block <x> <y> <z> set <stat> <selector> <objective>
<x> <y> <z>
sont les coordonnées du bloc qui exécute la commande pour laquelle vous souhaitez obtenir les données de résultat.
<stat>
est l'un des AffectedBlocks
, AffectedEntities
, AffectedItems
, QueryResult
ou SuccessCount
en fonction de ce que vous voulez faire (consultez le wiki pour plus d'informations). SuccessCount
est généralement la même que la puissance de la pierre rouge, mais n'est pas limitée à 15 (IIRC, cela varie pour certaines commandes).
<selector>
y <objective>
spécifier une entité cible et un objectif de tableau de bord dans lequel stocker le résultat. Je suggère d'utiliser soit @a
(utile pour exécuter directement sur les lecteurs si une condition est remplie) ou un support d'armure nommé comme sélecteur.
Exemple
Nous avons un bloc de commande qui exécute un testfor
(aux coordonnées 1 2 3), et nous voulons exécuter une autre commande si au moins 4 entités (par exemple des joueurs) remplissent les conditions suivantes * . Nous créons un objectif (factice) de tableau d'affichage appelé "SCObjectif" et nous invoquons un stand d'armure (invisible, marqueur) appelé "SCDummy". Nous créons un autre bloc de commande, en exécutant
stats block 1 2 3 set SuccessCount @e[type=ArmorStand,name=SCDummy] SCObjective
Ensuite, nous pouvons utiliser
execute @e[type=ArmorStand,name=SCDummy,score_SCObjective_min=4] ~ ~ ~ <other command>
pour exécuter notre commande en fonction du résultat du test.
* C'est l'un des rares cas où testfor
est utile et ne peut pas être facilement remplacée par execute
.
Il existe une autre version de la commande à utiliser avec les entités :
stats entity <selector2> set <stat> <selector> <objective>
Cela renverra un <stat>
pour une commande exécutée par <selector2>
(y compris lors de l'exécution de execute
de cette entité).