Partage
  • Partager sur Facebook
  • Partager sur Twitter

A propos d'un RPG texte

Comment gérer les caractéristiques des persos

    20 février 2006 à 19:35:12

    Bonjour à tous.

    Je suis en train de coder un RPG texte,mais je bloque sur la fonction de calcul des xp nécéssaires pour le passage au niveau suivant..

    En gros il faudrait que pour passer les premiers niveaux, le nombre d'xp requis soit faible, et que ce nombre augment de plus en plus au fur et à mesure..
    J'avais pensé à une fonction exponentielle, mais ça me parait pas trés approprié :|.

    D'ailleurs la même question se pose pour les hp etc... ^^
    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2006 à 19:43:49

      Ben tu mets des conditions dans la boucle principale :

       if (XPheros >= 11 && niveau == 1)
       {
            HP_max = ??? // HP_max étant la constante limitant les point de vie
            MP_max = ??? // MP_max étant la constante limitant les point de magie
            Niveau ++ // on incrémente de 1 le niveau du héros
            XPheros = 0 // on remet les XP à zéro et on recommence
       }
       if (XPheros >= 25 && niveau == 2)
       {
            HP_max = ??? // HP_max étant la constante limitant les point de vie
            MP_max = ??? // MP_max étant la constante limitant les point de magie
            Niveau ++ // on incrémente de 1 le niveau du héros
            XPheros = 0 // on remet les XP à zéro et on recommence
       }
      /*
      ect... ect......
      */

      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2006 à 19:53:54

        tu peux écrire un tableau qui contient l'XP nécessaire pour chaque niveau ?
        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2006 à 19:56:11

          Oui certes, mais l'idée c'était de ne pas avoir à coder ça pour 100 niveaux!

          En fait je veux une fonction calcul_xp(niveau).
          Cette fonction donne , en fonction du niveau actuel, le nombre d'xp nécéssaire pour atteindre le niveau suivant...
          A ce moment j'écris un code du style:
          if(xp >= calcul_xp(niveau))
          {
               //Mise à jour des Hp, Mp, niveau+1 etc...
          }


          Pourquoi ne pas mettre tout simplement:

          calcul_xp(int niveau)
          {
              int xp_necessaire =0;
              xp_necessaire = 100*niveau
          }


          Parce je veux quelque chose qui ne soit pas linéaire...
          Bon en fait, je pense que l'exemple des xp était mal choisi, car on aura bien besoin de plus en plus d'xp pour monter de niveau..(encore que pour atteindre le dernier niveau, faudra se lever de bonne heure...)

          Prenons celui des hp :p .Au départ le nombre d'hp augmente vite avec le niveau, puis cette augmentation diminue au fur et à mesure...

          P.S : j'ajoute que il y a quatres races différentes, 4 classes différentes, et que plutot d'avoir un nombre définie d'hp pour chaque niveau, je préfere les calculer en fonction de caractéristiques principales qui sont la force, l'endurance etc..C'est destiné à faciliter l'upgrade des persos.
          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2006 à 20:34:18

            Pour les HP c'est simple. à chaque niveau tu donnes un certain nombre de "points de stats", que les gens peuvent répartir en caracs (par exempe "Vitalité"), mais plus on a dans une stat, plus ca coute de "points de stats" pour augmenter encore d'un.
            • Partager sur Facebook
            • Partager sur Twitter
              20 février 2006 à 21:24:34

              Ok d'accord. Et dans ce cas j'ai qu'à mettre une fonction du genre
              nombre_de_points_necessaires(long nombre_de_points_de_stats)
              {
              return 10*nombre_de_points_de_stats;
              }

              la fonction "répond" qu'il faut 10 fois le nombre de points de stats actuel
              pour augmenter la stat d'un point.

              Merci ^^
              • Partager sur Facebook
              • Partager sur Twitter
                20 février 2006 à 21:39:56

                pour l'xp tu peu utiliser une fonction x²:


                long calcule_xp(const int niveau)
                {
                     long xpNecessaire = 50, lvl;//j'ai defini l'xp du premier niveau

                     for(lvl = 0; lvl<niveau;lvl++)
                     {
                          xpNecessaire *= xpNecessaire
                     }

                     xpNecessaire /= 15 //sinon je te raconte pas l'xp necessaire au bout de 3 niveau
                }


                ça repond a ta question?
                • Partager sur Facebook
                • Partager sur Twitter
                  20 février 2006 à 23:09:42

                  le mieux, ca reste de faire un tableau, comme dans tous les jeux qui existent en gros.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  A propos d'un RPG texte

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown