Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.45 KB | None | 0 0
  1. // Include
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <zcmd>
  5. #include <sscanf2>
  6. #include <YSI\y_iterate>
  7. // Define
  8. #define function%0(%1) forward%0(%1); public%0(%1)
  9. #define SCM SendClientMessage
  10. #define AdminOnly "Nu ai acces la aceasta comanda!"
  11. // Colors
  12. #define COLOR_RED 0xff0000FF
  13. #define COLOR_GREEN 0x04ff00FF
  14. #define COLOR_DARKGREEN 0x088e0aFF
  15. #define COLOR_GREY 0xAFAFAFFF
  16. #define COLOR_ADMINCHAT 0xFFC266FF
  17. #define COLOR_LOGS 0xE6833CFF
  18. #define COLOR_LIGHTBLUE 0x00C3FFFF
  19. #define COLOR_YELLOW 0xF5DEB3FF
  20. #define COLOR_WARNING 0xDE1414FF
  21. // New
  22. new SQL = -1, gQuery[256], gString[256];
  23. new attemptsPassoword[MAX_PLAYERS];
  24. // Enum
  25. enum pInfo {
  26. pSQLID,
  27. pName[MAX_PLAYERS],
  28. pPassword[32],
  29. pEmail[32],
  30. pGender,
  31. pAge,
  32. pAdmin
  33. }
  34. new PlayerInfo[MAX_PLAYERS][pInfo];
  35. enum {
  36. // Register
  37. DIALOG_REGISTER,
  38. DIALOG_EMAIL,
  39. DIALOG_GENDER,
  40. DIALOG_AGE,
  41.  
  42. // Login
  43. DIALOG_LOGIN
  44. }
  45. // Started Gamemode
  46. main()
  47. {
  48. print("\n----------------------------------");
  49. print(" Starting gamemode by NighTeN");
  50. print("----------------------------------\n");
  51. }
  52.  
  53. public OnGameModeInit()
  54. {
  55. SQL = mysql_connect("localhost", "root", "tests", "");
  56. SetGameModeText("RPG ROMANIA v0.1");
  57. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  58. return 1;
  59. }
  60.  
  61. public OnPlayerRequestClass(playerid, classid)
  62. {
  63. TogglePlayerSpectating(playerid, false);
  64.  
  65. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  66. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  67. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  68. return 1;
  69. }
  70.  
  71. public OnPlayerConnect(playerid) {
  72. attemptsPassoword[playerid] = 0;
  73.  
  74. gQuery[0] = EOS;
  75. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
  76. mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  77. return 1;
  78. }
  79. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  80. switch(dialogid) {
  81. case DIALOG_REGISTER: {
  82. if(!response)
  83. return Kick(playerid);
  84. if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  85. return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Parola trebuie sa contina minim 6 caractere / maxim 32!", "Select", "Cancel");
  86.  
  87. gQuery[0] = EOS;
  88. mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  89. mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  90.  
  91. gString[0] = EOS;
  92. format(gString, sizeof(gString), "Parola ta contine %d caractere!", strlen(inputtext));
  93. SCM(playerid, -1, gString);
  94.  
  95. format(PlayerInfo[playerid][pPassword], 32, inputtext);
  96.  
  97. ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Scrieti adresa de email!", "Select", "Cancel");
  98. }
  99. case DIALOG_EMAIL: {
  100. if(!response)
  101. return Kick(playerid);
  102. if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
  103. return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Parola trebuie sa contina minim 6 caractere / maxim 32!", "Select", "Cancel");
  104.  
  105. gQuery[0] = EOS;
  106. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  107. mysql_tquery(SQL, gQuery, "", "", playerid);
  108.  
  109. gString[0] = EOS;
  110. format(gString, sizeof(gString), "Email setat: %s", inputtext);
  111. SCM(playerid, -1, gString);
  112.  
  113. format(PlayerInfo[playerid][pEmail], 32, inputtext);
  114.  
  115. ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender", "Seteaza-ti sexul:", "Masculin", "Feminin");
  116. }
  117. case DIALOG_GENDER: {
  118. switch(response) {
  119. case 0: {
  120. PlayerInfo[playerid][pGender] = 2;
  121. SCM(playerid, -1, "Sex setat: Feminin");
  122. gQuery[0] = EOS;
  123. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='2' WHERE `ID`='%d'", PlayerInfo[playerid][pSQLID]);
  124. mysql_tquery(SQL, gQuery, "", "", playerid);
  125. }
  126. case 1: {
  127. PlayerInfo[playerid][pGender] = 1;
  128. SCM(playerid, -1, "Sex setat: Masculin");
  129. gQuery[0] = EOS;
  130. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='1' WHERE `ID`='%d'", PlayerInfo[playerid][pSQLID]);
  131. mysql_tquery(SQL, gQuery, "", "", playerid);
  132. }
  133. }
  134.  
  135. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Seteaza-ti varsta caracterului tau!", "Select", "Cancel");
  136. }
  137. case DIALOG_AGE: {
  138. if(!response)
  139. return Kick(playerid);
  140.  
  141. new tmppass[64];
  142. mysql_real_escape_string(inputtext, tmppass);
  143. new age = strval(tmppass);
  144. PlayerInfo[playerid][pAge] = age;
  145.  
  146. if(strval(inputtext) < 13 || strval(inputtext) > 60)
  147. return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Seteaza-ti varsta caracterului tau!(minim 6, maxim 32)", "Select", "Cancel");
  148.  
  149. gQuery[0] = EOS;
  150. mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Age` = '%d' WHERE `ID` = '%d'", PlayerInfo[playerid][pAge], PlayerInfo[playerid][pSQLID]);
  151. mysql_tquery(SQL, gQuery, "", "", playerid);
  152.  
  153. gString[0] = EOS;
  154. format(gString, sizeof(gString), "Varsta caracterului tau este %d.", age);
  155. SCM(playerid, -1, gString);
  156.  
  157. SpawnPlayer(playerid);
  158. }
  159. case DIALOG_LOGIN: {
  160. if(!response)
  161. return Kick(playerid);
  162.  
  163. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  164. mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
  165.  
  166. }
  167. }
  168. return 1;
  169. }
  170. // Function
  171. function checkAccount(playerid) {
  172. switch(cache_num_rows()) {
  173. case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te putea inregistra!", "Select", "Cancel");
  174. case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrieti parola pe care o ai!", "Login", "Cancel");
  175. }
  176. return 1;
  177. }
  178. function insertAccount(playerid) {
  179. PlayerInfo[playerid][pSQLID] = cache_insert_id();
  180. printf("[REGISTER] %s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
  181. return 1;
  182. }
  183. function onLogin(playerid) {
  184. switch(cache_num_rows()) {
  185. case 0: {
  186. attemptsPassoword[playerid] ++;
  187.  
  188. gString[0] = EOS;
  189. format(gString, sizeof(gString), "Parola incorecta! (%d/3 incercari ramase)", attemptsPassoword[playerid]);
  190. SendClientMessage(playerid, COLOR_RED, gString);
  191.  
  192. if(attemptsPassoword[playerid] == 3) return Kick(playerid);
  193.  
  194. else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrieti parola pe care o ai!", "Login", "Cancel");
  195. }
  196. case 1: {
  197. new
  198. result[64];
  199.  
  200. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  201. PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  202. PlayerInfo[playerid][pAge] = cache_get_field_content_int(0, "Age");
  203. PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
  204.  
  205. cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  206. cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  207. cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
  208.  
  209. 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][pName], PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pEmail]);
  210.  
  211. for(new i = 0; i < 25; i++) SendClientMessage(playerid, -1, " ");
  212. SendClientMessage(playerid, COLOR_DARKGREEN, "Te-ai logat cu succes!");
  213.  
  214. SpawnPlayer(playerid);
  215. }
  216. }
  217. return 1;
  218. }
  219. // Stock
  220. stock GetName(playerid) {
  221. new playerName[MAX_PLAYER_NAME];
  222. GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  223. return playerName;
  224. }
  225. // Comenzi
  226. CMD:setadmin(playerid, params[])
  227. {
  228. new id, adminlevel, string[100], stringg[128];
  229. if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_WARNING, AdminOnly);
  230. if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid, -1, AdminOnly);
  231. if(sscanf(params, "ui", id, adminlevel)) return SendClientMessage(playerid, -1, "Syntaxa: /setadmin <name/playerid> <Admin Level>");
  232. if(id == INVALID_PLAYER_ID) return SCM(playerid, COLOR_GREY, "Acel player nu este conectat!");
  233. format(string, sizeof(string), "Ai fost promovat la admin %d de %s.", adminlevel, GetName(playerid));
  234. SendClientMessage(id, COLOR_LIGHTBLUE, string);
  235. format(string, sizeof(string), "I-ai setat lui %s admin %d.", GetName(id),adminlevel);
  236. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  237. PlayerInfo[id][pAdmin] = adminlevel;
  238. mysql_format(SQL, stringg, sizeof(stringg),"UPDATE users SET `Admin`='%d' WHERE `Name`='%s'", PlayerInfo[id][pAdmin], PlayerInfo[id][pName]);
  239. mysql_tquery(SQL, stringg, "","");
  240. return true;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement