Guest User

Untitled

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