2 votes

Vérifier s'il existe une entité dont le score objectif est inférieur à un autre score objectif.

Disons qu'il y a un joueur appelé Dave avec un score de santé de 10 et un score de santé maximum de 20. Je dois vérifier s'il y a des joueurs dont le score de santé est inférieur au score de santé maximum et les retirer. Existe-t-il également un moyen d'ajouter des valeurs à la santé, par exemple 60 ou 20, sans dépasser la santé maximale ? Par exemple : Santé + 60 = Santé maximale (sans dépassement) ? Merci d'avance.

2voto

Mystery Points 397

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".

1 votes

Merci, mais en fait je ne voulais pas les guérir. J'avais juste besoin de la partie qui modifie réellement le score. Le score de santé devrait avoir une valeur ajoutée mais sans dépasser le score fixé par MaxHealth. Toutes les valeurs sont factices

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X