Comment puis-je retirer tous les joueurs dont la santé n'est pas complète ?
Vous pouvez utiliser
/scoreboard players operation <targetName> <targetObjective> <operation> <selector> <objective>
de modifier le score d'un joueur par la valeur d'un autre score (même entre joueurs).
Mais malheureusement, je n'ai pas trouvé de critère objectif pour MAX_HEALTH. (Cela pourrait valoir la peine de faire une demande de fonctionnalité sur bugs.mojang.com )
S'il devait y en avoir un, il faudrait 3 objectifs pour faire ce que vous voulez :
/scoreboard objectives add Health health
/scoreboard objectives add MaxHealth maxHealth
/scoreboard objectives add HealthLost dummy
Vous avez besoin d'une horloge pour exécuter toutes les commandes suivantes :
execute @a ~ ~ ~ /scoreboard players operation @p HealthLost = @p MaxHealth
execute @a ~ ~ ~ /scoreboard players operation @p HealthLost -= @p Health
Pour le tellraw, utilisez la balise selector dans le texte json :
/tellraw @a {text: "All these players are hurt: ",extra:[{selector:"@a[score_HealthLost_min=1]"}]}
Comment puis-je soigner les joueurs sans dépasser la santé maximale ?
Vous ne pouvez pas modifier une valeur du tableau de bord de la santé. Utilisez plutôt la fonction
/effect <player> <effect> [seconds] [amplifier] [hideParticles]
pour soigner les joueurs. La quantité de santé ajoutée est égale à duration * 2 ^ amplifier
Ver Effets des potions (ID 6)
Modifier selon le commentaire :
(Tous les objectifs = factice) Pour cela, vous pouvez utiliser à nouveau la commande operation : Il suffit d'ajouter une valeur arbitraire à votre score et ensuite d'exécuter ceci :
/execute @a ~ ~ ~ /scoreboard players operation @p Health < @p MaxHealth
Cela limitera le score de "Santé" de chaque joueur à son score de "Santé maximale".