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

Aide pour un Système de vote spécifique

Discussion dans 'Mapping' créé par Pilax, 21 Août 2015.

  1. Pilax

    Pilax Nouveau

    Inscrit:
    21 Août 2015
    Messages:
    1
    Points:
    0
    Sexe:
    Homme
    Bonjour, Bonsoir à toutes et à tous.

    Je suis en train de créer un mini jeux pour la communauté dont je fais partie, et je suis confronté à un problème.
    Malgré plusieurs essaies et de longues heures de recherche, je me tourne vers vous en espérant trouver solution ou contournement à mon problème.

    Je souhaiterais mettre en place un système de vote unique, amenant à l'élimination de celui qui à le plus grand nombre de vote contre lui.
    Un joueur peut voter autant de fois qu'il le souhaite, mais seul le dernier vote compte.
    Un joueur ne peut pas voter contre lui même.
    Plusieurs joueurs peuvent voter contre la même personne. (of course, c'est le principe du vote par élimination)

    L'interface se fait via des pancartes qui font un setblock sur ma séquence de command_block pour le système de vote, mais ça peut importe.

    Exemple : Le joueur A vote contre le joueur B. Il y a donc un vote contre le joueur B (vote=1).
    Le joueur A décide de changer de vote, contre le joueur C. Le joueur B perds son précédent vote (vote=0), et le joueur C a un vote contre lui (vote=1).

    Voici les quelques lignes, et la ou je bloque :

    Code (cpp):
    /*
    Joueur : numéro du joueur en relation avec ca maison (1 à 20)
    JoueurVote : vote d'un joueur contre un autre (1 ou 0)
    JoueurCiblé : joueur contre qui on a voté (1 à 20) ainsi que +1 Elimination
    Elimination : nb de votes comptabilisé contre un Joueur
    Quand qqun vote (click pancarte):
    - Vérifier si JoueurVote==JoueursCiblé --> Alors message d'erreur, peut pas voter pour soit
    - Vérification lors d'un vote :
       - Si NON --> Alors +1 à Elimination sur Le JoueurCiblé|Joueur ainsi que Set 1 JoueurVote au joueur votant.
       - Si OUI --> Alors -1 sur ancienne Elimination et ajoute +1 à nouvelle Elimination
    */

    /* test du vote d'un joueur contre lui meme
      A insérer dans chaque test @p[]
       00 étant le numéro du joueur
    */

    testfor @p[score_Joueur_min=00,score_Joueur=00]
    /* Alors */
    say Tu ne peux pas voter contre toi !

    /* test si JoueurVote=0 */
    testfor @p[score_Joueur_min=00,score_Joueur=00,score_JoueurVote_min=0,score_JoueurVote=0]
    /* Alors */
    scoreboard players set @p[coord_pancarte,r=3] JoueurVote 1
    scoreboard players set @p[coord_pancarte,r=3] JoueurCiblé 00
    scoreboard players add @p[Joueur=00] Elimination 1

    /* test si JoueurVote=1 */
    testfor @p[score_Joueur_min=00,score_Joueur=00,JoueurVote=1]
    /* Alors
    Le joueur qui va voter est flagé JoueurVote=1 et JoueurCiblé 00
    - -1 à Elimination sur ancien JoueurCiblé
    - + 1 à Elimination sur nouveau JoueurCiblé
     */

     
    Mon problème étant que je n'arrive pas à trouver comment récupérer la valeur de quelqu'un.
    Je veux soustraire la valeur JoueurVote=1 au total de Elimination du JoueurCiblé précédemment par le joueur votant.

    Je ne sais pas si cela est possible, et si mon problème est clair.
    Toujours est-il que vous savez ce que je souhaite faire dans l'ensemble et la façon dont j'aimerais faire fonctionner ce système de vote.

    Je m'y prends certainement mal, ca fait un moment que je suis sur ce problème et je n'arrive pas à mettre en place ce système ! Il y a eu plusieurs version différentes, et façon d'aborder la chose, mais à chaque fois, il y a quelque chose qui ne fonctionnait pas, ou n'allait pas :/

    Une vision extérieur pourra certainement m'éclairer sur la façon d'aborder ce problème !

    En vous remerciant par avance pour l'aide apportée,

    Pilax
     

Partager cette page