Résolu Des classes PvP style Mineplex

djesty

Etudiant informatique industrielle
19 Janvier 2014
201
11
125
27
Yop tout le monde,
aujourd'hui, on m'a demandé s'il était possible de créer des classes PvP comme sur le serveur mineplex, à savoir, on clique sur un mob et il nous donne notre équipement en échange, il joue un peu le role d'un bouton alimentant des command blocks si vous voulez...
Le serveur est en 1.7, donc y a t il un moyen?
Sinon, il y a un moyen en 1.8? comme par exemple avec une commande /execute?

Merci d'avance :D
 

Rirrsmo

Co-fondateur d'Hystéria, architecte et plugger
13 Avril 2013
140
15
75
Impossible de détecter un clic-droit ou un coup sur un mob, sauf avec plugin, en redstone le plus simple c'est la map ( http://minecraft.fr/forum/index.php?threads/gui-menu-en-vanilla.107220/ ), sinon tu mets un bouton.
[[Pour t'expliquer :
Il y a dans ce système 2 types de Input : la carte, et l'oeuf renommé.
Déjà, pour interpréter ces deux input :
La carte vierge a pour ID 395. Lorsque la carte devient rempli (quand on fait clic droit avec elle), elle passe de l'ID 395 à l'ID 358. Une clock de commandblock ultra rapide va faire un /testfor d'un joueur qui aurait donc cette carte d'ID 358. Après, on met un comparateur. Note : cette précision dans le testfor n'est compatible qu'en 1.8.
Pour l'Oeuf, il y a deux méthodes ;
Comme l'Oeuf est renommé, on peux prétendre à un /kill @e[type=Ghast,name=CustomName], avec un comparateur à la suite.
Ou alors, il se base sur un objectif de scoreboard de type stat.useItem.383 (383 étant l'ID des oeufs de spawn) ; dans ce cas, il fait un /testfor @a[score_min_ObjectifOeufDeSpawn=1,score_ObjectifOeufDeSpawn=1]. Cette méthode est compatible en 1.7 et je la trouve plus précise car on peut mettre le @a[...] dans chaque commande.

Une fois cela fait, on a un commandblock qui viendra faire la commande /spawnpoint <joueur> , puis on le téléporte dans un portail de l'End. Tu apparais dans la direction du dispenser et comme tu auras laissé ton clic droit enfoncé comme précisé sur le nom de l'item en début de vidéo, tu ouvriras le dispenser. Après, 2 possibilités :
- Soit les commandblock font un /testforblock pour savoir quel item tu as pris (et donc qu'il n'y a pas DANS LE DISPENSER), ou ils font un /testfor pour voir quel item tu as pris DANS TON INVENTAIRE.
Ensuite, ça t'enlève l'item de sélection, ça le replace dans le dispenser (ça fait un /setblock du dispenser ou bien un /blockdata (1.8) ). Puis ça active une série de commandblock de /give pour donner les objets selon la classe. Enfin, ça te téléporte dans le portail de sortie de l'End et donc tu respawn à l'ancien endroit grâce au spawnpoint.
Pour savoir comment le gars obtient une impulsion à partir de l'ouverture de l'inventaire, j'en ai aucune idée, cela dit.

Je vois trois gros défauts dans le système :
- Si le joueur meurt, il respawn là où il a choisi sa dernière classe.
- On peut pas avoir de maps, pour les afficher ou se repérer tout simplement.
- L'End étant relativement aménagé en son spawn, il faut d'abord empêcher les endermen de prendre des blocs et tuer l'EnderDragon pour éviter qu'il ne bute le joueur. Après, ça va être difficile de récolter de l'endstone par la suite sauf en griefant le système :/ message de jadoremario]]
 

Diangle

Développeur
1 Mars 2014
676
60
97
Grenoble (isere)
en vanilla j'ai un moyen plus simple, mais donc, pas je changement de skin, juste la classe et les objets, et je peux te faire en sorte que les joueur est un spawn aléatoire, et que au bout de 4 mort il sont kick.
 

djesty

Etudiant informatique industrielle
19 Janvier 2014
201
11
125
27
merci pour vos réponses, je vois que c'est assez complexe et, Diangle, je veux bien ta solution :p
Juste, le changement de skin n'est pas nécessaire, pour le spawn aléatoire et le compteur de mort on ne m'a rien dit.... donc je suis tjrs preneur au cas où... ;D
 

Guerro

TM/SM/QM > all
5 Mars 2012
580
48
139
25
o
Sinon , mettre la vie du mob a 0.5 et quand le joueur fait clique gauche , il a la classe
 

Diangle

Développeur
1 Mars 2014
676
60
97
Grenoble (isere)
en faite il faut faire des scorboard qui, a chaque mob tuer tu rajoute un, et tu mes la bonne classe en fonction du joueur, mais il faut faire des boucle qui font spawn des mobs des que le précédent est mort pour le systeme de vie et de spawn aléatoire c'est aussi simple il faut faire en sorte que chaque fois que un joueur meure tu lui baisse son score de 1, et avec une machine a randomes tu peux faire des spawn random.
 

djesty

Etudiant informatique industrielle
19 Janvier 2014
201
11
125
27
Merci à tous pour votre aide, je vais inviter le joueur qui m'a posé la question à regarder la solution qui lui plait le plus, ensuite, je vous tient au courant :D
 

djesty

Etudiant informatique industrielle
19 Janvier 2014
201
11
125
27
Pas de soucis, il n'est jamais trop tard :D c'est vrai que je n'avais pas pensé au piston en mouvement :D
Je vais voir la vidéo, j'essaye pour voir s'il y a moyen de placer le système et je vous prévient :D
 

djesty

Etudiant informatique industrielle
19 Janvier 2014
201
11
125
27
en solo le système marche très bien mais en multi, les comparateur bug avec bukkit :/