Advertisement
Guest User

Untitled

a guest
Aug 13th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.24 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.  
  13. new
  14. incercariParola[MAX_PLAYERS];
  15.  
  16. enum pInfo {
  17. pSQLID,
  18. pName[MAX_PLAYER_NAME],
  19. pPassword[32],
  20. pEmail[32],
  21. pGender
  22. }
  23. new PlayerInfo[MAX_PLAYERS][pInfo];
  24.  
  25. enum {
  26. // Register
  27. DIALOG_REGISTER,
  28. DIALOG_EMAIL,
  29. DIALOG_GENDER,
  30.  
  31. // LOGIN
  32. DIALOG_LOGIN
  33. }
  34.  
  35. #define Update '#1'
  36.  
  37. main() { print("Gamemode-ul este in curs de procesare..."); }
  38.  
  39. public OnGameModeInit()
  40. {
  41. SQL = mysql_connect("localhost", "root", "ro-rpg_db", "");
  42. mysql_log(LOG_ERROR | LOG_WARNING);
  43. if(mysql_errno(SQL) != 0) printf("Conectarea la baza de date a esuat.");
  44. else printf("Conectarea la baza de date a fost efectuata cu succes.");
  45.  
  46. // Don't use these lines if it's a filterscript
  47. SetGameModeText("RO-RPG 0.1");
  48. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  49. return 1;
  50. }
  51.  
  52. public OnPlayerRequestClass(playerid, classid)
  53. {
  54. TogglePlayerSpectating(playerid, false);
  55.  
  56. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  57. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  58. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  59. return 1;
  60. }
  61.  
  62. public OnPlayerConnect(playerid) {
  63. incercariParola[playerid] = 0;
  64.  
  65. gQuery[0] = EOS;
  66. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM 'users' WHERE 'Name'='%s' LIMIT 1", GetName(playerid));
  67. mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  68. return 1;
  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_EMAIL, "Email", "Seteaza-ti un email:", "Select", "Cancel");
  91. }
  92. case DIALOG_EMAIL: {
  93. if(!response)
  94. return Kick(playerid);
  95.  
  96. if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  97. return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_EMAIL, "Email", "Seteaza-ti un email:", "Select", "Cancel");
  98.  
  99. gQuery[0] = EOS;
  100. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE 'users' SET 'Email'='%s' WHERE 'ID'='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  101. mysql_tquery(SQL, gQuery, "", "");
  102.  
  103. gString[0] = EOS;
  104. format(gString, sizeof(gString), "Email setat: %s", inputtext);
  105. SCM(playerid, -1, gString);
  106.  
  107. format(PlayerInfo[playerid][pEmail], 32, inputtext);
  108.  
  109. ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender", "Seteaza-ti sexul:", "Masculin", "Feminin");
  110. }
  111. case DIALOG_GENDER: {
  112. switch(response) {
  113. case 0: {
  114. PlayerInfo[playerid][pGender] = 1;
  115. SCM(playerid, -1, "Sex setat:Feminin");
  116. }
  117. case 1: {
  118. PlayerInfo[playerid][pGender] = 0;
  119. SCM(playerid, -1, "Sex setat:Masculin");
  120. }
  121. }
  122.  
  123. gQuery[0] = EOS;
  124. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE 'users' SET 'Gender'='%d' WHERE 'ID'='%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
  125. mysql_tquery(SQL, gQuery, "", "");
  126.  
  127. SpawnPlayer(playerid);
  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. return 1;
  138. }
  139.  
  140. function onLogin(playerid) {
  141. switch(cache_num_rows()) {
  142. case 0: {
  143. incercariParola[playerid] ++;
  144.  
  145. gString[0] = EOS;
  146. format(gString, sizeof(gString), "Parola incorecta! (%d/3 incercari ramase)", incercariParola[playerid]);
  147. SCM(playerid, COLOR_DARKRED, gString);
  148.  
  149. if(incercariParola[playerid] == 3) Kick(playerid);
  150. else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
  151. }
  152. case 1: {
  153. new
  154. result[64];
  155.  
  156. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  157. PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  158.  
  159. cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  160. cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  161. cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
  162.  
  163. 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]);
  164.  
  165. for(new i = 0; i < 25; i++) SCM(playerid, -1, " ");
  166. SCM(playerid, COLOR_NICEGREEN, "Te-ai logat cu succes!");
  167.  
  168. SpawnPlayer(playerid);
  169. }
  170. }
  171. return 1;
  172. }
  173.  
  174. function insetrtAccount(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.  
  181. function checkAccount(playerid) {
  182. switch(cache_num_rows()) {
  183. 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");
  184. case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
  185. }
  186. }
  187.  
  188.  
  189. stock GetName(playerid) {
  190. new playerName[MAX_PLAYER_NAME];
  191. GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  192. return playerName;
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement