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 : un système de compteur via levels (multijoueurs)

Discussion dans 'Mapping' créé par Jbip, 16 Juin 2014.

  1. Jbip

    Jbip Mineur

    Inscrit:
    31 Août 2013
    Messages:
    398
    Points:
    134
    Sexe:
    Homme
    Salut ! Je suis là pour demander un peu d'aide. Pour la 0.8 de Beaconators, j'ai créé un système de compteur de kills sans mourir. Tout marche bien, c'est la joie, la bonne humeur, le bonheur de ne pas avoir fait d'erreur etc..

    Sauf que, on ne sait pas le nombre de kills que l'on a fait sans mourir, sans que les bonus s'activent.
    Donc, j'ai utilisé les niveaux pour compter ça. Tout marchait bien, du moins, en solo... Parce que /testfor.

    C'est LA le problème. En multijoueurs, l'utilisation de mon compteur devient inutile, car si par exemple 2 joueurs sont à 2-3 kills sans mourir, le système se bloque, car le comparateur va rester activé. J'aimerai avoir un système qui ne se bloque, qui compte pour TOUT les joueurs si ils sont par exemple à 3-4 kills sans mourir, en augmentant 1 kill = 1 level. Bien sur, les levels sont reset à la mort, mais ça, c'est déjà fait.

    Chez moi, mon système va jusqu'à 20 kills sans mourir, et faut le dire, faut quand même être badass pour faire ça.

    INFOS :
    Scoreboards utilisés :
    killRow : C'est un totalKillCount (oui, il compte aussi les mobs je sais), et est utilisé pour tester si les joueurs ont fait X kills à leur mort. Il est bien sur remis à 0 à chaque mort.
    Commandes utilisées :
    -
    Pour les killstreaks, je /testfor @a[score_killRow_min=3,killRow=3] (pour le premier). Ceci active un comparateur qui va mettre les messages au(x) joueur(s), tout en donnant des coins et tout les trucs.
    Exemple :
    3 kills in a row !
    [+2 coins]

    Le truc cool avec ce système, c'est qu'il marche même si plusieurs joueurs ont fait 3 kills sans mourir en même temps, ça changera rien, ça donnera tout aux joueurs.

    - Pour les levels, je /testfor comme au dessus. Ceci activera un comparateur qui va ajouter un level. Cool. Sauf que ce comparateur va RESTER ACTIVE !

    Voila, en espérant que des personnes pourront m'aider et que j'ai donné toutes les informations nécessaires pour ceux qui s'y connaissent.

    :diamond:Jbip:diamond:
     
  2. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Ton truc est peut être mieux fait que tu ne le penses...

    Mettons que j'ai 2 kills et que je tue un nouveau joueur. Mon score "killRow" passe alors à 3.
    Ton "testfor" s'active et un bloc de commande derrière me donne un niveau (validant le 3ème kill)
    Si j'ai trois niveau, ça voudrait donc dire que j'ai reçu les bonus et par conséquent, le testfor devrait s'éteindre.

    Il suffit donc de le modifier de la manière suivante:
    Code (Command Block):
    /testfor @a[score_killRow_min=3,killRow=3,l=2]
    Et petit plus pour augmenter la précision du système (dans le cas où il y aurait deux kills à suivre et que l'un n'ai pas été détecté), puisqu'après le testfor la condition sera forcément fausse, tu peux forcer le passage à l'état "faux" avec ceci:
    Code (cpp):
    blockdata x y z {SuccessCount:0b}
    x, y et z, les coordonnées du bloc de commande pour le testfor.

    Un objectif lambda pourrait aussi remplacer les niveaux si tu souhaites tout mettre dans le scoreboard (ou si les niveaux peuvent être utilisé): le principe reste le même. Un objectif "dummy" qui suit l'objectif killRow avec un testfor de retard.
     
  3. Jbip

    Jbip Mineur

    Inscrit:
    31 Août 2013
    Messages:
    398
    Points:
    134
    Sexe:
    Homme
    Wooow un graaand merci à toi ! Ca a l'air de marcher niquel :)
     

Partager cette page