Tester la vie d'une entity

Nuts101

Architecte en herbe
4 Juin 2018
98
1
20
120
Bonsoir, j'aimerais savoir si c'est possible de tester la vie d'une entity, avec ça : " nbt={Health:20.0f} " c'est une valeur précise, mais je veux un minium, comme pour le " distance=..X"
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Tout à fait, tu dois d'abord stocker cette valeur en score et tu peux la tester.

Genre (non vérifié) :
/execute as @# store result score @s #score# run data get entity @s Health

Et tu peux cibler les entités avec @#[scores={#score#=X..}]

Le seul problème, c'est que tu dois actualiser chaque tick. Quelles entités veux-tu cibler? Toutes?
 

Nuts101

Architecte en herbe
4 Juin 2018
98
1
20
120
Merci de ta réponse rapide, j'avoue n'avoir jamais utiliser le store result , donc j'ai pas tout compris haha ^^' (c'est un slime)
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Ben en fait, le store result stocke la valeur résultante de la commande exécutée dans un score


Par exemple, si tu fais "/clear @s iron_ingot 0" en ayant 73 lingots de fer, ça te dit un truc genre "73 items trouvés". C'est la valeur résultante de la commande.

Maintenant, si tu fais "/execute store result score @s #score# run clear @s iron_ingot 0", la commande va prendre la valeur résultante (73) et la copier dans le score (en nombre entier)

En fait, tu peux stocker n'importe quelle donnée numérique de quoi que ce soit en score du moment que tu puisse exécuter une commande qui en fasse sa valeur résultante (ça arrondit à l'unité du coup)



Sur le même principe, tu peux copier des nombres directement dans des données d'entités ou de bloc!
Par exemple, "/execute store result entity @e[type=creeper,limit=1] ExplosionRadius run scoreboard players get @s #score#" définira la puissance d'explosion d'un creeper à la valeur du score!
 
Dernière édition:

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
C'est ce qui est utilisé notamment pour les systèmes de commandes d'armes à feu :

-On invoque une entité genre 10 blocks devant le joueur avec les ^ ^ ^
-On stocke les données Pos[0], Pos[1] et Pos[2] du joueur et de l'entité dans des scores avec le store result (leurs positions XYZ)
-On soustrait ensemble les données entre elles (Pos[1]{joueur} - Pos[1]{entité}, pour chaque donnée.
-Tu n'as plus qu'à invoquer une entité et stocker les Pos[] résultantes dans sa Motion (donnée du mouvement de l'entité). Elle se dirigera dans la même direction que le joueur vise.