• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Afficher l'EXP gagné pendant un certain temps

    1.8.x
    1.8.9
    3
    9
    1251
    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.
    • Thoquent
      Thoquent dernière édition par

      Bonsoir,

      J’aimerais faire en sorte d’afficher le nombre d’expérience que gagne le joueur.
      Pour afficher le texte c’est bon:

      @SubscribeEvent
      @SideOnly(Side.CLIENT)
      public void onGuiInGameRender(RenderGameOverlayEvent.Text event) {
      Minecraft.getMinecraft().fontRendererObj.drawString("exp gagné", 25, 25, 0xFFFF00);
      }
      

      Mais le problème c’est que je ne sais pas comment faire pour savoir quand le joueur gagne de l’expérience et comment faire pour que le message ne reste qu’un petit temps (par exemple le joueur tue un mob, il y a juste marqué +2exp pendant par exemple 2 secondes)

      Pour l’afficher un certain temps c’est à moitié bon:
      faire une condition avec un **boolean **et si la condition est fausse le texte est vide.

      Mais comment faire pour passer le **boolean **sur **true **pendant 2 secondes ?
      Et comment savoir quand le joueur gagne de l’expérience ?

      J’ai un peu cherché mais sans succès… et pour le “timer” je ne m’y connais pas du tout

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

        Salut,
        Il faut faire une variable qui est égale nombreDxp (int) + une variable timer (int) + une variable gainXp (int aussi)
        Si le nombre d’xp actuelle du joueur n’est pas égale à la variable nombreDxp alors tu fais la différences deux pour avoir l’xp gagné (que tu affectes à la variable gainXp) et tu affectes à ta variable nombreDxp la nouvelle valeur de l’xp actuelle. En même temps tu mets la variable timer sur 60.

        Ensuite dans ta fonction de rendu si timer est > 0 tu fais timer–; et tu affiches ton texte.

        1 réponse Dernière réponse Répondre Citer 0
        • Thoquent
          Thoquent dernière édition par

          Pour récupérer l’expérience du joueur comment il faut faire ? C’est avec EntityPlayer ? Je ne sais pas comment récupérer le joueur :x

          Sinon le texte s’affiche bien le temps voulu ! Merci 🙂

          1 réponse Dernière réponse Répondre Citer 0
          • Deleted
            Deleted dernière édition par

            Minecraft.getMinecraft().thePlayer.experienceTotal;

            1 réponse Dernière réponse Répondre Citer 1
            • Thoquent
              Thoquent dernière édition par

              Merci tout marche !

              1 réponse Dernière réponse Répondre Citer 0
              • Deleted
                Deleted dernière édition par

                N’oublie pas la balise résolu alors 😃

                1 réponse Dernière réponse Répondre Citer 1
                • Thoquent
                  Thoquent dernière édition par

                  J’allais le faire mais j’ai du m’absenter désolé.
                  Tout fonctionne mais j’aurais une autre question, est ce que c’est possible de faire de “timer” différemment ? Comme sur Bukkit par exemple.

                  1 réponse Dernière réponse Répondre Citer 0
                  • Deleted
                    Deleted dernière édition par

                    C’est-à-dire ? Précise car ici on ne fait pas tellement de plugin ^^’
                    Après je crois que forge inclut une classe timer, en tout cas en 1.7x, après je ne sais pas si elle répond à tes attentes ?

                    1 réponse Dernière réponse Répondre Citer 0
                    • Thoquent
                      Thoquent dernière édition par

                      En gros sur un serveur 20 tick c’est une seconde (quand ça ne lag pas) et tu peux faire des Scheduler / Runnable (je sais en faire mais je ne m’y connais pas plus que ça) et par exemple en tapant une commande, ça exécutera une action 20 ticks plus tard ou tout les 20 ticks par exemple (tu peux choisir le nombre de tick que tu veux)

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

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB