MFF

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

    My little (pony) système d'xp

    Planifier Épinglé Verrouillé Déplacé Sans suite
    8 Messages 3 Publieurs 1.9k 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.
    • isadorI Hors-ligne
      isador Moddeurs confirmés Modérateurs
      dernière édition par

      yop tous le monde j’ai encore un autre problème:
      je suis en train de faire un système d’xp pour mon serveur, j’ai déja l’équation pour les niveau/point d’xp nécessaire mais j’ai un bug:
      je vois avec les syso que les 50 d’xp ne son pas ajouter a la mort de l’entity et cela s’affiche deux fois, chose anormale, les syso reste a 0:

      
      2014-05-24 17:06:56 [Infos] [STDOUT] 0
      2014-05-24 17:06:56 [Infos] [STDOUT] 0
      2014-05-24 17:06:59 [Infos] [STDOUT] 0
      2014-05-24 17:06:59 [Infos] [STDOUT] 0
      2014-05-24 17:07:01 [Infos] [STDOUT] 0
      2014-05-24 17:07:01 [Infos] [STDOUT] 0
      2014-05-24 17:07:03 [Infos] [STDOUT] 0
      2014-05-24 17:07:03 [Infos] [STDOUT] 0
      2014-05-24 17:07:04 [Infos] [STDOUT] 0
      2014-05-24 17:07:04 [Infos] [STDOUT] 0
      2014-05-24 17:07:06 [Infos] [STDOUT] 0
      2014-05-24 17:07:06 [Infos] [STDOUT] 0
      
      

      voici le code dans l’entitée:

      
      public int expDonne = 50;
      public int expEnCour = GestionLevel.exp;
      
      public void onDeath(DamageSource damagesource)
      {
      GestionLevel.exp = expEnCour + expDonne;
      System.out.println(expEnCour);
      super.onDeath(damagesource);
      }
      
      

      code du calcul:

      
      public class GestionLevel
      {
      public static int exp;
      public int nextLevel;
      public int level = 1;
      public int xpActuel;
      public ElementType type;
      
      public void xp()
      {
      if(level == 1)
      {
      if(exp == 100)
      {
      level++;
      System.out.println(level);
      xpActuel = 100;
      }
      }
      if(level==2 && level <=70)
      {
      System.out.println("je suis lvl>1");
      System.out.println(level);
      nextLevel = level++;
      
      if(exp == 255*level+50*nextLevel+xpActuel)
      {
      xpActuel = 255*level+50*nextLevel+xpActuel;
      level++;
      }
      }
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • RedRelayR Hors-ligne
        RedRelay Moddeurs confirmés
        dernière édition par

        Bon déjà mettre des attribut en public alors qu’ils ne sont pas final c’est pas une bonne méthode.
        Ton code est très crade.
        En objet, on utilise les getters/setters.

        Ensuite ton problème est un problème de java.
        Apprend les bases.
        Les types primitif sont passé par valeur et non par référence contraitement aux objets.

        Tu ne modifies donc jamais la valeur de expEnCour.

        –------------------------------------------------------------------------------------
        Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

          Je suppose que c’est de l’exp pour chaque joueur ?

          Si oui, attends le tutoriel sur les propriété d’entitées, il est rédigé, et devrait bientôt être corrigé 😉

          "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
          ― Jordan B. Peterson

          1 réponse Dernière réponse Répondre Citer 0
          • isadorI Hors-ligne
            isador Moddeurs confirmés Modérateurs
            dernière édition par

            ok merci gugu t’assure 🙂

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

              J’assurerais un support pour celui-ci, pour aider a modifier le code montré, et faire des systèmes customisés. Pour ton cas d’exp, l’idée est assez simple si tu as l’équation

              "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
              ― Jordan B. Peterson

              1 réponse Dernière réponse Répondre Citer 0
              • isadorI Hors-ligne
                isador Moddeurs confirmés Modérateurs
                dernière édition par

                j’ai l"équation, je suis d’ailleur en train de faire un programme “xp” en C++ (étant donné que je le maîtrise mieux)

                1 réponse Dernière réponse Répondre Citer 0
                • RedRelayR Hors-ligne
                  RedRelay Moddeurs confirmés
                  dernière édition par

                  @‘Gugu42’:

                  Je suppose que c’est de l’exp pour chaque joueur ?

                  Si oui, attends le tutoriel sur les propriété d’entitées, il est rédigé, et devrait bientôt être corrigé 😉

                  Trop tard pour moi xD J’ai déjà créé mon système d’xp, je vais voir ce que ça change avec le tutoriel 😉

                  –------------------------------------------------------------------------------------
                  Si tu trouves mon intervention pertinente, n'hésite pas a m…

                  1 réponse Dernière réponse Répondre Citer 0
                  • isadorI Hors-ligne
                    isador Moddeurs confirmés Modérateurs
                    dernière édition par

                    bon j’ai fait une console application en C++ dont voici le code:

                    int main()
                    {
                    {
                    cout<<"exp:"< <endl;<br>cin>> expDonne;
                    cout<<"\n"< <endl;<br>exp = expDonne+exp;
                    
                    if(level == 1)
                    {
                    if(exp >= 100)
                    {
                    level++;
                    xpActuel = 100;
                    }
                    }
                    if(level>=2 || level <=70)
                    {
                    nextLevel=level+1;
                    if(exp >= 255*level+50*nextLevel+xpActuel)
                    {
                    cout<<"exp:"< <endl;<br>cout< <exp<<endl;<br>xpActuel = 255*level+50*nextLevel+xpActuel;
                    level++;
                    }
                    }
                    cout<<"level: "< <level<<endl;<br>cout<<"exp: "< <exp<<endl;<br>cout<<"xpActuel: "< <xpactuel<<endl;<br>return 0;
                    }
                    
                    

                    et je l’ai convertie en java:

                    
                    public static int Main()
                    {
                    System.out.print("exp:");
                    System.out.print("\n");
                    System.out.print("\n");
                    System.out.print("\n");
                    exp = expDonne + exp;
                    if (level == 1)
                    {
                    if (exp >= 100)
                    {
                    level++;
                    xpActuel = 100;
                    }
                    }
                    if (level >= 2 || level <= 70)
                    {
                    nextLevel = level + 1;
                    if (exp >= 255 * level + 50 * nextLevel + xpActuel)
                    {
                    System.out.print("exp:");
                    System.out.print("\n");
                    System.out.print(exp);
                    System.out.print("\n");
                    xpActuel = 255 * level + 50 * nextLevel + xpActuel;
                    level++;
                    }
                    }
                    System.out.print("level: ");
                    System.out.print(level);
                    System.out.print("\n");
                    System.out.print("exp: ");
                    System.out.print(exp);
                    System.out.print("\n");
                    System.out.print("xpActuel: ");
                    System.out.print(xpActuel);
                    System.out.print("\n");
                    }
                    
                    

                    après réaffectation dès variable j’obtiens:

                    
                    public static void Main()
                    {
                    if (level == 1)
                    {
                    if (exp >= 100)
                    {
                    level++;
                    xpActuel = 100;
                    }
                    }
                    if (level >= 2 || level <= 70)
                    {
                    nextLevel = level + 1;
                    if (exp >= 255 * level + 50 * nextLevel + xpActuel)
                    {
                    System.out.print("exp:");
                    System.out.print("\n");
                    System.out.print(exp);
                    System.out.print("\n");
                    xpActuel = 255 * level + 50 * nextLevel + xpActuel;
                    level++;
                    }
                    }
                    System.out.println("level: ");
                    System.out.println(level);
                    System.out.println("\n");
                    System.out.println("exp: ");
                    System.out.println(exp);
                    System.out.println("\n");
                    System.out.println("xpActuel: ");
                    System.out.println(xpActuel);
                    System.out.println("\n");
                    
                    }
                    
                    

                    je gagne alors bien les 50 exp par mob kill mais le nombre de lvl ne change pas… alors qu’en C++ oui</xpactuel<<endl;<br></exp<<endl;<br></level<<endl;<br></exp<<endl;<br></endl;<br></endl;<br></endl;<br>

                    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