MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Récupérer le temps de jeu du joueur

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.7.10
    8 Messages 3 Publieurs 2.9k Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • FolganskyF Hors-ligne
      Folgansky Correcteurs
      dernière édition par

      Salut les gens, j’aurais besoin de récupérer le temps de jeu du joueur afin de mettre ça en condition pour des mécaniques de jeu

      Pour le moment je n’ai trouvé que:

      private static DecimalFormat decimalFormat = new DecimalFormat("########0.00");
          public static IStatType timeStatType = new IStatType()
          {
              private static final String __OBFID = "CL_00001474";
              /**
               * Formats a given stat for human consumption.
               */
              @SideOnly(Side.CLIENT)
              public String format(int p_75843_1_)
              {
                  double d0 = (double)p_75843_1_ / 20.0D;
                  double d1 = d0 / 60.0D;
                  double d2 = d1 / 60.0D;
                  double d3 = d2 / 24.0D;
                  double d4 = d3 / 365.0D;
                  return d4 > 0.5D ? StatBase.decimalFormat.format(d4) + " y" : (d3 > 0.5D ? StatBase.decimalFormat.format(d3) + " d" : (d2 > 0.5D ? StatBase.decimalFormat.format(d2) + " h" : (d1 > 0.5D ? StatBase.decimalFormat.format(d1) + " m" : d0 + " s")));
              }
          };
      

      SuperLoup m’a bien dis que “p_75843_1_” serait la solution, le nombre total de ticks.
      Sauf que je ne sais pas comment mettre ça en argument, pour l’instant je n’obtiens que des String x]

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Salut,
        Ça c’est juste la fonction qui met en forme la valeur. Il faudrait trouver où la fonction est appelé (ce que t’as dit de faire superloup) pour voir quelle variable est utilisé comme paramètre.

        C’est ce que j’ai fais, sauf que la valeur avec laquelle elle est appelé est le temps à laquelle le joueur lié une statistique (par exemple le temps depuis la dernière mort) qui n’est pas le temps total depuis lequel il a joué.

        Je ne sais pas si dans Minecraft il y a un compteur du temps total en jeu et si ce n’est pas le cas il va falloir l’implémenter toi même (en soit ce n’est pas compliqué, il suffit de mettre le temps actuel dans une variable au lancement du jeu puis de faire la différence entre cette variable et le temps actuel).

        1 réponse Dernière réponse Répondre Citer 0
        • FolganskyF Hors-ligne
          Folgansky Correcteurs
          dernière édition par

          Donc

              @SubscribeEvent
              public void clientConnectedToServer(ClientConnectedToServerEvent event)
              {
                  PlayerProperties props = PlayerProperties.get(Minecraft.getMinecraft().thePlayer);
                  // Heure de connexion
                  props.setTimeConnectedStart(props.getTimeConnectedStart() + Clock.systemDefaultZone().millis());
              }
          

          Puis

          long timePlayedYet = Clock.systemDefaultZone().millis() - props.getTimeConnectedStart();
                                  Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(EnumChatFormatting.GOLD + "Temps de jeu: " + timePlayedYet, c - 100, b - 12, 0);
                      
          
          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            @Folgansky a dit dans Récupérer le temps de jeu du joueur :

            props.getTimeConnectedStart() + Clock.systemDefaultZone().millis()

            Pourquoi additionner getTimeConnectedStart à Clock.systemDefaultZone() ?

            1 réponse Dernière réponse Répondre Citer 0
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par Folgansky

              Je récupère l’heure à laquelle le joueur se connecte pour en déduire le temps de jeu pour la sessions.
              Mais je dois l’additionner aux précédents temps de jeu pour finalement savoir le temps total joué.

              Pour la première connexion timeConnectedStart vaut 0.

              Je dois donc continuer en enregistrant le temps de jeu pour la session du joueur au moment où il se déco

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par robin4002

                En effet si tu veux compter uniquement le temps sur le serveur il faut en effet retirer le temps non connecté de cette valeur.

                1 réponse Dernière réponse Répondre Citer 0
                • AmaA Hors-ligne
                  Ama
                  dernière édition par

                  Je risque de dire un bêtise, mais il me semble que c’est de la 1.7, si tu as (et je me souviens plus) accès au statistiques du jeu, “”““normalement””“” y’a le temps de jeu total qui doit y être.

                  N.B: Après recherche, tu as bel et bien ce genre d’info dans les stats MC.
                  https://minecraft-fr.gamepedia.com/Statistiques

                  Si je t'ai filé un coup de main n'oublie pas le + / -
                  Par contre évite les demandes d'aides en MP, tu sera sympa'

                  La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                  Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                  1 réponse Dernière réponse Répondre Citer 0
                  • FolganskyF Hors-ligne
                    Folgansky Correcteurs
                    dernière édition par

                    Voui et ce qu’il y a dans mon premier message vient des Stats justement
                    Le tout est que je n’ai pas réussis à trouver où est réellement calculé le temps de jeu du joueur

                    1 réponse Dernière réponse Répondre Citer 0
                    • 1 / 1
                    • Premier message
                      Dernier message
                    Design by Woryk
                    ContactMentions Légales

                    MINECRAFT FORGE FRANCE © 2024

                    Powered by NodeBB