1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Résolu Système de vote command block pour mini jeux

Discussion dans 'Commands blocks & Redstone' créé par prkenji, 25 Sept 2016.

  1. prkenji

    prkenji Enter the World

    Inscrit:
    25 Sept 2016
    Messages:
    19
    Points:
    1
    Sexe:
    Homme
    Bonjour,
    Je travaille sur un mini-jeu actuellement divisé en plusieurs tours, chaque tour on vote pour eliminer un joueur. Pour l'eliminer j'ai mis tout un système qui necessite que l'on téléporte la cible choisie en X Y Z (coordonnées dans l'espace histoire de simplifier le soucis pour vous).

    pour cela chaque joueur ajoute 1 au score "VOTE" de nature "dummy" et affiché dans la sidebar pour la personne qu'ils veulent désigner (qui devra être téléportée).
    il faut que le joueur ayant "VOTE" le plus élevé soit choisi et téléporté.

    Voila si quelqu'un a une idée je suis preneur :/ 48h que je cherche une solution.


    Accessoirement je cherche aussi une solution pour permettre de voter via des clics sur le nom des joueurs dans une liste generée par un command_block dans le chat.


    MERCI De votre assistance ! je reste naturellement à disposition pour vous apporter des compléments si ce n'est pas clair !
     
  2. Neo-frost

    Neo-frost Nouveau

    Inscrit:
    14 Sept 2016
    Messages:
    4
    Points:
    0
    Sexe:
    Homme
  3. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Je déplace dans Support>Redstone.

    Tu peux utiliser des clickEvent pour voter grâce au chat.
    Il suffit alors d'attribuer à chaque joueur en début de partie un score unique, puis de les lister selon leur "identifiant" avec un bouton de vote à coté.
     
  4. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Première étape, attribuer un score différent à chaque joueur et ensuite, faire quelque chose comme ceci:
    Code (cpp):
    /scoreboard players set @a vote 0
    /scoreboard players enable @a vote
    /execute @a[score_joueur_min=1,score_joueur=1] ~ ~ ~ /tellraw @a [{"text":"Voter pour "},{"selector":"@p","clickEvent":{"action":"run_command","value":"/trigger vote set 1"}}]
    /execute @a[score_joueur_min=2,score_joueur=2] ~ ~ ~ /tellraw @a [{"text":"Voter pour "},{"selector":"@p","clickEvent":{"action":"run_command","value":"/trigger vote set 2"}}]
    (continuer jusqu'au nombre max de joueur)

    Pour savoir quand tout le monde a voté, il suffit que "/testfor @a[score_vote=0]" ne donne plus de résultat (détection via un comparateur ou un /stats). On fait ensuite les comptes :

    Code (cpp):
    /testfor @a[score_vote=1,score_vote_min=1]
    /testfor @a[score_vote=2,score_vote_min=2]
    (etc...)

    Un /stats sur chaque testfor te permettra de stocker les informations du vote sous forme numérique. Pour détecter lequel est le plus haut, il suffit de chercher la valeur (scoreboard operations >) la plus haute puis de la soustraire à tout les votes (scoreboard operation -=). Le joueur avec le plus de vote sera celui dont le score vaut 0.
     
  5. prkenji

    prkenji Enter the World

    Inscrit:
    25 Sept 2016
    Messages:
    19
    Points:
    1
    Sexe:
    Homme
    Oh *.*
    Merci j'en attendais pas autant !


    Mais du coup je comprends mal ce que vous m'avez indiqué pour le vote.
    Le trigger il ne marche pas que pour nous même ?
     
  6. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Si, mais en gros le joueur 1 donne à tous un clickEvent pour que chacun puisse set son propre trigger à 1, le joueur 2 un autre pour set son trigger à 2.
    Un décompte des joueurs ayant tel ou tel score est ensuite réalisé par un /stats sur un /testfor, si trois ont voté pour le 2, le /stats sur le bloc de commande avec "/testfor @a[score_vote=2,score_vote_min=2]" ressortira un scoreboard de 3. Il suffit ensuite de comparer chaque score correspondant à chaque testfor séparé.
     
  7. prkenji

    prkenji Enter the World

    Inscrit:
    25 Sept 2016
    Messages:
    19
    Points:
    1
    Sexe:
    Homme
    daccord ! je vais tester ^^je te remercie :D ! (j'ouvre le serveur samedi à 14H donc si tes interessé je te communiques les infos par MP ;) )
     
  8. prkenji

    prkenji Enter the World

    Inscrit:
    25 Sept 2016
    Messages:
    19
    Points:
    1
    Sexe:
    Homme
    Désolé du double post !

    J'ai terminé le jeu sans utiliser ce système de vote. je vais m'en servir dans la version 3.0 du jeu. Si ca interesse quelques personnes je donne des détails ! sinon on peut clore le sujet chers modérateurs :D !

    Encore merci à tous les participants de leur contribution.
     
  9. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Le double post ne concerne que les messages datant de moins de 24h, aucune inquiétude ici ;)

    Je passe donc en résolu.
     

Partager cette page