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

Comment détecter si deux scores sont égaux.

Discussion dans 'Commands blocks & Redstone' créé par yomenwolf, 25 Fev 2015.

  1. yomenwolf

    yomenwolf Nouveau

    Inscrit:
    25 Fev 2015
    Messages:
    3
    Points:
    10
    Sexe:
    Homme
    Bonjour à tous, après plusieurs recherches, je ne trouve pas de solution...

    J'aimerais savoir si c'était possible de pouvoir vérifier si un score est égal à un autre;
    Par exemple j'ai un score de Zombie tués et un autre de Creeper tués.
    Mon but est que je puisse détecter via un command block et un comparator si les deux scores sont égales (3 et 3, 12 et 12,...).

    Pour bien comprendre, je voudrais une commande qui équivaudrait "/testfor @a[score_creep=score_zomb]" (commande inventée pour illustration)

    J'ai essayé avec "/scoreboard players test @a <objectives> <min> <max>" mais on ne sais mettre que des valeurs fixes, c'est pas se que je recherche...

    Si quelqu'un pourrait m'éclairer, ça serait top. Merci :)
     
    #1 yomenwolf, 25 Fev 2015
    Dernière édition: 25 Fev 2015
  2. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    611
    Points:
    86
    Sexe:
    Homme
    Souhaite-tu pouvoir tester plusieurs fois à suivre s'y les scores sont égaux ?
     
  3. yomenwolf

    yomenwolf Nouveau

    Inscrit:
    25 Fev 2015
    Messages:
    3
    Points:
    10
    Sexe:
    Homme
    Salut, non pas forcément.
     
  4. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Si j'appelle "score" ton score à tester et "test" un autre objectif de type dummy.

    Code (cpp):
    /execute @a ~ ~ ~ scoreboard players operation @p test = @p score
    /scoreboard players operation #best score > @a score
    /scoreboard players operation @a test -= #best score
    Ce premier groupe de commande va te permettre de niveller les scores de tout le monde. La première commande permet de sauvegarder le score dans un autre objectif, ce qui permet de faire des manipulations derrière. La seconde va chercher qui a le score le plus grand puis la troisième va retirer à tout le monde le score le plus grand. Ainsi le score avec le plus haut score sera à 0 et les autres seront à -1, -2 , -3....

    Code (cpp):
    /testfor @a[score_test=0,score_test_min=0]
    Cette commande va te dire combien de joueur ont un score de 0 (information que tu peux récupérer via un /stats ou un comparateur placé à côté du bloc de commande).
    Dans le cas où tu veux aller chercher d'autres joueurs plus bas dans le classement, il faut refaire un processus semblable.

    Code (cpp):
    /scoreboard players add @a[score_test_min=0] test 1
    /scoreboard players operation #best test > @a[score_test=0] test
    /scoreboard players operation @a[score_test=0] test -= #best test
    Puis
    Code (cpp):
    /testfor @a[score_test=0,score_test_min=0]
    Inconvénient de la méthode (mais vu que les tests de ce genre sont chiant à faire, je vois pas comment faire mieux): beaucoup de commande à utiliser dans un ordre précis, donc il vaut mieux oublier l'idée de vouloir tester en permanence mais plutôt une fois de temps en temps.
    Dans le cas où tu n'as que deux joueurs à comparer, c'est très facile. Dès qu'il y en a plus, ça devient galère.
     
    • J'aime J'aime x 1
    • J'approuve J'approuve x 1
    #4 Mlakuss, 25 Fev 2015
    Dernière édition: 25 Fev 2015
  5. yomenwolf

    yomenwolf Nouveau

    Inscrit:
    25 Fev 2015
    Messages:
    3
    Points:
    10
    Sexe:
    Homme
    J'essaierai tout ça tout à l'heure.
    Merci Mlakuss pour le temps passer à l'explication très clair, très sympa :)
     

Partager cette page