[AIDE] Empêcher un joueur de taper

Snrasha

Critiqueur de service.
29 Juillet 2011
1 871
69
43
Tu ajoutes un scoreboard de player kill count, quand le score augmente, cela active l'effet non?.
 

bmx22c

Redstonneur
23 Septembre 2012
339
13
75
26
St. Rémy de Provence
www.youtube.com
Tu ajoutes un scoreboard de player kill count, quand le score augmente, cela active l'effet non?.

Ouai pas con, seulement il faudrait un scoreboard pour chaque joueur non ?
Après si par exemple, un joueur a 10 kill, ça active le système mais quel joueur va être concerné ? Parce que j'ai un peut lâché les commands blocks et je ne me souvient plus trop de leurs fonctionnement :/
 

Snrasha

Critiqueur de service.
29 Juillet 2011
1 871
69
43
EDIT: ancien message inutile que je supprime pas
Oui, c'est vrai, mais bon voyons, chacun ont un scoreboard playerkillcount à 0, quand quelqu'un tue un joueur, cela va donc lui ajouter un point, le test for va donc réagir, va allumer un command bloc qui va vérifier le joueur qui a un point, reset le score de tout le monde.
Là où on bloque reste: va allumer un command bloc qui va vérifier le joueur qui a un point. Je pense que il faudrait que tous les joueurs soient d'une team différente, et que plusieurs command bloc après le testfor(vérifiant le scoreboard si il y a un point ou non au total) vérifient si leurs teams remplissent la condition( d'avoir 1), à part lui qui remplit la condition, il ne se passe rien pour le reste, à la sortie du command bloc, on a l'effet qui va de déclencher pour le joueur.
J'ai l'idée en tête, je te passe les commands dès que j'ai finis.

EDIT: Pour l'effet : /effect @a[team=red,name=!jean-kevin,r=500] 18 5 2
Bon l'argument name ne sert à rien , donc tu n'es pas obligé. Après pour la team, bah tu mets le nom que tu veux.
Après pour les scoreboards(juste après le qui vérifie si un point est enregistrer [/testfor @a[score_nom_min=1] tu met /testfor @a[score_nom_min=1,team=nom,r=500]

EDIT2: il est peut être préférable de commencer directement avec les vérificateurs de teams, non par le premier. Si on met un test for(all joueur) puis la flopée de testfor(team) il faut qu'une horloge, mais si on vire le premier, il faut plus d'horloges.
Système: un joueur est une team, tu devras au préalable crée un scoreboard objectives, et une team pour chaque joueur.


Horloge > Première rangée: (/testfor @a[score_nom_min=1,team=nom,r=500]) > seconde rangée : ( /effect @a[team=nom,name=!jean-kevin,r=500] 18 5 2) > dernière rangée : /scoreboard players set @a[team=nom,r=500] objectif 0

Comme tu vois, chaque joueur est au fait une team, et chaque team à sa propre rangée de command bloc. C'est le seule moyen pour moi.
 

bmx22c

Redstonneur
23 Septembre 2012
339
13
75
26
St. Rémy de Provence
www.youtube.com
Oui, c'est vrai, mais bon voyons, chacun ont un scoreboard playerkillcount à 0, quand quelqu'un tue un joueur, cela va donc lui ajouter un point, le test for va donc réagir, va allumer un command bloc qui va vérifier le joueur qui a un point, reset le score de tout le monde.
Là où on bloque reste: va allumer un command bloc qui va vérifier le joueur qui a un point. Je pense que il faudrait que tous les joueurs soient d'une team différente, et que plusieurs command bloc après le testfor(vérifiant le scoreboard si il y a un point ou non au total) vérifient si leurs teams remplissent la condition( d'avoir 1), à part lui qui remplit la condition, il ne se passe rien pour le reste, à la sortie du command bloc, on a l'effet qui va de déclencher pour le joueur.
J'ai l'idée en tête, je te passe les commands dès que j'ai finis.

EDIT: Pour l'effet : /effect @a[team=red,name=!jean-kevin,r=500] 18 5 2
Bon l'argument name ne sert à rien , donc tu n'es pas obligé. Après pour la team, bah tu mets le nom que tu veux.
Après pour les scoreboards(juste après le qui vérifie si un point est enregistrer [/testfor @a[score_nom_min=1] tu met /testfor @a[score_nom_min=1,team=nom,r=500]


EDIT2: il est peut être préférable de commencer directement avec les vérificateurs de teams, non par le premier.



J'avais pensé aux teams parce que savoir quel joueur c'est compliqué..

Ensuite, pourrais tu m'expliquer la commande ?
effect: L'effet, donc la potion, ça ok je comprend.
@a: Tout le monde dans la team concernée.
team=red: La team concernée.
name=!: comprend pas :/
r=500: le rayon


Oui je pense aussi, je vais tester, merci :)

Et au passage, j'adore ta signature ^_^
 

Snrasha

Critiqueur de service.
29 Juillet 2011
1 871
69
43
J'ai mis à jour ^^. Mon message d'avant.
Mais pour faire simple,

les joueurs entrent dans l'arènes et doivent tous aller dans une team différente( trouve un moyen pour sa), après dans l'arène, quand un joueur va tuer un autre, le test for de sa team va s'activer, activer l'effet sur TOUTE SA TEAM (or vu qu'il est seul, bah que lui quoi), puis remettre à 0 le scoreboard de sa team(donc que lui). Je n'ai pas tester le système, techniquement il faut encore faire quelque réglages.

PS: bug possible: il tue deux joueurs à la suite espacé de 2secondes.
 

neuneutrinos

redstoneur complètement neuneu
17 Juillet 2011
383
6
125
Limoges
excuse moi j'aurais du préciser le /effect

et j'ai mal compris ce que tu voulais :p

(le truc simple)
En fait Il est possible de créer un objectif
playerKillCount qui s'incrémente dès qu'un joueur tue un autre joueur
il "suffit" d'activer le système dès que son score change

pour éviter de mettre trop de command bloc , le mieux est de gérer un "booléen"

score de 0 au départ
si son score passe à 1 -> mettre l'effet et la repasser à 0

Il faudra 3 command blocs par personne (1 pour le /testfor et 1 pour le /effect et 1 pour remettre son score à 0)

Je ne parle pas de l'initialisation ;)


si tu connais mal le /scoreboard je t'invite à regarder cette page http://fr.minecraftwiki.net/wiki/Tableau_de_score
qui te donnera de bonnes informations


Pour l'initialisation

2 command bloc par equipe
1 pour la créer (si c'est le cas ne le met pas)
et 1 pour l'affectation

avec un scoreboard teams join equipe12 @r[team=]

pour enlever tout le monde d'une equipe

scoreboard teams leave equipe12 @a[team=equipe12]

voila :)
EDIT: désolé pour la répétition d'information

pour corriger le bug -> il faut faire une horloge plus rapide (sans hooper)
 

bmx22c

Redstonneur
23 Septembre 2012
339
13
75
26
St. Rémy de Provence
www.youtube.com
Merci de vos réponses, il est tard, je lirais ça demain parce que là je suis pas trop "apte" à comprendre se que vous m'avez dit :p

A demain, j'éditerais se message quand j'aurais lu ^^ (au alentours de 14h)

Bonne nuit.
 

bmx22c

Redstonneur
23 Septembre 2012
339
13
75
26
St. Rémy de Provence
www.youtube.com
Message de Snrasha 1!
EDIT: ancien message inutile que je supprime pas
Oui, c'est vrai, mais bon voyons, chacun ont un scoreboard playerkillcount à 0, quand quelqu'un tue un joueur, cela va donc lui ajouter un point, le test for va donc réagir, va allumer un command bloc qui va vérifier le joueur qui a un point, reset le score de tout le monde.
Là où on bloque reste: va allumer un command bloc qui va vérifier le joueur qui a un point. Je pense que il faudrait que tous les joueurs soient d'une team différente, et que plusieurs command bloc après le testfor(vérifiant le scoreboard si il y a un point ou non au total) vérifient si leurs teams remplissent la condition( d'avoir 1), à part lui qui remplit la condition, il ne se passe rien pour le reste, à la sortie du command bloc, on a l'effet qui va de déclencher pour le joueur.
J'ai l'idée en tête, je te passe les commands dès que j'ai finis.

EDIT: Pour l'effet : /effect @a[team=red,name=!jean-kevin,r=500] 18 5 2
Bon l'argument name ne sert à rien , donc tu n'es pas obligé. Après pour la team, bah tu mets le nom que tu veux.
Après pour les scoreboards(juste après le qui vérifie si un point est enregistrer [/testfor @a[score_nom_min=1] tu met /testfor @a[score_nom_min=1,team=nom,r=500]

EDIT2: il est peut être préférable de commencer directement avec les vérificateurs de teams, non par le premier. Si on met un test for(all joueur) puis la flopée de testfor(team) il faut qu'une horloge, mais si on vire le premier, il faut plus d'horloges.
Système: un joueur est une team, tu devras au préalable crée un scoreboard objectives, et une team pour chaque joueur.


Horloge > Première rangée: (/testfor @a[score_nom_min=1,team=nom,r=500]) > seconde rangée : ( /effect @a[team=nom,name=!jean-kevin,r=500] 18 5 2) > dernière rangée : /scoreboard players set @a[team=nom,r=500] objectif 0

Comme tu vois, chaque joueur est au fait une team, et chaque team à sa propre rangée de command bloc. C'est le seule moyen pour moi.
Réponse:
Alors, il y aura 8 joueurs, donc j'ai pensé à une simple porte qui s'active des ue les 8 joueurs seront sur leurs plaque de pression.

Au moment où il appuie sur la plaque de pression, le joueur est ajouté à une team.

A partir du moment où les 8 joueurs sont sur les plaques de pressions, ça enclenche un système qui les TP à l'endroit voulu.
Le playerKillCount est actif (avec une horloge), des que le score passe à 1, ça active l'effet (ça l'emèche de taper) sur tous les membres de la team, donc lui, puis, le score se remet à 0.

Le seul problème est que ma map marche avec un système de killcount, j'aurais voulu qu'au bout de, disons 15 kills, la partie s'arrête, les teams sont supprimées, les joueurs sont re-TP au spawn, et tout est reset.

Donc, là.. Ça coince..

Message de Snrasha 2!
J'ai mis à jour ^^. Mon message d'avant.
Mais pour faire simple,

les joueurs entrent dans l'arènes et doivent tous aller dans une team différente( trouve un moyen pour sa), après dans l'arène, quand un joueur va tuer un autre, le test for de sa team va s'activer, activer l'effet sur TOUTE SA TEAM (or vu qu'il est seul, bah que lui quoi), puis remettre à 0 le scoreboard de sa team(donc que lui). Je n'ai pas tester le système, techniquement il faut encore faire quelque réglages.

PS: bug possible: il tue deux joueurs à la suite espacé de 2secondes.

Réponse: J'ai tout dit dans la réponse d'au dessus, mise à part pour ton PS: Il ne pourra pas taper 2 joueurs à la suite puisque je vais lui attribuer l'effet qui l’empêche de taper qui que se soit. Donc, pas de problèmes de se côté là.


Message de neuneutrinos:
excuse moi j'aurais du préciser le /effect

et j'ai mal compris ce que tu voulais :p

(le truc simple)
En fait Il est possible de créer un objectif
playerKillCount qui s'incrémente dès qu'un joueur tue un autre joueur
il "suffit" d'activer le système dès que son score change

pour éviter de mettre trop de command bloc , le mieux est de gérer un "booléen"

score de 0 au départ
si son score passe à 1 -> mettre l'effet et la repasser à 0

Il faudra 3 command blocs par personne (1 pour le /testfor et 1 pour le /effect et 1 pour remettre son score à 0)

Je ne parle pas de l'initialisation ;)


si tu connais mal le /scoreboard je t'invite à regarder cette page http://fr.minecraftwiki.net/wiki/Tableau_de_score
qui te donnera de bonnes informations


Pour l'initialisation

2 command bloc par equipe
1 pour la créer (si c'est le cas ne le met pas)
et 1 pour l'affectation

avec un scoreboard teams join equipe12 @r[team=]

pour enlever tout le monde d'une equipe

scoreboard teams leave equipe12 @a[team=equipe12]

voila :)
EDIT: désolé pour la répétition d'information

pour corriger le bug -> il faut faire une horloge plus rapide (sans hooper)

Réponse: Oui, pareil, j'ai répondu dans la première réponse de Snrasha, je t'invite à aller la voir :)

EDIT: Voilà se que j'ai fait pour les 8 joueurs, après j'ai fait ton image (Snrasha), ça c'est juste pour ajouter un joueur + l'objective.
Image topic.png
 

bmx22c

Redstonneur
23 Septembre 2012
339
13
75
26
St. Rémy de Provence
www.youtube.com
Excusez du triple post, c'est pour dire comme quoi j'y suis enfin arrivé :p

Voilà comment j'ai fait:

En premier, le joueur passe sur une plaque de pression.
Cette plaque active:
De 1: La vérification si il y a 8 joueurs.
De 2: Le système de:
- Création de la team avec comme nom "1" (c'est le nom que je lui est donnée ^^)
- Ajout du joueur dans la team (j'ai mis @p)
- Création de l'objectif "playerKillCount" pour la team. (ici, la team 1)

Une fois les 8 joueurs 'fin prêts, on les TP, ils font leurs trucs, bref.

Il y a une horloge qui vérifie si un des joueurs (ici nous allons prendre la team 1)
Si, son score atteint 1, ça active un command block qui met l'effet comme quoi il ne peut plus taper de joueurs, puis on lui remet son score à 0.

PROBLÈME:

Je compte utiliser le nombre de killCount pour savoir QUAND un des joueurs arrive à (exemple) 15 kills. Donc je pense avoir la solutions:

(Prenons par exemple que la partie se finisse à 15 kills)
Faire un command block pour chaque kill
Exemple:
Un command block test si il a 1 kill, si oui, il active la potion MAIS ne se remet pas à 0
Un command block test si il a 2 kill, si oui, il active la potion MAIS ne se remet pas à 0
Un command block test si il a 3 kill, si oui, il active la potion MAIS ne se remet pas à 0 etc JUSQU'A
qu'il arrive à 15 kills PUIS ça n'active PAS l'effet mais enclanche le système de reset qui est:

- Supprimer la team
- Supprimer l'objective
- Ramener les joueurs au spawn.



Voilà mon concept, Snrasha ou les autres, donnez moi vos avis parce que je suis vraiment pas sur de ça..
 

Snrasha

Critiqueur de service.
29 Juillet 2011
1 871
69
43
Disons tout simplement que un score dummy derrière serait plus simple. Car
Un command block test si il a 1 kill, si oui, il active la potion MAIS ne se remet pas à 0
Un command block test si il a 2 kill, si oui, il active la potion MAIS ne se remet pas à 0
Un command block test si il a 3 kill, si oui, il active la potion MAIS ne se remet pas à 0 etc JUSQU'A

Cela va faire beaucoup.
Je veux dire que en plus du score playerkillcount, du score de team( une team correspondant à un joueur, seul moyen d'identifier un joueur sur pas mal), tu ajoutes un score dummy, et à chaque fois que l'effet s'active et que le reset du score de la team "1" 1 >0 , il y a envoi d'une donnée sur ce player sur un score dummy. Au bout de 15, une horloge placer derrière avec le command bloc qui détectera si il y a un score dummy 15. Que tu peux soit diviser en 8(par team) ou en 1 seul. En 8 commands blocs, cela pourra tout simplement dire qui a gagner (la team) au fait. Rien de plus ^^ bien sur après cela supprime tout comme prévu.