MFF

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

    Afficher l'EXP gagné pendant un certain temps

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8.9
    9 Messages 3 Publieurs 1.4k Vues 1 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.
    • ThoquentT Hors-ligne
      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
      • robin4002R Hors-ligne
        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
        • ThoquentT Hors-ligne
          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
          • DeletedD Hors-ligne
            Deleted
            dernière édition par

            Minecraft.getMinecraft().thePlayer.experienceTotal;

            1 réponse Dernière réponse Répondre Citer 1
            • ThoquentT Hors-ligne
              Thoquent
              dernière édition par

              Merci tout marche !

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

                N’oublie pas la balise résolu alors 😃

                1 réponse Dernière réponse Répondre Citer 1
                • ThoquentT Hors-ligne
                  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
                  • DeletedD Hors-ligne
                    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
                    • ThoquentT Hors-ligne
                      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
                      ContactMentions Légales

                      MINECRAFT FORGE FRANCE © 2024

                      Powered by NodeBB