Advertisement
Guest User

Untitled

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