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

    My little (pony) système d'xp

    Sans suite
    3
    8
    1761
    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.
    • isador
      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
      • RedRelay
        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
        • Gugu
          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
          • isador
            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
            • Gugu
              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
              • isador
                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
                • RedRelay
                  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
                  • isador
                    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
                    Contact / Mentions Légales

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB