Advertisement
Aninhaah

FS Registro e Login v1.1

Mar 20th, 2012
727
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.27 KB | None | 0 0
  1. #include <a_samp>
  2. #include <DOF2>
  3.  
  4. #define FileUsers       "Contas/%s.ini"
  5. #define DIALOG_REGISTRO 1
  6. #define DIALOG_LOGIN 2
  7. new SenhaErrada[MAX_PLAYERS];
  8. new bool: Conectado[MAX_PLAYERS] = false;
  9.  
  10. stock ReturnFileUser(playerid)
  11. {
  12.     new File[156],Name[MAX_PLAYER_NAME];
  13.     GetPlayerName(playerid,Name,sizeof(Name));
  14.     format(File,sizeof(File),FileUsers,Name);
  15.     return File;
  16. }
  17.  
  18. public OnFilterScriptInit()
  19. {
  20.     print("\n--------------------------------------");
  21.     print(" FS criado por Aninhaah");
  22.     print("--------------------------------------\n");
  23.     return 1;
  24. }
  25.  
  26. public OnFilterScriptExit()
  27. {
  28.     DOF2_Exit();
  29.     return 1;
  30. }
  31.  
  32.  
  33. public OnPlayerConnect(playerid)
  34. {
  35.     if(!DOF2_FileExists(ReturnFileUser(playerid))) return SendClientMessage(playerid,-1,"Olá, sua conta não é registrada. Para ter uma conta e salvar seus dados use /registrar.");
  36.     else if(DOF2_FileExists(ReturnFileUser(playerid))) return SendClientMessage(playerid,-1,"Olá, sua conta já é registrada. Para carregar seus dados use /logar.");
  37.     return 1;
  38. }
  39.  
  40. public OnPlayerDisconnect(playerid, reason)
  41. {
  42.     if(Conectado[playerid] == true)
  43.     {
  44.         SalvarPlayer(playerid);
  45.     }
  46.     Conectado[playerid] = false;
  47.     return 1;
  48. }
  49.  
  50. public OnPlayerCommandText(playerid, cmdtext[])
  51. {
  52.     if (strcmp(cmdtext, "/registrar",true) == 0)
  53.     {
  54.         if(DOF2_FileExists(ReturnFileUser(playerid))) return SendClientMessage(playerid,-1,"Essa conta já está registrada.");
  55.         new string[115];
  56.         format(string,sizeof(string),"Seu nome: %s\nDeseja mesmo se registrar? Se sim, digite uma senha, se não, clique em Cancelar", PlayerName(playerid));
  57.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT,"[NOME] - Registro", string, "Registrar","Cancelar");
  58.         return 1;
  59.     }
  60.     if(strcmp(cmdtext,"/logar", true) == 0)
  61.     {
  62.         if(!DOF2_FileExists(ReturnFileUser(playerid))) return SendClientMessage(playerid,-1,"Essa conta não está registrada. Se registre primeiro usando /registrar.");
  63.         if(Conectado[playerid] == true) return SendClientMessage(playerid,-1,"Você já está logado!");
  64.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"[Nome] - Login", "Para logar digite sua senha", "Logar","Cancelar");
  65.         return 1;
  66.     }
  67.     return 0;
  68. }
  69.  
  70. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  71. {
  72.     if(dialogid == DIALOG_REGISTRO)
  73.     {
  74.         if(!response) return SendClientMessage(playerid,-1,"Você decidiu não se registrar. Seus dados não serão salvos.");
  75.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"[NOME] - Registro","Digite uma senha para se registrar","Registrar","Cancelar");
  76.         if(strlen(inputtext) < 5 || strlen(inputtext) > 12) return ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"[NOME] - Registro","A senha deve ter de 5 a 12 caracteres","Registrar","Cancelar");
  77.         new string[70];
  78.         format(string,sizeof(string),"Conta registrada com sucesso! Senha: %s", inputtext);
  79.         SendClientMessage(playerid,-1,string);
  80.         DOF2_CreateFile(ReturnFileUser(playerid));
  81.         DOF2_SetString(ReturnFileUser(playerid),"Senha",inputtext);
  82.         DOF2_SaveFile();
  83.         SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
  84.         SpawnPlayer(playerid);
  85.         GivePlayerMoney(playerid, 1000);
  86.         GivePlayerWeapon(playerid, 24, 50);
  87.         SetPlayerScore(playerid,1);
  88.         Conectado[playerid] = true;
  89.         return 1;
  90.     }
  91.     if(dialogid == DIALOG_LOGIN)
  92.     {
  93.         if(!response) return SendClientMessage(playerid,-1,"Você decidiu não logar. Seus dados não serão carregados");
  94.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"[NOME] - Login","Digite sua senha","Logar","Cancelar");
  95.         if(strcmp(inputtext,DOF2_GetString(ReturnFileUser(playerid),"Senha"),true) == 0)
  96.         {
  97.             SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
  98.             SpawnPlayer(playerid);
  99.             GivePlayerMoney(playerid, 1000);
  100.             GivePlayerWeapon(playerid, 24, 50);
  101.             Conectado[playerid] = true;
  102.             CarregarPlayer(playerid);
  103.         }
  104.         else
  105.         {
  106.             if(SenhaErrada[playerid] == 4)
  107.             {
  108.                 SendClientMessage(playerid,-1,"Você foi banido por errar a senha 5 vezes.");
  109.                 Ban(playerid);
  110.             }
  111.             else if(SenhaErrada[playerid] < 4)
  112.             {
  113.                 SenhaErrada[playerid] ++;
  114.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"[NOME] - Login","Senha incorreta, tente novamente. Se errar a senha 5 vezes será banido!","Logar","Sair");
  115.             }
  116.         }
  117.         return 1;
  118.     }
  119.     return 1;
  120. }
  121. stock SalvarPlayer(playerid)
  122. {
  123.     if(DOF2_FileExists(ReturnFileUser(playerid)))
  124.     {
  125.         DOF2_SetInt(ReturnFileUser(playerid),"Level",GetPlayerScore(playerid));
  126.         DOF2_SetInt(ReturnFileUser(playerid),"Dinheiro",GetPlayerMoney(playerid));
  127.         DOF2_SaveFile();
  128.     }
  129. }      
  130.  
  131. stock CarregarPlayer(playerid)
  132. {
  133.     if(DOF2_FileExists(ReturnFileUser(playerid)))
  134.     {
  135.         SetPlayerScore(playerid, DOF2_GetInt(ReturnFileUser(playerid), "Level"));
  136.         SetPlayerMoney(playerid, DOF2_GetInt(ReturnFileUser(playerid), "Dinheiro"));
  137.     }
  138. }
  139.  
  140. stock PlayerName(playerid)
  141. {
  142.     new Name[MAX_PLAYERS];
  143.     GetPlayerName(playerid, Name, sizeof(Name));
  144.     return Name;
  145. }
  146.  
  147. stock SetPlayerMoney(playerid,ammount)
  148. {
  149.      ResetPlayerMoney(playerid);
  150.      GivePlayerMoney(playerid,ammount);
  151.      return 1;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement