4 votes

Comment détecter si un joueur se déconnecte du jeu dans Minecraft ?

Je suis en train de construire une carte de jeux de survie Minecraft, dans laquelle la zone de combat est sur une île flottante. Mes amis ont découvert que s'ils tombent au sol, ils peuvent rapidement se déconnecter et se reconnecter pour échapper aux dégâts de la chute et ne pas mourir, trichant ainsi.

Est-il possible de détecter si un joueur se déconnecte afin d'incrémenter son score de mort ?

Je le construis en vanille, j'essaie de faire une carte entière automatisée avec juste des blocs de commande et de la redstone, c'est la dernière chose dont j'ai besoin maintenant.

1 votes

Faites-vous tout avec redstone, ou utilisez-vous également d'autres plugins de serveur ?

0 votes

Il n'est pas vraiment possible (AFAIK) de modifier le score de quelqu'un qui est déconnecté. Je suppose qu'il serait également possible, dans ce cas, de modifier leur score dès qu'ils se reconnectent ? Si c'est le cas, je vais rédiger une réponse à ce sujet.

0 votes

Que se passe-t-il exactement après qu'ils se soient reconnectés ? Je suppose qu'ils se trouvent dans une fosse. Comment en sortent-ils alors ? Cette question est pertinente car il pourrait y avoir une solution différente/meilleure à votre problème que de détecter une déconnexion.

6voto

SirBenet Points 27779

Tout d'abord, vous devez mettre en place un objectif de tableau de bord de type stat.leaveGame :

/scoreboard objectives add JustLeft stat.leaveGame

Lorsqu'un joueur quitte le monde, son score JustLeft augmente de 1 en raison de son type.

Sur une horloge quelque part, vous devriez alors avoir :

/scoreboard players set @a[score_JustLeft_min=1] Death 1

Fixer le score de décès des joueurs qui viennent de se reconnecter à 1. Suivi par :

/scoreboard players set @a[score_Death_min=1] JustLeft 0

Pour que leur score de JustLeft soit remis à zéro après que leur score de Mort soit défini, les empêchant d'être continuellement tués.

@a ne sélectionne que les joueurs en ligne, donc ils ne devraient avoir que leur score de mort qui sera réinitialisé lorsqu'ils rejoindront le monde, même si leur statut JustLeft passera directement à 1.

6voto

TobyMinceraft Points 71

Voici le format pour la mise à jour Aquatic (1.13) :

Ajouter un score /scoreboard objectives add JustLeft minecraft.custom:minecraft.leave_game

Commande d'horloge 1 /scoreboard players set @a[scores={JustLeft=1..}] Death 1

Commande d'horloge 2 /scoreboard players set @a[scores={Death=1..}] JustLeft 0

En complément de la réponse de SirBenet, si un joueur cherche à réinitialiser le score des décès pour une raison quelconque, il suffit de faire ceci : /scoreboard players set @a[scores={Death=1..}] Death 0

Le format des commandes a radicalement changé après la version 1.12, et pour le mieux, semble-t-il. Suppression de choses comme "/testfor" et "/testforblock" et remplacement par "execute if entity" ou "execute if block X Y Z".

ASTUCE : l'ajout d'ellipses (...) après la valeur numérique indique à Minecraft de vérifier toutes les valeurs supérieures ou égales à celle-ci ; dans cet exemple, la commande vérifie toutes les personnes dont le score "Deaths" est supérieur ou égal à 1.

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