Burunu

Sistema de Login/Registro em DOF2 (Básico)

Dec 23rd, 2020 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.39 KB | None | 0 0
  1. //===========================Burunu=====================================//
  2. //==========NÃO ESQUEÇA DE CRIAR A PASTA CONTAS EM SCRIPFILES============//
  3. //==============É NECESSARIO A INCLUDE DOF2=============================//
  4. //===========================Burunu=====================================//
  5.  
  6. #include <a_samp>
  7. #include <DOF2>
  8.  
  9. #define Contas "Contas/%s.ini" //armazenamento dos dados na pasta contas//
  10.  
  11. #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
  12. #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
  13.  
  14. //==============CORES=================//
  15. #define BRANCO              0xFFFFFFFF
  16. #define AMARELO             0xFFCC00FF
  17. #define VERMELHO            0xFF0000FF
  18. #define VERDE               0x2AC40000
  19. //====================================//
  20.  
  21. #define Dialog_Registro     0 //DIALOG DO REGISTRO
  22. #define Dialog_Login        1 //DIALOG DO LOGIN
  23.  
  24. enum InfoPlayer {
  25.     Senha,
  26.     Skin,
  27.     Dinheiro
  28. };
  29.  
  30. new Player[MAX_PLAYERS][InfoPlayer]; //VARIAVEL QUE ARMAZENA OS DADOS DO PLAYER(ENUM)
  31. new Erro[MAX_PLAYERS]; //ARMAZENA O ERRO DA SENHA
  32.  
  33. public OnGameModeExit()
  34. {
  35.     DOF2_Exit(); //Finalizando a include DOF2//
  36.  
  37.     return 1;
  38. }
  39.  
  40. public OnPlayerRequestClass(playerid, classid){
  41.  
  42.     if(DOF2_FileExists( GetPlayerArquivo( playerid ) ) ) {
  43.         ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login", "Digite Sua Senha Para Entrar!","Entrar","Sair");
  44.     }
  45.     else{
  46.         ShowPlayerDialog( playerid, Dialog_Registro, DIALOG_STYLE_PASSWORD, "Registro", "Digite Sua Senha Para Se Registrar!", "Registrar","Sair");
  47.     }
  48.     return 1;
  49. }
  50.  
  51. public OnPlayerConnect(playerid){
  52.    
  53.     new string[64], Jogador[MAX_PLAYER_NAME];//Ao Jogador entrar
  54.  
  55.     GetPlayerName(playerid, Jogador, sizeof(Jogador));//Ao Jogador entrar
  56.  
  57.     format(string, sizeof(string),"|INFO| %s Entrou No Servidor",Jogador);//Mensagem no chat qnd o jogador entrar//
  58.     SendClientMessageToAll(AMARELO, string);
  59.  
  60.     return 1;
  61. }
  62.  
  63. public OnPlayerDisconnect(playerid, reason){
  64.  
  65.     SavePlayer(playerid); //SALVA A CONTA DO PLAYER
  66.     DOF2_SaveFile();//SALVA OS ARQUIVOS EM DOF2
  67.  
  68.     return 1;
  69. }
  70.  
  71. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  72. {
  73.     switch(dialogid){
  74.  
  75.     case Dialog_Registro:
  76.     {
  77.         if( response )
  78.         {
  79.             if( strlen( inputtext ) < 5 || strlen( inputtext ) > 20 || !strlen( inputtext ) )
  80.             {
  81.  
  82.                 ShowPlayerDialog( playerid, Dialog_Registro ,DIALOG_STYLE_PASSWORD, "Registro", "Sua Senha Deve Conter No Minimo 5 Caracteres!\nE No Maximo 20!\nTente Novamente!","Registrar","Sair" );
  83.  
  84.                 return 1;
  85.             }
  86.  
  87.             // Criar Arquivo E Colocar Os Valores //
  88.             DOF2_CreateFile( GetPlayerArquivo( playerid ) );
  89.             DOF2_SetString( GetPlayerArquivo( playerid ),"Senha", inputtext );
  90.             DOF2_SetInt( GetPlayerArquivo( playerid ), "Skin" ,0 ); //AQUI NO "0" VOCE COLOCA O NUMERO DA SKIN DESEJADA
  91.             DOF2_SetInt( GetPlayerArquivo( playerid ),"Dinheiro", 50000 ); //ao se registrar ganha 50000
  92.             DOF2_SetInt( GetPlayerArquivo( playerid ),"Profissao", 5 );
  93.            
  94.  
  95.             SendClientMessage(playerid, 0x19B519FF, "Registrado Com Sucesso!.");
  96.  
  97.             ShowPlayerDialog( playerid, Dialog_Login ,DIALOG_STYLE_PASSWORD, "Login", "Digite Sua Senha Registrada Abaixo Para Fazer O Login!","Logar","Sair" );
  98.  
  99.         }
  100.         else Kick( playerid );
  101.     }
  102.  
  103.     case Dialog_Login:
  104.     {
  105.         if( response )
  106.         {
  107.             if( strlen( inputtext ) < 5 || strlen( inputtext ) > 20 || !strlen( inputtext ) )
  108.             {
  109.  
  110.                 SendClientMessage( playerid, -1, "Digite Sua Senha Corretamente!." );
  111.                 ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login","Digite Sua Senha Para Entrar!","Entrar","Sair");
  112.  
  113.                 return 1;
  114.             }
  115.             if( strcmp( inputtext, DOF2_GetString( GetPlayerArquivo( playerid ), "Senha" )) == 0 )
  116.             {
  117.  
  118.                 LoadPlayer( playerid );//carrega a conta do player
  119.                 SpawnPlayer(playerid);//spawna o player (remove o botão de SPAWN)
  120.  
  121.                 SendClientMessage(playerid, 0x19B519FF, "Logado Com Sucesso!.");
  122.  
  123.             }
  124.             else
  125.             {
  126.                 Erro[ playerid ] ++; // Aquivo adiciona + 1 a variavel erro...
  127.                 if ( Erro[ playerid ] == 5 ){ SavePlayer(playerid); Kick ( playerid ); } // se a variavel chegar a 5, kicka o player pois ele errou 5 vezes a senha.
  128.  
  129.                 SendClientMessage( playerid, -1, "Digite Sua Senha Corretamente!." );
  130.                 ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login","Digite Sua Senha Para Entrar!","Entrar","Sair");
  131.  
  132.             }
  133.         }
  134.         else{
  135.  
  136.          SavePlayer( playerid );//salva a conta do player
  137.          Kick( playerid );
  138.  
  139.         }
  140.      }
  141.  
  142.     }
  143.    return 1;
  144. }
  145.  
  146. GetPlayerArquivo(playerid){ //Função que ira pegar/salvar os arquivos do player
  147.     new ArquivoPlayer[ 30 ];
  148.     format( ArquivoPlayer, sizeof( ArquivoPlayer ), Contas, GetPlayerNameEx( playerid ) ); //formata para salvar na pasta contas
  149.     return ArquivoPlayer;
  150. }
  151.  
  152. stock GetPlayerNameEx(playerid){//Função que irá pegar o nome do player
  153.     new Nome[MAX_PLAYER_NAME];
  154.     GetPlayerName(playerid, Nome, sizeof(Nome));
  155.     return Nome;
  156. }
  157.  
  158. SavePlayer(playerid){ //função para salvar a conta do player
  159.  
  160.     if( DOF2_FileExists( GetPlayerArquivo( playerid ) ) ){
  161.  
  162.         DOF2_CreateFile(GetPlayerArquivo(playerid));
  163.  
  164.         DOF2_SetInt( GetPlayerArquivo( playerid ), "Skin", Player[ playerid ][ Skin ] );
  165.         DOF2_SetInt( GetPlayerArquivo( playerid ), "Dinheiro", GetPlayerMoney( playerid ));
  166.  
  167.         DOF2_SaveFile();
  168.  
  169.     }
  170.     return 1;
  171. }
  172.  
  173. LoadPlayer(playerid){ //função que irá carregar a conta do player
  174.  
  175.     if( DOF2_FileExists( GetPlayerArquivo( playerid ) ) ){
  176.  
  177.         Player[ playerid ][ Skin ] = DOF2_GetInt( GetPlayerArquivo( playerid ), "Skin" );
  178.         Player[ playerid ][ Dinheiro ] = DOF2_GetInt( GetPlayerArquivo( playerid ), "Dinheiro" );
  179.  
  180.         GivePlayerMoney( playerid, Player[ playerid] [ Dinheiro ] );
  181.         SetPlayerSkin(playerid, Player[ playerid ][ Skin ] );
  182.  
  183.     }
  184.  
  185.     return 1;
  186. }
  187.  
  188. forward Kicka(p); public Kicka(p) { //KICKAR
  189.     #undef Kick
  190.     Kick(p);
  191.     #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
  192.     return 1;
  193. }
  194.  
  195.  
  196. forward Bana(p); public Bana(p) {//BANIR
  197.     #undef Ban
  198.     Ban(p);
  199.     #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
  200.     return 1;
  201. }
Add Comment
Please, Sign In to add comment