2 votes

Comment pouvez-vous détecter si un joueur est en train de tomber ?

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 ?

6voto

MrLemon Points 17073

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.

2voto

seedofc Points 78

Vous n'avez pas besoin de Redstone pour accomplir ce que vous décrivez ici. Soit faire le sol de la lave, ou le vide, ou quelque chose comme ça, et avoir le joueur spawn retour au début.

Vous pouvez le faire avec de la redstone, mais faire mourir le joueur en tombant est tout aussi efficace.

1voto

A.J. Ruckman Points 113

Oui. Vous pouvez utiliser des tableaux d'affichage, comme celui-ci :

scoreboard players set @a falling 1 {Motion:[0.0,-1.0,0.0]}

Veillez à ajouter l'objectif "chute" en premier :

scoreboard objectives add falling dummy

1voto

Bookmaster_VP Points 172

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

1voto

Chemical Comrade Points 276

Peut-être remplir une zone avec des vides de structure et exécuter une commande quand le joueur est près de ce bloc, ou téléporter le joueur quand il tombe en dessous d'une certaine hauteur. Si cela ne fonctionne pas, essayez une balise de test qui détecte les mouvements vers le bas.

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