Résolu Système de vie pour map PVP

  • Auteur de la discussion Auteur de la discussion Noy
  • Date de début Date de début

Noy

Noy, team OverPlayCraft, Map Maker, Builder !
20 Février 2015
10
0
1
24
Bonjour, je m'appelle Noy,
je suis en train de créer une map PVP multijoueur en 1.8.
L'idée est simple, Chaque joueur possède en début de partie 20 vies et à chaque fois qu'un joueur (disons P1) meurt par un autre joueur (P2), P1 perd une vie (sur ces 20[donc P1 est à 19]). Si P2 meurt 20 fois, il n'a plus de vies et la partie se termine, le dernier joueur qui a de la vie gagne.
J'espère que je me suis exprimé clairement et voilà donc le système que je souhaite réaliser seulement je suis ici car justement je ne suis pas le meilleur en redstone/command block et je ne vois pas trop comment réaliser ce système de "vie".

Si vous connaissez un système similaire ou si vous avez une idée, je suis preneur !
Merci !
 
Salut,
Pour cela tu peux créer un objectif en dummy : /scoreboard objectives add vie dummy
Ensuite, par défaut, lors du lancement de la partie, tu mets dans un command block commande : /scoreboard players set @a vie 20
Pour finir lors de la mort d'un des joueurs, tu fais en sorte qu'il respawn sur une plaque de pression (via spawpoint) relié à cette commande : /scoreboard players remove @p vie 1 puis tu le retp dans l'arène ou dans le choix des classes !
Pour la détection du score 0 : un coomabd block relié à une click avec ceci dedans : /testfor @a[score_vie=0] avec un comparateur en sortie pour ensuite effectuer l'action voulu !

PS : pour afficher le nombre de vie restante fais : /scoreboard objectives setdisplay sidebar vie

Voilà en espérant t'avoir aidé !!!
 
Tu peux faire ca avec les scoreboard !
Tu dois taper une fois :

Code:
/scoreboard objectives add Vies stat.deaths

Une fois cet objectif (nommé ici "Vies") créé, tu ajoutes des commandblock reliés à une fillclock où tu /testfor le joueur qui a un score de 20 aux Vies (donc morts 20 fois = le perdant):
Code:
/testfor @a[score_Vies_min=20]
 
>tu mets un comparateur>
 
/title @a [...]    (ou l'action que tu veux!)

Tu peux aussi détecter le gagnant en ajoutant après le /testfor précédant :
Code:
/testfor @a[score_Vies=19]


N'oublis pas qu'a chaque début de combat il faudra redéfinir le score "Vies" a 0
Code:
/scoreboard players set @a Vies 0
 
Le "/testfor @a[score_vie=0]" va détecter tous les joueurs ayant une leur "vie" à 0 et quand il ne restera qu'un joueur avec un score vie supérieur à 0, le comparateur exécutera la commande souhaitez, si j'ai bien compris c'est ça ?
Merci de ton idée, si j'ai bien compris, je vais tous de suite essayer.

EDIT : Ce que j'ai aussi peut-être oublier de préciser, c'est qu'il n'y aura pas forcément deux joueurs (j'ai pris 2 joueurs pour l'exemple), il y aurai donc plusieurs perdant mais un seul gagnant. Je ne sais pas si ça change quelque chose.
 
Je te recommande la façon JeanBat qui est plus simple que la miene ;-)
 
Ok Oromis,
Merci JeanBat, je crois avoir tous compris, je vais tous de suite tester le système !
 
Oui, ça serait bien aussi un scoreboard, visible à droite avec le nombre de vie restante de tous les joueurs.

Et une fill clock, c'est une clock spécial ?
 
Les 2 méthodes marcheront ^^

Ce que j'ai aussi peut-être oublier de préciser, c'est qu'il n'y aura pas forcément deux joueurs (j'ai pris 2 joueurs pour l'exemple), il y aurai donc plusieurs perdant mais un seul gagnant. Je ne sais pas si ça change quelque chose.

Il faudra mettre un 2e systeme parallèle de détection de joueurs, dans une zone et selon le scoreboard.
Ci dessous :

Code:
/testfor @a[score_Vies=19]
 
et dans le commandblock de droite, l'action de ton choix pour mettre fin à la partie, puis ce qu'il ne reste qu'un joueur

http://www.mediafire.com/convkey/c474/73o6dd3o6c63apxzg.jpg
 
JeanBat ? Avec ton système, est-il possible de faire un score board opération sur tout les joueurs à la fois ? (n'étant pas sur mon pc , je ne peux pas tester)