Guest User

Untitled

a guest
Aug 25th, 2018
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.32 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. #define COLOR_YELLOW    0xffff00FF
  11.  
  12. new
  13.     incercariParola[MAX_PLAYERS];
  14.  
  15. enum pInfo {
  16.     pSQLID,
  17.     pName[MAX_PLAYER_NAME],
  18.     pPassword[32],
  19.     pGender,
  20.     pAge,
  21.     pEmail[32]
  22. }
  23.  
  24. new PlayerInfo[MAX_PLAYERS][pInfo];
  25.  
  26. enum {
  27.     // Register
  28.     DIALOG_REGISTER,
  29.     DIALOG_GENDER,
  30.     DIALOG_AGE,
  31.     DIALOG_EMAIL,
  32.  
  33.     // Login
  34.     DIALOG_LOGIN
  35. }
  36.  
  37. main() { }
  38.  
  39. public OnGameModeInit()
  40. {
  41.     SQL = mysql_connect("secret", "secret", "secret", "secret");
  42.  
  43.     // Don't use these lines if it's a filterscript
  44.     SetGameModeText("RPG Romania v0.02");
  45.     AddPlayerClass(0, 1673.9183, 1447.8816, 10.7840, 268.1043, 0, 0, 0, 0, 0, 0);
  46.     return 1;
  47. }
  48.  
  49. public OnPlayerRequestClass(playerid, classid)
  50. {
  51.     TogglePlayerSpectating(playerid, false);
  52.    
  53.     SetPlayerPos(playerid, 1673.9183, 1447.8816, 10.7840);
  54.     SetPlayerCameraPos(playerid, 1817.4180,1461.2587,43.6696);
  55.     SetPlayerCameraLookAt(playerid, 1817.4180,1461.2587,43.6696);
  56.     return 1;
  57. }
  58.  
  59. public OnPlayerConnect(playerid) {
  60.     incercariParola[playerid] = 0;
  61.  
  62.     gQuery[0] = EOS;
  63.     mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' LIMIT 1", GetName(playerid));
  64.     mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  65.     return 1;
  66. }
  67.  
  68. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  69.     switch(dialogid) {
  70.         case DIALOG_REGISTER: {
  71.             if(!response)
  72.                 return Kick(playerid);
  73.  
  74.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  75.                 return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "SERVER: Registration", "Welcome to the B-Friends RPG Server\n\nPlease enter your desired password below!", "Register", "Cancel")
  76.                     && SCM(playerid, COLOR_RED, "Parola trebuie sa contina intre 6 si 32 caractere!");
  77.  
  78.             gQuery[0] = EOS;
  79.             mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  80.             mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  81.  
  82.             gString[0] = EOS;
  83.             format(gString, sizeof(gString), "Welcome to B-Friends RPG, %s.", GetName(playerid));
  84.             SCM(playerid, COLOR_YELLOW, gString);
  85.  
  86.             format(PlayerInfo[playerid][pPassword], 32, inputtext);
  87.  
  88.             ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Alege sexul caracterului", "Alege sexul caracterului tau.", "Barbat", "Femeie");
  89.         }
  90.         case DIALOG_GENDER: {
  91.             switch(response) {
  92.                 case 0: {
  93.                     PlayerInfo[playerid][pGender] = 0;
  94.                     SCM(playerid, COLOR_YELLOW, "Sex setat: femeie.");
  95.                 }
  96.                 case 1: {
  97.                     PlayerInfo[playerid][pGender] = 1;
  98.                     SCM(playerid, COLOR_YELLOW, "Sex setat: barbat.");
  99.                 }
  100.             }
  101.             gQuery[0] = EOS;
  102.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='%d' WHERE ID='%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
  103.             mysql_tquery(SQL, gQuery, "", "", playerid);
  104.  
  105.             ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Varsta", "Scrie varsta caracterului tau:", "Ok", "");
  106.         }
  107.         case DIALOG_AGE: {
  108.             if(!response)
  109.                 return Kick(playerid)
  110.  
  111.             new tmppass[64];
  112.             mysql_real_escape_string(inputtext, tmppass);
  113.             new age = strval(tmppass);
  114.             if(age > 7 && age < 50) {
  115.                 PlayerInfo[playerid][pAge] = age;
  116.                 gQuery[0] = EOS;
  117.                 mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Age`='%d' WHERE `ID`='%d'", PlayerInfo[playerid][pAge], PlayerInfo[playerid][pSQLID]);
  118.                 mysql_tquery(SQL, gQuery, "", "", playerid);
  119.  
  120.                 ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Email:\n(ex: my_email@yahoo.com)", "Ok", "");
  121.                 SCM(playerid, -1, "Introdu adresa de email. Emailul te poate ajuta pentru a-ti recupera parola, in caz ca o uiti.");
  122.             }
  123.             else return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Varsta", "Scrie varsta caracterului tau:", "Ok", "");
  124.         }
  125.         case DIALOG_EMAIL: {
  126.             if(!response)
  127.                 return Kick(playerid);
  128.  
  129.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  130.                 return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Email:\n(ex: my_email@yahoo.com)", "Ok", "")
  131.                     && SCM(playerid, COLOR_RED, "Emailul trebuie sa contina intre 6 si 32 caractere!");
  132.  
  133.             gQuery[0] = EOS;
  134.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  135.             mysql_tquery(SQL, gQuery, "", "", playerid);
  136.  
  137.             gString[0] = EOS;
  138.             format(gString, sizeof(gString), "Email setat: %s", inputtext);
  139.             SCM(playerid, COLOR_YELLOW, gString);
  140.  
  141.             format(PlayerInfo[playerid][pEmail], 32, inputtext);
  142.  
  143.             SpawnPlayer(playerid);
  144.  
  145.             SCM(playerid, COLOR_YELLOW, "Distractie placuta!");
  146.         }
  147.         case DIALOG_LOGIN: {
  148.             if(!response)
  149.                 return Kick(playerid);
  150.  
  151.             mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  152.             mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);           
  153.         }
  154.     }
  155.     return 1;
  156. }
  157.  
  158. function onLogin(playerid) {
  159.     switch(cache_num_rows()) {
  160.         case 0: {
  161.             incercariParola[playerid] ++;
  162.  
  163.             gString[0] = EOS;
  164.             format(gString, sizeof(gString), "Parola incorecta! (%d/3 incercari ramase)", incercariParola[playerid]);
  165.             SCM(playerid, COLOR_RED, gString);
  166.  
  167.             if(incercariParola[playerid] == 3) Kick(playerid);
  168.             else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "SERVER: Login", "Welcome to the B-Friends RPG Server\n\nPlease enter your password below!", "Login", "Cancel");
  169.         }
  170.         case 1: {
  171.             new
  172.                 result[64];
  173.  
  174.             PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  175.             PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  176.  
  177.             cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  178.             cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  179.             cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
  180.  
  181.             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]);
  182.        
  183.             for(new i = 0; i < 25; i++) SCM(playerid, -1, " ");
  184.             SCM(playerid, COLOR_YELLOW, "Te-ai conectat cu succes!");
  185.  
  186.             SpawnPlayer(playerid);
  187.         }
  188.     }
  189.     return 1;
  190. }
  191.  
  192. function insertAccount(playerid) {
  193.     PlayerInfo[playerid][pSQLID] = cache_insert_id();
  194.     printf("%s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
  195.     return 1;
  196. }
  197.  
  198. function checkAccount(playerid) {
  199.     switch(cache_num_rows()) {
  200.         case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "SERVER: Registration", "Welcome to the B-Friends RPG Server\n\nPlease enter your desired password below!", "Register", "Cancel");
  201.         case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "SERVER: Login", "Welcome to the B-Friends RPG Server\n\nPlease enter your password below!", "Login", "Cancel");
  202.     }
  203.     return 1;
  204. }
  205.  
  206. stock GetName(playerid) {
  207.     new playerName[MAX_PLAYER_NAME];
  208.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  209.     return playerName;
  210. }
Add Comment
Please, Sign In to add comment