Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un A-RPG

Comment faire les quêtes et tout?

    1 novembre 2006 à 2:55:19

    Bonsoir (ou bonjour) à tous,

    alors voilà, je commence la SDL, mais je prévois déjà un A-RPG (beaucoup plus tard, mais je prévois quand même). Pour ceux qui ne connaissent pas, les A-RPG (Action-RPG) sont les RPG de style Zelda.

    La question que je me pose est la suivante: Comment faire les quêtes (exemple, le personnage doit aller à telle place précise et rapporter un chien, la quete se complète, il recoit un biscuit et passe à une quête suivante.)?

    C'est un immense enchainement de if, switch et autres?

    Merci de me répondre!
    • Partager sur Facebook
    • Partager sur Twitter
      1 novembre 2006 à 9:04:52

      Haha !
      *Se rappelle ses débuts en C, il avait un A-RPG en console ça roxxait*

      Bref, je sais pas comment les pros font, mais moi je passerais par des fichiers quetes, qui ont un format bien précis (que tu créé toi meme), par exemple :

      npc "Vlad"
      dialog_intro "Salut, blablalblabla"
      type tuer
      objectif "Le maychant pas beau à tuer"
      recompense "Une putain d'épée orange fluorescence qui tue tout"
      dialog_fin "Haha, bien joué :)"

      La première commande, npc, indique le pnj qui te donne la quete (ici vlad)
      Ensuite tu as le dialog d'introduction (qui te dit ce que tu dois faire toussa, quand tu parles à Vlad)
      type : indique le type de la quete (chercher quelque chose, tuer quelqu'un)
      objectif, c'est l'objectif de la quete (par exemple l'objet à retrouver, le gars à tuer ....)
      recompense : Bah c'est la récompense :)
      dialog_fin : Le dialogue prononcé par Vlad, quand tu lui amènes la tete du maychant pas beau à tuer

      Après tu te fais une liste de fichier comme ça, un module qui les charge en mémoire et qui à chaque fois que le héros fait quelque chose vérifie que c'est pas un perso de quete ou autre :)
      • Partager sur Facebook
      • Partager sur Twitter
        1 novembre 2006 à 18:13:18

        Je pense qu'avant de te lancer dans quelques choses d'aussi complexe tu devrais bien maîtriser les bases.
        Sinon pour les quêtes à mon avis grâce à la programmation modulaire tu pourrais faire un fichier source du genre quete.c qui manipule les quêtes stockées dans un fichier, tu numérotes les quêtes de façon incrémentale dans ton fichier avec un flag du genre 0=>Pas découverte, 1=>En cours, 2=>terminée
        • Partager sur Facebook
        • Partager sur Twitter
          2 novembre 2006 à 2:29:04

          Très bien, merci beaucoup de vos réponses!

          Euh..asmanur

          T'es certain que le C reconnaitrait ce type de formule:
          npc "Vlad"
          dialog_intro "Salut, blablalblabla"
          type tuer
          objectif "Le maychant pas beau à tuer"
          recompense "Une putain d'épée orange fluorescence qui tue tout"
          dialog_fin "Haha, bien joué :)"


          J'ai des doutes :o
          Sinon si tu pouvais expliquer un peu plus en détail j'apprécierais s'il-vous-plait.

          Merci
          • Partager sur Facebook
          • Partager sur Twitter
            2 novembre 2006 à 8:47:04

            Citation : Moxcip

            Très bien, merci beaucoup de vos réponses!

            Euh..asmanur

            T'es certain que le C reconnaitrait ce type de formule:

            npc "Vlad"
            dialog_intro "Salut, blablalblabla"
            type tuer
            objectif "Le maychant pas beau à tuer"
            recompense "Une putain d'épée orange fluorescence qui tue tout"
            dialog_fin "Haha, bien joué :)"



            J'ai des doutes :o
            Sinon si tu pouvais expliquer un peu plus en détail j'apprécierais s'il-vous-plait.

            Merci



            Ben non ^^
            La difficulté est là, il faut faire un interpréteur de fichier en C sur ce format.
            Par exemple :

            int
            get_npc_name (quete *quete, const char * filename)
            {
                FILE* fichier = fopen (filename, "r");
                if (!fichier) return -1;
               
                /* Buffer temporaire */
                char buf[512];

                while (fgets(buf, 512, fichier))
                {
                            /* est-ce que le début de la chaine est "npc" ? */
                    if (! strncmp(buf,"npc", strlen("npc"))
                    {
                                    /* si oui on copie dans quete->npc */
                        strcpy(quete->npc, buf+strlen("npc "));
                        return 0;
                           
                    }
                    fclose (fichier);
                    return -1; /* Pas trouvé */
            }

            Cette fonction va chercher dans un fichier du type que je t'ai expliqué le nom du pnj s'occupant de la quete (enfin ça reste assez simplifié).
            • Partager sur Facebook
            • Partager sur Twitter
              3 novembre 2006 à 22:00:26

              Ah très bien, merci beaucoup!!
              • Partager sur Facebook
              • Partager sur Twitter

              Un A-RPG

              × 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