Facebook
From Shelby & Filip, 4 Months ago, written in C++.
Embed
Download Paste or View Raw
Hits: 73
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <zcmd>
  4. #include <md5>
  5.  
  6. //Modules
  7. #include "libraries/mysql_functions.inc"
  8. #include "libraries/config.inc"
  9. #include "libraries/functions.inc"
  10.  
  11. main(){}
  12.  
  13. public OnGameModeInit()
  14. {
  15.         if(!MySQL_Init()) return printf("[MySQL] Error while trying to connect with database. [ID: %d].", mysql_errno(m_sql));
  16.         else print("[MySQL] Successfully connected to the database.");
  17.  
  18.         return 1;
  19. }
  20.  
  21. public OnPlayerRequestClass(playerid, classid)
  22. {
  23.     new Cache:result;
  24.     result = mysql_query(m_sql, sprintf("SELECT player_uid FROM `players` WHERE `player_name` = '%s'", PlayerName(playerid)));
  25.    
  26.     SpawnPlayer(playerid);
  27.     TogglePlayerSpectating(playerid, 1);
  28.  
  29.     if(cache_num_rows() > 0) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", sprintf("Witamy na serwerze %s.\n\nAby móc zalogować się do gry wpisz hasło podane\n przy pierwszej rejestracji w polu poniżej.", PlayerName(playerid)), "Logowanie", "Anuluj");
  30.     else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Rejestracja", sprintf("Witamy na serwerze %s.\n\nAby rozpocząć rozgrywkę wpisz poniżej hasło, którego chcesz używać\ndo logowania się na serwer.", PlayerName(playerid)), "Rejestruj", "Anuluj");
  31.    
  32.     cache_delete(result);
  33.  
  34.     return 1;
  35. }
  36.  
  37. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  38. {
  39.     if(dialogid == DIALOG_LOGIN)
  40.     {
  41.         if(!response) return Kick(playerid);
  42.  
  43.         new Cache:result, password[33];
  44.  
  45.         result = mysql_query(m_sql, sprintf("SELECT `player_password` FROM `players` WHERE `player_name` = '%s'", PlayerName(playerid)));
  46.         cache_get(0, "player_password", password);
  47.         cache_delete(result);
  48.  
  49.         if(!strcmp(MD5_Hash(inputtext), password)) {
  50.             OnPlayerLogin(playerid);
  51.         } else {
  52.             ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logowanie", sprintf("Witamy na serwerze %s.\n\nPodane przez Ciebie hasło jest błędne.\nJeśli utraciłeś dostęp do swojego konta skontaktuj się z administatorem.", PlayerName(playerid)), "Logowanie", "Anuluj");
  53.         }
  54.  
  55.     }
  56.     else if(dialogid == DIALOG_REGISTER)
  57.     {
  58.         if(!response) return Kick(playerid);
  59.  
  60.         if(strlen(inputtext) <= 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Rejestracja", sprintf("Witamy na serwerze %s.\n\nPodane przez Ciebie hasło jest za krótkie.\nSpróbuj jeszcze raz używając dłuższego ciągu znaków.", PlayerName(playerid)), "Rejestruj", "Anuluj");
  61.  
  62.         mysql_query(m_sql, sprintf("INSERT INTO `players` VALUES (NULL, '%s', '%s', '%d')", PlayerName(playerid), MD5_Hash(inputtext), random(250)));
  63.  
  64.         OnPlayerLogin(playerid);
  65.     }
  66.     return 1;
  67. }