Ir para conteúdo
Entre para seguir isso  
Vasigap

Hall of Monsters - Meu primeiro jogo

Recommended Posts

mos    0
mos

Eu num toquei mais nele, mas minha próxima idéia era o sistema de itens e equipamentos. Essa utilidade de save é um pouco difícil de fazer sem que a pessoa possa manipular os dados por fora do jogo, pois acho que o save deve ser salvo em algum formato de arquivo e esse arquivo vai estar no computador dele... Já quanto ao login/senha não entendi o por quê disso, a num ser que você esteja pensando em fazer saves de jogadores distintos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
GM BLumaster    19
GM BLumaster

oO aqui e sessao dos super genios xD.

 

@Topico

 

So estou esperando voces acabar esse jogo e dai vou jogar para ver o resultado final xD.

 

 

Gostei da iniciativa um comecou o trabalho e 2 meterao a mao e melhorarao juntos daqui um dia teremos um novo jogo Maioria comeca assim e dai vira moda xD.

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Hehe, isso num é nada se comparado aos jogos da atualidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Pô então eu to fazendo 1 sistema de save BEM porcamente...por arquivo .dat...mais eu to empacando em umas partes... + daki a poko eu posto...já to acabando....o save tah feito, só to tentando faze o load agora...+ tah meio osso...

 

Sim , dah pra manipular....mais com o sistema pronto, depois eh soh bota um sistema pra criptografa que dae nao dah mais pra manipular.

 

Quanto ao sistema de itens e equipamentos...como que se vai faze ? =]

 

Ah e eu fiz um sistema de profissão tambem...mago e cavaleiro, mago ataca mais de magia e cavaleiro mais de ataque corporal...

 

Acho que só vo acaba tudo daki 2 semanas, q to em semana de prova =/

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Bom, resolvi faze um Log... e peço para quem quiser modificar o jogo, coloque no Log o que modificou...assim fica mais facil dar créditos e mostrar no que mexeu... =]

 

 

Log versão 9.6 - Editada por Vasigap
- Sistema de Criação de conta
- Sistema de Save/Load do Char
- Sistema de Profissão(Mago/Cavaleiro)
- Balanceamento do Gold ganho/perdido
- Danos conforme a vocação, e velocidade dos skills idem
- Identação do code( tava todo deformado =])

 

 

Quem for editar, coloque este log + o log do que fez no jogo =]

 

 

Vamos ao jogo, agora tah maiorzinho =]

 

 

 

 

 

/*
*  Exemplo 9.6 - Hall of Monsters
*  Propriedade de http://agnor.gamedev-pt.net
*
*  Autor : João Portela aka Agnor
*  Modificações : Vasigap;Matheus Jacob; mos
*  Data  : 20/02/2004 a 21/02/2004
*  Última modificação: 15/04/2008
*  Desc  : Hall of Monsters -  jogo-tutorial
*
*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <stdlib.h.>
#include <windows.h> //para usar o GetTickCount();
using namespace std;
/************************************
**************ESTRUTURAS*************
************************************/
struct Personagem
{
int hp; //os pontos de vida
int mp; //Pontos de Mana
int max_hp; // vai ser usada para recuperar o personagem no fim de cada partida
int max_mp; // como dito em cima.....
int forcaskill;
int forcaxp;
int forcamaxp;
int magiaskill;
int magiaxp;
int magiamaxp;
int xp; // a experiencia do personagem
int maxp; // max xp
int level; // level do personagem
};
struct Monstro
{
int hp; // HP do monstro
int forca; //forca do monstro
//monstros não necessitam de MP
char *nome; // necessário para podermos alterar o valor do nome sempre que quisermos...
//será explicado na aula 11 - referências e apontadores
};
/////////////////////////////////////
///////////Variáveis/////////////////
/////////////////////////////////////
Personagem  player = {50, 7, 50, 7, 1, 0, 10, 1, 0, 10, 0, 10, 1};
Monstro ORC = { 40, 10, "Orc" };
Monstro LIZARD = { 80, 15, "Lizard" };
Monstro SHADOW = { 160, 23, "Shadow" };
Monstro BAHAMUT = { 320, 35, "Bahamut" };
Monstro ULTIMA = { 1280, 78, "Ultima" };
Monstro Guardian = { 640, 53, "Guardian" }; // tentem matar este 
/*       *
Declarações das funções
*       */
       char nome[10];
       char senha[10];
       int exp,cura,prof,gold=0;
       int SlotSave;
       int SlotLoad;
       int chamarCurandeiro();
       int menuJogo();
       int chamarStatus();
       int chamarBatalha(Monstro monstro);
       int menuBatalha(Monstro monstro);
       int MonstroIA(Monstro monstro);
       int ganhou();
       int perdeu();
       int getRandom(int de,  int ate);
       int checkXP();
       int checkmagiaxp();
       int checkforcaxp();
       int inicio();
       int loadgame();
       int SaveGame();
//que main pequeno não é?
int main()
{
inicio();
cin.get();
return 0;
}
/* chamarBatalha(monstro);
Desc: chama uma Batalha para um determinado monstro ( ex: chamarBatalha(SHADOW); )
*/
int chamarBatalha (Monstro monstro)
{
system("cls");
cout << "\nApareceu um " << monstro.nome << endl;
menuBatalha(monstro);
return 0;
}
/* Cria o menu de Batalha ( utilizada por chamarBatalha(monstro); )
*/
int chamarStatus()
{
system("cls");
cout << "\nSeu level : " << player.level << endl;
     if (prof == 1)
     {
     std::cout << "Voce eh um Mago " << (char)173;      
     }
     else if (prof == 2)
     {
     cout << "Voce eh um Cavaleiro " << (char)174;
     }
cout << "\nSua atual xp :" <<player.xp << "/" << player.maxp << endl;
cout << "Seu gold : " << gold << endl;
cout << "\n\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
cout << "\nSeu level de magia : " << player.magiaskill;
cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
cout << "\n\nPara voltar ao menu: " << endl;
system("pause");
system("cls");    
 menuJogo();
return 0 ;
}
int chamarCurandeiro()
{
   int escolha;
               system("cls");
               cura = player.level*10;
               cout << "Ola aventureiro, se voce estiver ferido, posso lhe curar por " << cura << " gold." << endl;
               cout << "Voce tem " << gold << " gold e seu HP atual eh " << player.hp << '/' << player.max_hp << "." << endl;
               cout << "1 - Curar e voltar ao menu" << endl;
               cout << "2 - Sair e voltar ao menu" << endl;
               cin >> escolha;
               switch (escolha)
       {
              case 1:
              if (gold >= cura && player.hp != player.max_hp){
              cout << "\nVoce foi totalmente curado. Volte sempre." << endl;
              system("pause");
              system("cls");
              player.hp=player.max_hp;
              player.mp=player.max_mp;
              gold -= cura;
              menuJogo();
              break;
        }
              else if (player.hp == player.max_hp)
        {
              cout << "\nVoce nao esta ferido." << endl;
              system("pause");
              system("cls");
              menuJogo();
              break;
        }
              else
        {
              cout << "\nVoce nao tem gold suficiente." << endl;
              system("pause");
              system("cls");
              menuJogo();
              break;
        }
              case 2:
              system("cls");
              menuJogo();
              break;
              default:
              system("cls");
              cout << "Comando nao conhecido.... tente outra vez" << endl;
              chamarCurandeiro();
              break;
        }
         return 0 ;
       }
int chamarTreino()
{
   int escolha;
system("cls");
cout << "Ola aventureiro, se voce esta fraco, eu posso lhe treinar." << endl;
cout << "Voce tem " << gold << " gold e seu skill de forca/magia eh " << player.forcaxp << '/' << player.magiaxp << "." << endl;
cout << "1 - Treinar forca 14gold" << endl;
cout << "2 - Treinar magia 20gold" << endl;
cout << "3 - Voltar ao menu" << endl;
cin >> escolha;

       switch (escolha)
       {
              case 1:
                   int random;
              if (gold >= 14)
              {
              random = getRandom(1, 4);
       switch (random)
        {
              case 1:
              case 2:
              case 3:
                   int num; 
              srand(time(NULL));
              num=rand()%2+1;
              cout << "\nVoce teve um treino moderado e aumentou " << num << " pontos na skill de forca." << endl;
              player.forcaxp += num;
              system("pause");
              system("cls");
              menuJogo();
              break;
              case 4:
              srand(time(NULL));
              num=rand()%2+2;
              cout << "\nVoce teve um treino excelente e aumentou " << num << " pontos na skill de forca." << endl;
              player.forcaxp += num;
              system("pause");
              system("cls");
              menuJogo();
              break;
        }
              }
              else 
              {
              cout << "\nVoce nao tem gold suficiente." << endl;
              system("pause");
              system("cls");
              menuJogo();
              break;
              }
              case 2:
              if (gold >= 20)
              {
                 int random;
              random = getRandom(1, 4);
              switch (random)
        {
              case 1:
              case 2:
              case 3:
                   int num; 
              srand(time(NULL));
              num=rand()%2+1;
              cout << "Voce teve um treino moderado e aumentou " << num << " pontos na skill de magia." << endl;
              player.magiaxp += num;
              system("pause");
              system("cls");
              menuJogo();
              break;
              case 4:
              srand(time(NULL));
              num=rand()%2+2;
              cout << "Voce teve um treino excelente e aumentou " << num << " pontos na skill de magia." << endl;
              player.magiaxp += num;
              system("pause");
              system("cls");
              menuJogo();
              break;
         }
              }
              else 
              {
              cout << "Voce nao tem gold suficiente." << endl;
              system("pause");
              system("cls");
              menuJogo();
              break;
              }
              case 3:
              system("cls");
              menuJogo();
              break;
              default:
              system("cls");
              cout << "Comando nao conhecido.... tente outra vez" << endl;
              chamarCurandeiro();
              break;
        }
        return 0 ;
}
int menuBatalha (Monstro monstro)
{
   int escolha;
               system ("color 0C");
               cout << "\nSeu gold: " << gold << endl;
               cout << "Seu HP: " << player.hp << '/' << player.max_hp << endl;
               cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
               cout << "Seu level : " << player.level << endl;
               cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
               cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
               cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
               cout << "\nSeu level de magia : " << player.magiaskill;
               cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
               cout << "Escolha um ataque:" << endl;
               cout << "\n1 - Ataque normal" << endl;
               cout << "2 - Fogo" << endl;
               cin >> escolha;
               system("cls");
               switch (escolha) 
   {
               case 1:
               int num;
               srand(time(NULL));
               num=rand()%20;
               monstro.hp -= player.forcaskill*7+num;
               if (prof == 1)
               {
               player.forcaxp += 1;
               cout << "\nVoce atacou e tirou "<< player.forcaskill*6 << "+" << num << endl;
               }
               else
               {
               player.forcaxp += 3;
               cout << "\nVoce atacou e tirou "<< player.forcaskill*8 << "+" << num*1.1 << endl;
               }
               break;
               case 2:
               if (player.mp >= 7 )
                  {
               srand(time(NULL));
               num=rand()%10;
               monstro.hp -= player.magiaskill*10+num;
               if (prof == 1)
               {
               player.magiaxp += 4;
               player.mp -= 7;
               cout << "\nVoce usou o fogo e tirou "<< player.magiaskill*10 << "+" << num*1.1 << endl;
               }
               else
               {
               player.magiaxp += 2;
               player.mp -= 7;
               cout << "\nVoce usou o fogo e tirou "<< player.magiaskill*8 << "+" << num << endl;
               }
                    }
               else
               {
               cout << "\nSem mana para usar fogo...";
               menuBatalha(monstro);
               }
               break;

               default:
               system("cls");
               cout << "\nComando nao conhecido..." << endl;
               menuBatalha(monstro); 
               //estamos a utilizar recursividade nas funções: o menu vai ser chamado de novo
               break;
   }
               if ( monstro.hp <= 0 )
               ganhou(); //se só tiver uma instrução, um if não precisa de ter chavetas { ... }
               else
               MonstroIA(monstro);
               return 0;
}
// A intelegência artificial do Monstro. Para dar mais hipoteses aos jogadores
// só há 25% do Monstro utilizar o ataque especial
int MonstroIA(Monstro monstro)
{
               exp = monstro.forca/4;
                   int random;
               random = getRandom(1, 4);
               switch (random)
               {
               case 1:
               case 2:
               case 3:
               int num; 
               srand(time(NULL));
               num=rand()%20;
               cout << "\n" << monstro.nome << " atacou e tirou " << monstro.forca << "+" << num << endl;
               player.hp -= monstro.forca+num;
               break;
               case 4:
               srand(time(NULL));
               num=rand()%10;
               cout << "\n" << monstro.nome << " usou o seu ataque especial e tirou " << monstro.forca*2 << "+" << num << endl;
               player.hp -= monstro.forca*2+num;
               break;
               }
               if (player.hp <= 0)
               perdeu();
               else
               menuBatalha(monstro);
               return 0;
}
//a popular função getRandom
int getRandom(int de,  int ate) 
{
               srand(GetTickCount());
               int random = ( rand() % ate ) + de;
               return random;
}
// perdeu ((((
int perdeu()
{
               cout << "\nVoce morreu e perdeu gold. Mais sorte da proxima vez." << endl;
               player.hp = player.max_hp;
               gold = gold/4;
               if (player.xp >= player.maxp)
               checkXP();
               if (player.forcaxp >= player.forcamaxp)
               checkforcaxp();
               if  (player.magiaxp >= player.magiamaxp)
               checkmagiaxp();
               menuJogo();
               return 0;
}
//ganhou... e também subiu de nível :PPPP
int ganhou()
{
   int num,din; 
                srand(time(NULL));
                num=rand()%10;
                player.xp +=num+exp;
                gold +=num*2+1;
                din = num*2+1;
                system ("color 0C");
                cout << "\n\nVoce venceu!! Ganhou " << num << "+" << exp << " xp" << " e " << din << " gold." << endl;
                cout << "Atual xp " << player.xp << "/" << player.maxp << endl;
                system ("pause");
                system ("cls");
                if (player.xp >= player.maxp)
                checkXP();
                if (player.forcaxp >= player.forcamaxp)
                checkforcaxp();
                if  (player.magiaxp >= player.magiamaxp)
                checkmagiaxp();
//esperar.....
                cin.get();
                menuJogo();
                return 0;
}
// CheckXP
int checkXP()
{
                if (player.xp > player.maxp)
                cout << "[!] Voce Subiu de level ! Status recuperado. " << endl;
                if (prof == 1)
                {
                player.max_hp += 10;
                player.max_mp += 8;
                player.hp = player.max_hp; //recuperar a energia
                player.mp = player.max_mp;
                player.maxp += player.level*10;
                player.level += 1;
                system ("pause");
                system ("cls");
                }
                if (prof == 2)
                {
                player.max_hp += 15;
                player.max_mp += 5;
                player.hp = player.max_hp; //recuperar a energia
                player.mp = player.max_mp;
                player.maxp += player.level*10;
                player.level += 1;
                system ("pause");
                system ("cls");
                }
}
// Checkforcaxp
int checkforcaxp()
{
                cout << "[!] Voce subiu no Skill Forca ! " << endl;
                player.forcaskill += 1;
                player.forcamaxp += player.forcaskill *10;
                system ("pause");
                system ("cls");
}
// Checkmagiaxp
int checkmagiaxp()
{
                cout << "[!] Voce subiu no Skill de Magia ! " << endl;
                player.magiaskill += 1;
                player.magiamaxp += player.magiaskill *10;
                system ("pause");
                system ("cls");
}

int inicio()
{
    int escolha;
    int escolhaprof;

               cout << "O que voce deseja ? " << endl;
               cout << "1 - Criar uma nova conta." << endl;
               cout << "2 - Entar em uma existente." << endl;
               cin >> escolha;

               switch (escolha)
               {

               case 1:
               cout << "Diga seu nome Aventureiro." << endl; 
               cin >> nome;
               cout << "Digite sua senha "<< nome << endl;
               cin >> senha;
               cout << "Qual sera a sua profissao ? Digite 1 para mago ,ou 2 para Cavaleiro " << endl;
               cin >> escolhaprof;
               switch (escolhaprof)
                      {
               case 1 :
               prof = 1;
               break;
               case 2 :
               prof = 2;
               break;
               default:
                 cout << "Comando nao conhecido.... tente outra vez\n\n" << endl;
                 main();
                 break;
                     }
               cout << "Qual Slot Voce deseja salvar a sua conta ?" << endl;
               cin >> SlotSave;
               cout << "Parabens " << nome  << " Sua conta foi criada com sucesso ! " << endl;
               SaveGame();
               break;
               case 2 :
               cout << "Em qual Slot esta a sua conta ? Slot1,Slot2,Slot3 ?" << endl;
               cin >> SlotLoad;
               break;
               default:
               system("cls");
                 cout << "Comando nao conhecido.... tente outra vez\n\n" << endl;
                 main();
                 break;
               }

               if (SlotLoad == 1)
               {
               ifstream doc_in("save1.dat");
               char senha3[15];
               char load[256];
               char senha2[15];
               bool login;
               cout << "Digite a sua Senha" << endl;
               cin >> senha2;
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha3;
               if(strcmp(senha2,senha3) == 0)
               {

               system("cls");
               loadgame();
               }

               else
                   {
               cout << "Senha incorreta, tente denovo" << endl;
               system("pause");
               system("cls");
               main();         
                   }
               }
               if (SlotLoad == 2)
               {
               ifstream doc_in("save2.dat");
               char senha3[15];
               char load[256];
               char senha2[15];
               bool login;
               cout << "Digite a sua Senha" << endl;
               cin >> senha2;
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha3;
               if(strcmp(senha2,senha3) == 0)
                          {
               system("cls");
               loadgame();
                          }
               else
                          {
               cout << "Senha incorreta, tente denovo" << endl;
               system("pause");
               system("cls");
               main();
                          }
               }
               if (SlotLoad == 3)
               {
               ifstream doc_in("save3.dat");
               char senha3[15];
               char load[256];
               char senha2[15];
               cout << "Digite a sua Senha" << endl;
               cin >> senha2;
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha3;
               if(strcmp(senha2,senha3) == 0)
               {
               system("cls");
               loadgame();
               }

               else
                   {
               cout << "Senha incorreta, tente denovo" << endl;
               system("pause");
               system("cls");
               main();
                      }
               }
}
int SaveGame()
{
   if  (SlotSave == 1)
               {
               ofstream doc_out("save1.dat");
               doc_out << nome << "\nNome\n" << senha << "\nSenha\n"<< prof << "\nprof\n" << SlotSave << "\nSlot\n" << player.level <<"\nlevel\n" << player.xp << "\nXP \n" << player.maxp<< "\nMaxp \n" << player.magiaxp << "\nMagiaxp \n" << player.magiamaxp<< "\nmagiamaxp \n" 
               << player.magiaskill << "\nMagiaSkill\n" << player.forcaxp << "\nForcaxp \n" << player.forcamaxp << "\nForcamaxp \n" << player.forcaskill << "\nforcaskill \n" << player.hp << "\nHP \n" << player.max_hp << "\nmaxpHP \n" << player.mp << "\nmp \n" << player.max_mp<< "\nMaxMp \n" << gold << "\nGold \n" <<    endl;
               doc_out.close();
               system("cls");
               menuJogo();
               }
               else if (SlotSave == 2)
               {
               ofstream doc_out("save2.dat");
               doc_out << nome << "\nNome\n" << senha << "\nSenha\n"<< prof << "\nprof\n" << SlotSave << "\nSlot\n" << player.level <<"\nlevel\n" << player.xp << "\nXP \n" << player.maxp<< "\nMaxp \n" << player.magiaxp << "\nMagiaxp \n" << player.magiamaxp<< "\nmagiamaxp \n" 
               << player.magiaskill << "\nMagiaSkill\n" << player.forcaxp << "\nForcaxp \n" << player.forcamaxp << "\nForcamaxp \n" << player.forcaskill << "\nforcaskill \n" << player.hp << "\nHP \n" << player.max_hp << "\nmaxpHP \n" << player.mp << "\nmp \n" << player.max_mp<< "\nMaxMp \n" << gold << "\nGold \n" <<    endl;
               doc_out.close();
               system("cls");
               menuJogo();
               }
               else if (SlotSave == 3)
               {
               ofstream doc_out("save3.dat");
               doc_out << nome << "\nNome\n" << senha << "\nSenha\n"<< prof << "\nprof\n" << SlotSave << "\nSlot\n" << player.level <<"\nlevel\n" << player.xp << "\nXP \n" << player.maxp<< "\nMaxp \n" << player.magiaxp << "\nMagiaxp \n" << player.magiamaxp<< "\nmagiamaxp \n" 
               << player.magiaskill << "\nMagiaSkill\n" << player.forcaxp << "\nForcaxp \n" << player.forcamaxp << "\nForcamaxp \n" << player.forcaskill << "\nforcaskill \n" << player.hp << "\nHP \n" << player.max_hp << "\nmaxpHP \n" << player.mp << "\nmp \n" << player.max_mp<< "\nMaxMp \n" << gold << "\nGold \n" <<    endl;
               doc_out.close();
               system("cls");
               menuJogo();
               }
}
int loadgame()
{
   char load[256];
               if (SlotLoad == 1)
               {
               ifstream doc_in("save1.dat");
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha;
               doc_in >> load;
               doc_in >> prof;
               doc_in >> load;
               doc_in >> SlotSave;
               doc_in >> load;
               doc_in >> player.level;
               doc_in >> load;
               doc_in >> player.xp;
               doc_in >> load;
               doc_in >> player.maxp;
               doc_in >> load;
               doc_in >> player.magiaxp;
               doc_in >> load;
               doc_in >> player.magiamaxp;
               doc_in >> load;
               doc_in >> player.magiaskill;
               doc_in >> load;
               doc_in >> player.forcaxp;
               doc_in >> load;
               doc_in >> player.forcamaxp;
               doc_in >> load;
               doc_in >> player.forcaskill;
               doc_in >> load;
               doc_in >> player.hp;
               doc_in >> load;
               doc_in >> player.max_hp;
               doc_in >> load;
               doc_in >> player.mp;
               doc_in >> load;
               doc_in >> player.max_mp;
               doc_in >> load;
               doc_in >> gold;
               menuJogo();
               }
               else if (SlotLoad == 2)
               {
               ifstream doc_in("save2.dat");
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha;
               doc_in >> load;
               doc_in >> prof;
               doc_in >> load;
               doc_in >> SlotSave;
               doc_in >> load;
               doc_in >> player.level;
               doc_in >> load;
               doc_in >> player.xp;
               doc_in >> load;
               doc_in >> player.maxp;
               doc_in >> load;
               doc_in >> player.magiaxp;
               doc_in >> load;
               doc_in >> player.magiamaxp;
               doc_in >> load;
               doc_in >> player.magiaskill;
               doc_in >> load;
               doc_in >> player.forcaxp;
               doc_in >> load;
               doc_in >> player.forcamaxp;
               doc_in >> load;
               doc_in >> player.forcaskill;
               doc_in >> load;
               doc_in >> player.hp;
               doc_in >> load;
               doc_in >> player.max_hp;
               doc_in >> load;
               doc_in >> player.mp;
               doc_in >> load;
               doc_in >> player.max_mp;
               doc_in >> load;
               doc_in >> gold;
               menuJogo();
               }
               else if (SlotLoad == 3)
               {
               ifstream doc_in("save3.dat");
               doc_in >> nome;
               doc_in >> load;
               doc_in >> senha;
               doc_in >> load;
               doc_in >> prof;
               doc_in >> load;
               doc_in >> SlotSave;
               doc_in >> load;
               doc_in >> player.level;
               doc_in >> load;
               doc_in >> player.xp;
               doc_in >> load;
               doc_in >> player.maxp;
               doc_in >> load;
               doc_in >> player.magiaxp;
               doc_in >> load;
               doc_in >> player.magiamaxp;
               doc_in >> load;
               doc_in >> player.magiaskill;
               doc_in >> load;
               doc_in >> player.forcaxp;
               doc_in >> load;
               doc_in >> player.forcamaxp;
               doc_in >> load;
               doc_in >> player.forcaskill;
               doc_in >> load;
               doc_in >> player.hp;
               doc_in >> load;
               doc_in >> player.max_hp;
               doc_in >> load;
               doc_in >> player.mp;
               doc_in >> load;
               doc_in >> player.max_mp;
               doc_in >> load;
               doc_in >> gold;
               menuJogo();
               }
}
// o menu do jogo
int menuJogo()
{
   int escolha;
   int escolha2;
               system ("color 0F");
               cout << "\n1 - Orc HP:40 ATK:10" << endl;
               cout << "\n2 - Lizard HP:80 ATK:15" << endl;
               cout << "\n3 - Shadow HP:160 ATK:23" << endl;
               cout << "\n4 - Bahamut HP:320 ATK:35" << endl;
               cout << "\n5 - Guardian HP:640 ATK:53" << endl;
               cout << "\n6 - ULTIMA HP:1280 ATK:78" << endl;
               cout << "\n7 - Ir ao Curandeiro" << endl;
               cout << "\n8 - Veja seu Status!" << endl;
               cout << "\n9 - Mais Opcoes" << endl;
               cout << "\nEscolha uma opcao:" << endl;
               cin >> escolha;
               switch (escolha)
               {
               case 1:
               if (player.level <= 4)
                  {
               chamarBatalha(ORC);
               break;
                     }
               else 
               {
               system("cls");
               cout << "Seu level eh muito alto para enfrentar Orc." << endl;
               menuJogo();
               break;}
               case 2:
               if (player.level <= 8)
               {
               chamarBatalha(LIZARD);
               break;}
               else 
               {
               system("cls");
               cout << "Seu level eh muito alto para enfrentar Lizard." << endl;
               menuJogo();
               break;
               }
               case 3:
               if (player.level <= 12)
               {
               chamarBatalha(SHADOW);
               break;
               }
               else 
               {
               system("cls");
               cout << "Seu level eh muito alto para enfrentar Shadow." << endl;
               menuJogo();
               break;
               }
               case 4:
               if (player.level <= 16)
               {
               chamarBatalha(BAHAMUT);
               break;
               }
               else 
               {
               system("cls");
               cout << "Seu level eh muito alto para enfrentar Bahamut." << endl;
               menuJogo();
               break;
               }
               case 5:
               if (player.level <= 20)
               {
               chamarBatalha(Guardian);
               break;
               }
               else 
               {
               system("cls");
               cout << "Seu level eh muito alto para enfrentar Guardian." << endl;
               menuJogo();
               break;
               }
               case 6 :
               chamarBatalha(ULTIMA);
               break;
               case 7 :
               chamarCurandeiro();
               case 8 :
               chamarStatus();
               case 9 :
               system("cls");
               system ("color 0F");
               cout << "\n1 - Treinar Skills" << endl;
               cout << "\n2 - Salvar Jogo" << endl;
               cout << "\n3 - Voltar" << endl;
               cin >> escolha2;
               switch (escolha2)
               {
               case 1 :
               chamarTreino();     
               break;
               case 2 :
               SaveGame();     
               break;
               case 3 :
               menuJogo();
               }

               break;
               default:
               system("cls");
               cout << "Comando nao conhecido.... tente outra vez" << endl;
               menuJogo();
               break;
}
               return 0;
}

 

 

 

Sim quero dizer que este sistema de save tah bem tosco, mais pelo menos funciona....

E SIM qualqueh idiota com QI acima de 1 consegue modificar...mas agora q tah feito , eh soh encrypta q fica as pampa ! uhdashudas

 

Bom e quero agradecer o André por me dar suporte 24h por dia sem nunca reclamar ! uhsdhudsauh ele me ajudou MUITO =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
andre._    0
andre._

que legal, você ta evoluindo hein.

agora tenta dividir em arquivos .h .cpp, vai ficar muito melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Olha, tá faltando algumas coisas aí...

Por exemplo, se digitar uma slot que não seja 1,2 ou 3 o programa fecha. Outro exemplo é que quando pede pra selecionar uma slot para salvar o personagem, ele não especifica que tem que ser na 1,2 ou 3...

Tá legalzinho, talvez eu melhore o sistema depois, mas por hora tá legal.

 

Obs importante: a endentação que você fez está errada, um exemplo só:

Se eu uso um if, fica assim:

if (condição)

......comando

 

Esses pontinhos é pra significar que tem um espaço aí, o espaço pode variar, mas tem que ser no mínimo maior que uns 3 espaços.

Ou seja, você colocou muita coisa na mesma coluna, o que deixa o código mais incompreensível, pois fica tudo junto, sem espaços etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Snap    0
Snap

Eu tava jogando aqui e notei que quando treina não está salvando os pontos e perdendo dinheiro ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites
UrsO    0
UrsO

Compilia pra nos noobs ai em .exe

Não saco nada de compiliação;/

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

@Snap:

Não sei quanto a essa última versão do Vasigap, mas até a minha tava tudo certo.. Assim como você, também achei erros e já citei alguns. Se eu voltar a mexer no código, eu dou uma melhorada...

 

@UrsO:

 

Pra compilar é só baixar o Dev-Cpp (ou qualquer compilador de C++), criar um arquivo em branco, copiar o código dentro e procurar o botão compilar. Aí você joga à vontade.

Compartilhar este post


Link para o post
Compartilhar em outros sites
nycolas brus2    0
nycolas brus2

vc poderia nos ensinar a jogar sou noob nessa area mais to querendo aprender xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Primeiro, se você souber compilar, jogar é fácil. Você roda o executável e vai aparecer as opções (mensagens) na tela, daí você vai escolhendo e pronto...

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Nossa cara, eu estava vendo o inicio ao fim do seu jogo, estou ficando impressionado. Ta administrando muito bem seu jogo com as estruturas e tudo mais.

Quanto aos equipamentos, tenho uma idéia simples, use uma matriz. Declare uma matriz para enumerar cada equipamento e use para cada equipamento valores de defesa que serão subtraidos do resultado do random de dmg. Supondo que o eqp defenda 2, o random sai 4, o dano será 2.

Por exemplo, int equipamentos[6] = {10, 15, 20, 25, 30};

equipamentos[0] é 10, equipamentos[1] é 15, e assim vai. Simples não?

Depois use uma matriz para armas. int armas[3] = {10, 20, 30};

armas[0] tem um ataque de 10, o dano com uma espada de 10 é o dano normal (random) + dano da arma / 2 por exemplo...

Aí é só uma idéia, faça como quiser :D

abraços

 

 

--------------------------------------------------------

Editado

 

Hahahaha, acredita, gostei do teu joguim hsushushsus.

To aqui jogando ele ^^

Divertidinho, cria um sistema de recompensas além do gold :D

abraços

Editado por death26
Adicionar coisas

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap
Nossa cara, eu estava vendo o inicio ao fim do seu jogo, estou ficando impressionado. Ta administrando muito bem seu jogo com as estruturas e tudo mais.

Quanto aos equipamentos, tenho uma idéia simples, use uma matriz. Declare uma matriz para enumerar cada equipamento e use para cada equipamento valores de defesa que serão subtraidos do resultado do random de dmg. Supondo que o eqp defenda 2, o random sai 4, o dano será 2.

Por exemplo, int equipamentos[6] = {10, 15, 20, 25, 30};

equipamentos[0] é 10, equipamentos[1] é 15, e assim vai. Simples não?

Depois use uma matriz para armas. int armas[3] = {10, 20, 30};

armas[0] tem um ataque de 10, o dano com uma espada de 10 é o dano normal (random) + dano da arma / 2 por exemplo...

Aí é só uma idéia, faça como quiser :D

abraços

 

 

--------------------------------------------------------

Editado

 

Hahahaha, acredita, gostei do teu joguim hsushushsus.

To aqui jogando ele ^^

Divertidinho, cria um sistema de recompensas além do gold :D

abraços

 

 

 

 

uhasdhudasuh gostei da tua idéia...realmente eh muito prática, e boa...

 

u q eu tava pensando em faze tambem, seria um inventorio, em parte gráfica...mais eu nao sei absolutamente nada de parte gráfica...ae to dando uma lida...

 

eu iria fazer uma array bidimensional... como nao teria muitos equipamentos, seria uma array 5x4 +/- que seria o inventorio....e só o inventorio seria parte gráfica...ae quando voce colocasse uma espada no inventorio ficaria assim :

00000

10000

10000

10000

 

 

Axo que seria a maneira mais facil de se fazer...nao sei, dêem suas idéias =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Ae, faz matriz bidimensional, por coordenadas...

Uma matriz int inventario[5][4] pode parecer pouco mas é muito, são 20 itens. 20 Itens tem que ter muita criatividade :D

Eu posso te dar uma sugestão... é a seguinte:

Faça uma matriz int inventario [2][X], onde na matriz 2, represente [0] como os equipamentos e [1] como as armas, ou seja, [Y][X], que Y seria o tipo de item e X seria o numero da arma, localizando-as como por coordenadas ;D

Por exemplo:

 

inventario[0][1] seria o item 2 do inventario dos equipamentos

inventario[1][0] seria o item 1 do inventario das armas

inventario[0][5] seria o item 6 do inventario dos equipamentos

inventario[1][3] seria o item 4 do inventario das armas

e cada uma dessas "coordenadas" guarda um numero tipo int, que seria o dano da arma ;D

 

Quanto a parte gráfica eu poderia te ajudar, mas é complicado agora aplicar seu programa a um jogo gráfico, por que teria que 1º usar engine open GL, seu programa seria rodado em microsoft visual c++ 2008 express edition, e qualquer desenho feito não é feito no console, é aberto uma janela de OpenGL, ou seja, o programa iria rodar o jogo em console e você poderia fazer uma animação ou algo assim atravez de uma outra janela que abriria para representar a batalha, mas não aconselho mecher com graphic nesse seu programa, por que um jogo do nivel que você está fazendo na parte gráfica seria muito complexo, pelo fato de que o player não vai querer só ver a cena, vai querer poder participar da batalha também, entende?

Abraços!

Editado por death26

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap
Ae, faz matriz bidimensional, por coordenadas...

Uma matriz int inventario[5][4] pode parecer pouco mas é muito, são 20 itens. 20 Itens tem que ter muita criatividade :D

Eu posso te dar uma sugestão... é a seguinte:

Faça uma matriz int inventario [2][X], onde na matriz 2, represente [0] como os equipamentos e [1] como as armas, ou seja, [Y][X], que Y seria o tipo de item e X seria o numero da arma, localizando-as como por coordenadas ;D

Por exemplo:

 

inventario[0][1] seria o item 2 do inventario dos equipamentos

inventario[1][0] seria o item 1 do inventario das armas

inventario[0][5] seria o item 6 do inventario dos equipamentos

inventario[1][3] seria o item 4 do inventario das armas

e cada uma dessas "coordenadas" guarda um numero tipo int, que seria o dano da arma ;D

 

Quanto a parte gráfica eu poderia te ajudar, mas é complicado agora aplicar seu programa a um jogo gráfico, por que teria que 1º usar engine open GL, seu programa seria rodado em microsoft visual c++ 2008 express edition, e qualquer desenho feito não é feito no console, é aberto uma janela de OpenGL, ou seja, o programa iria rodar o jogo em console e você poderia fazer uma animação ou algo assim atravez de uma outra janela que abriria para representar a batalha, mas não aconselho mecher com graphic nesse seu programa, por que um jogo do nivel que você está fazendo na parte gráfica seria muito complexo, pelo fato de que o player não vai querer só ver a cena, vai querer poder participar da batalha também, entende?

Abraços!

 

 

Sim, do inventario, era isso +/- q eu tava pensando...

 

 

Quanto a parte gráfica, eu nao queria transformar o jogo inteiro...

 

Eu faria apenas o inventorio gráfico...ae quando você pegasse um iten, apareceria no seu inventorio( q eh gráfico) entendeu ? =]

 

Axo que daria um efeito no minimo engraçado...voce jogando pelo console e só o seu inventario desenhado no canto da tela huahhaha

 

 

No momento to tentando arruma o code, transformando tudo em classes...pra pode separa os arquivos,e coloca .h e .cpp q fica mais organizado...mais além de se chato, eh dificil ...mto confuso :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Vai fazer tudo isso em vão...

A parte gráfica de um jogo em OpenGL ou Direct X não usa console. O jogo aconteceria no console, porém existe uma funcao no console que chama por uma janela no Open GL e manda desenhar o que voce quer nesta janela. Ou seja, o jogo roda, quando chega X funcao, o seu programa chama uma janela de OpenGL, executa os codigos pre-programados em 3D e chama exit(0) que termina a janela do OpenGL.

Por isso falo, um jogo como esse voce deveria faze-lo todo grafico, o que seria muito dificil, entao o jeito eh ficar com o console mesmo. Se quiser fazer eu posso fazer o possivel para te ajudar, porem eu mesmo ja tendo criado algumas aplicacoes em OpenGL, ainda estou estudando, e estou quase chegando a parte de colisoes...

Seu jogo ficaria interessante em 2D, um "Tibia II" imagina? hahaha.

Bom, open GL pode pegar com funcoes simples as coordenadas X e Y do mouse e qualquer tecla do teclado, fazendo uma interatividade com o programa, entende? ;)

É só isso, precisando to ae, abracos!

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Estou percebendo que não acompanhei esse tópico por um tempo, mas eu lembro que a última vez que estava mechendo no jogo estava com um sistema de equipamentos relativamente simples, um de save em construção que seria mais complexo e tudo isso sem usar o console, mas sim aplicações gráficas no Hyper64, se bem que quanto mais imagens, o jogo vai ficando cada vez mais pesado, mas como são png's não chega a pesar tanto hehe. Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Não entendi quase nada do que você falou =P

Pesquisei o que é hyper64, então te pergunto:

Quem estava trabalhando com hyper64, você?

Se hyper64 trabalha com direct X por que não usar o direct X?

Geralmente PNG's não são usados em jogos, usa-se TGA, não sei por que.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
paulo246    0
paulo246

Como Faço Pra Compilha Eli Tem Que Salva Em Que Extenção?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×