Je veux faire une carte de parkour et lorsque les joueurs tombent, ils sont téléportés au début du parkour.
Existe-t-il une commande ou un ensemble de commandes permettant de détecter si un joueur est en train de tomber ou non ?
Je veux faire une carte de parkour et lorsque les joueurs tombent, ils sont téléportés au début du parkour.
Existe-t-il une commande ou un ensemble de commandes permettant de détecter si un joueur est en train de tomber ou non ?
Ce n'est en fait pas trop difficile à mettre en œuvre en utilisant la magie du tableau d'affichage.
Tout d'abord, configurez des commandes de tableau d'affichage
scoreboard objectives add airborne dummy
scoreboard objectives add fallen dummy
Ensuite, exécutez les commandes suivantes sur une horloge rapide (je suggère d'utiliser une horloge de remplissage), dans cet ordre.
scoreboard players set @a airborne 0
execute @a ~ ~ ~ detect ~ ~-1 ~ minecraft:air -1 scoreboard players set @p airborne 1
scoreboard players set @a[score_airborne=0] fallen 0
scoreboard players add @a[score_airborne_min=1] fallen 1
Les deux premières fixent airborne
à 1 pour chaque joueur qui n'est pas debout sur quelque chose, c'est-à-dire que le bloc en dessous de lui est air
. La troisième commande permet de réinitialiser le fallen
score à 0 pour tous ceux qui ne sont pas airborne
le quatrième incrémente le score 20 fois par seconde à la place. Cela signifie que fallen
est égal à 0 tant que vous étiez debout sur quelque chose depuis votre dernière chute.
Maintenant vous pouvez sélectionner les joueurs qui tombent pour la téléportation en utilisant @a[score_fallen_min=XYZ]
. Remplacer XYZ
avec le nombre de secondes pendant lesquelles un joueur doit être au-dessus de l'air pour être considéré comme "tombant", multiplié par 20.
Il y a cependant un problème avec cela : Si vous vous tenez sur le bord d'un bloc, vous serez considéré comme tombant, et je ne vois pas de solution élégante à cela, à part enchaîner execute detect
commande de vérifier la présence de blocs dans une zone de 3×3 sous le joueur.
/tp @a[x=#,y=#,z=#,r=#] X Y Z
Cela téléportera tous les joueurs dans un rayon centré sur un XYZ vers le second XYZ. Assurez-vous que le r (rayon de la zone dans laquelle les joueurs seront affectés) est suffisamment grand pour couvrir la totalité du fond de votre parkour, de sorte qu'il téléportera le joueur du rayon spécifié vers les coordonnées XYZ que vous avez indiquées. Faites-le tourner en boucle sur une horloge de remplissage ou définissez-le pour qu'il soit toujours actif si vous êtes en 1.9. Cependant, vous pouvez vouloir créer plusieurs zones qui téléporteront les joueurs si vous prévoyez des points de contrôle.
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.