Advertisement
Guest User

Untitled

a guest
Aug 5th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.08 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. new SQL = -1, gQuery[256], gString[256];
  4.  
  5. #define function%0(%1)  forward %0(%1); public %0(%1)
  6. #define SCM             SendClientMessage
  7.  
  8. #define COLOR_RED   0xff0000FF
  9. #define COLOR_LGREEN    0x00ff00FF
  10.  
  11. new
  12.     incercariParola[MAX_PLAYERS];
  13.  
  14. enum pInfo {
  15.     pSQLID,
  16.     pName[MAX_PLAYER_NAME],
  17.     pPassword[32],
  18.     pEmail[32],
  19.     pGender
  20. }
  21.  
  22. new PlayerInfo[MAX_PLAYERS][pInfo];
  23.  
  24. enum {
  25.     // Register
  26.     DIALOG_REGISTER,
  27.     DIALOG_EMAIL,
  28.     DIALOG_GENDER,
  29.  
  30.     // Login
  31.     DIALOG_LOGIN
  32. }
  33.  
  34. main() { print("Gamemode-ul este in curs de procesare..."); }
  35.  
  36. public OnGameModeInit()
  37. {
  38.     SQL = mysql_connect("localhost", "root", "database", "");
  39.  
  40.     // Don't use these lines if it's a filterscript
  41.     SetGameModeText("Blank Script");
  42.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  43.     return 1;
  44. }
  45.  
  46. public OnPlayerRequestClass(playerid, classid)
  47. {
  48.     TogglePlayerSpectating(playerid, false);
  49.  
  50.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  51.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  52.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  53.     return 1;
  54. }
  55.  
  56. public OnPlayerConnect(playerid) {
  57.     incercariParola[playerid] = 0;
  58.  
  59.     gQuery[0] = EOS;
  60.     mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' LIMIT 1", GetName(playerid));
  61.     mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  62.     return 1;
  63. }
  64.  
  65. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  66.     switch(dialogid) {
  67.         case DIALOG_REGISTER: {
  68.             if(!response)
  69.                 return Kick(playerid);
  70.  
  71.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  72.                 return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te inregistra(min.6 caractere/max.32):", "Select", "Cancel");
  73.  
  74.             gQuery[0] = EOS;
  75.             mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  76.             mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  77.  
  78.             SCM(playerid, -1, "Parola a fost setata.");
  79.  
  80.             format(PlayerInfo[playerid][pPassword], 32, inputtext);
  81.  
  82.             ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Introdu adresa ta de Email:", "Select", "Cancel");
  83.         }
  84.         case DIALOG_EMAIL: {
  85.             if(!response)
  86.                 return Kick(playerid);
  87.  
  88.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  89.                 return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Introdu adresa ta de Email:", "Select", "Cancel");
  90.  
  91.             gQuery[0] = EOS;
  92.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  93.             mysql_tquery(SQL, gQuery, "", "", playerid);
  94.  
  95.             gString[0] = EOS;
  96.             format(gString, sizeof(gString), "Email setat: %s", inputtext);
  97.             SCM(playerid, -1, gString);
  98.  
  99.             format(PlayerInfo[playerid][pEmail], 32, inputtext);
  100.  
  101.             ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender", "Alege sexul:", "Masculin", "Feminin");
  102.         }
  103.         case DIALOG_GENDER: {
  104.             switch(response) {
  105.                 case 0: {
  106.                     PlayerInfo[playerid][pGender] = 1;
  107.                     SCM(playerid, -1, "Ai ales sexul feminin.");
  108.                     SCM(playerid, COLOR_LGREEN, "Te-ai inregistrat cu succes!");
  109.                 }
  110.                 case 1: {
  111.                     PlayerInfo[playerid][pGender] = 0;
  112.                     SCM(playerid, -1, "Ai ales sexul masculin.");
  113.                     SCM(playerid, COLOR_LGREEN, "Te-ai inregistrat cu succes!");
  114.                 }
  115.             }
  116.             gQuery[0] = EOS;
  117.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='%d' WHERE ID='%d", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
  118.             mysql_tquery(SQL, gQuery, "", "", playerid);
  119.  
  120.             SpawnPlayer(playerid);
  121.         }
  122.         case DIALOG_LOGIN: {
  123.             if(!response)
  124.                 return Kick(playerid);
  125.  
  126.             mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  127.             mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);           
  128.         }
  129.     }
  130.     return 1;
  131. }
  132.  
  133. function onLogin(playerid) {
  134.     switch(cache_num_rows()) {
  135.         case 0: {
  136.             incercariParola[playerid] ++;
  137.  
  138.             gString[0] = EOS;
  139.             format(gString, sizeof(gString), "Parola incorecta! (%d/3 incercari ramase)", incercariParola[playerid]);
  140.             SCM(playerid, COLOR_RED, gString);
  141.  
  142.             if(incercariParola[playerid] == 3) Kick(playerid);
  143.             else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te conecta:", "Select", "Cancel");
  144.         }
  145.         case 1: {
  146.             new
  147.                 result[64];
  148.  
  149.             PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  150.             PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  151.  
  152.             cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  153.             cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  154.             cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
  155.  
  156.             printf("%s (user: %d) s-a conectat. [Password: %s, Email: %s, Gender:%d]", GetName(playerid), PlayerInfo[playerid][pSQLID], PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pEmail], PlayerInfo[playerid][pGender]);
  157.        
  158.             for(new i = 0; i < 25; i++) SCM(playerid, -1, " ");
  159.             SCM(playerid, COLOR_LGREEN, "Te-ai conectat cu succes!");
  160.  
  161.             SpawnPlayer(playerid);
  162.         }
  163.     }
  164.     return 1;
  165. }
  166.  
  167. function insertAccount(playerid) {
  168.     PlayerInfo[playerid][pSQLID] = cache_insert_id();
  169.     printf("%s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
  170.     return 1;
  171. }
  172.  
  173. function checkAccount(playerid) {
  174.     switch(cache_num_rows()) {
  175.         case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te inregistra(min.6 caractere/max.32):", "Select", "Cancel");
  176.         case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te conecta:", "Select", "Cancel");
  177.     }
  178.     return 1;
  179. }
  180.  
  181. stock GetName(playerid) {
  182.     new playerName[MAX_PLAYER_NAME];
  183.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  184.     return playerName;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement