Guest User

Untitled

a guest
May 19th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 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. TogglePlayerSpectating(playerid, false);
  53.  
  54. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  55. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  56. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  57. return 1;
  58. }
  59.  
  60. public OnPlayerConnect(playerid) {
  61. incercariParola[playerid] = 0;
  62.  
  63.  
  64. gQuery[0] = EOS;
  65. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
  66. mysql_tquery(SQL, gQuery, "CheckAccount", "i", playerid);
  67. return 1;
  68.  
  69. }
  70.  
  71. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  72. switch(dialogid){
  73. case DIALOG_REGISTER: {
  74. if(!response)
  75. return Kick(playerid);
  76.  
  77. if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  78. return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te putea inregistra (minim 6 caractere/ maxim 32):", "Select", "Cancel");
  79.  
  80. gQuery[0] = EOS;
  81. mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  82. mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  83.  
  84. gString[0] = EOS;
  85. format(gString, sizeof(gString), "Parola ta contine %d caractere.", strlen(inputtext));
  86. SCM(playerid, -1, gString);
  87.  
  88. format(PlayerInfo[playerid][pPassword], 32, inputtext);
  89.  
  90. ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Seteaza-ti adresa de email:", "Select", "Cancel");
  91.  
  92. }
  93. case DIALOG_EMAIL: {
  94. if(!response)
  95. return Kick(playerid);
  96.  
  97. if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  98. return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Seteaza-ti adresa de email:", "Select", "Cancel");
  99.  
  100. gQuery[0] = EOS;
  101. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email` ='%s' WHERE `ID` = '%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  102. mysql_tquery(SQL, gQuery, "", "");
  103.  
  104. gString[0] = EOS;
  105. format(gString, sizeof(gString), "Email setat: %s.", PlayerInfo[playerid][pEmail]);
  106. SCM(playerid, -1, gString);
  107.  
  108. format(PlayerInfo[playerid][pEmail], 32, inputtext);
  109.  
  110. ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_MSGBOX, "Gender", "Selecteaza-ti sexul:", "Masculin", "Feminin");
  111. }
  112. case DIALOG_GENDER: {
  113. switch(response) {
  114. case 0: {
  115. PlayerInfo[playerid][pGender] = 1;
  116. SCM(playerid, -1, "Sex setat: Feminin");
  117. }
  118. case 1: {
  119. PlayerInfo[playerid][pGender] = 0;
  120. SCM(playerid, -1, "Sex setat: Masculin");
  121. }
  122. }
  123.  
  124. gQuery[0] = EOS;
  125. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender` ='%d' WHERE `ID` = '%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
  126. mysql_tquery(SQL, gQuery, "", "");
  127.  
  128. SpawnPlayer(playerid);
  129.  
  130. }
  131. case DIALOG_LOGIN: {
  132. if(!response)
  133. return Kick(playerid);
  134.  
  135. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  136. mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
  137. }
  138.  
  139. }
  140. return 1;
  141. }
  142.  
  143. function onLogin(playerid) {
  144. switch(cache_num_rows()) {
  145. case 0: {
  146. incercariParola[playerid] ++;
  147.  
  148. gString[0] = EOS;
  149. format(gString, sizeof(gString), "Parola Incorrecta! (%d/3 incercari ramase)", incercariParola[playerid]);
  150. SendClientMessage(playerid, 0x00D269FF, gString);
  151.  
  152. if(incercariParola[playerid] == 3) Kick(playerid);
  153. else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
  154.  
  155. }
  156. case 1: {
  157. new
  158. result[64];
  159.  
  160. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  161. PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  162.  
  163. cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  164. cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  165. cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
  166.  
  167. 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]);
  168. for(new i = 0; i < 25; i++) SendClientMessage(playerid, -1, " ");
  169.  
  170. SendClientMessage(playerid, 0x4bd800FF, "Te-ai logat cu succes!");
  171.  
  172. SpawnPlayer(playerid);
  173.  
  174. }
  175. }
  176. return 1;
  177. }
  178.  
  179. function insertAccount(playerid) {
  180. PlayerInfo[playerid][pSQLID] = cache_insert_id();
  181. printf("%s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
  182. return 1;
  183. }
  184.  
  185. function checkAccount(playerid) {
  186. switch(cache_num_rows()) {
  187. 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");
  188. case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
  189. }
  190. return 1;
  191. }
  192.  
  193. stock GetName(playerid) {
  194. new playerName[MAX_PLAYER_NAME];
  195. GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  196. return playerName;
  197. }
Add Comment
Please, Sign In to add comment