Guest User

Untitled

a guest
Dec 10th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <sscanf2>
  5. //========================= [MySQL Database Settings] ==========================
  6.  
  7. #define mysql_host ""//the IP of the host, should be displayed when created a database
  8. #define mysql_user ""//database username
  9. #define mysql_password ""//database password
  10. #define mysql_database ""//database name
  11. //========================= [MySQL Database Settings] ==========================
  12.  
  13. //============================ [Colors] ========================================
  14. #define white 0xFFFFFFFF
  15. #define blue 0x0073FFFF
  16. #define liblue 0x00FFFFFF
  17. #define green 0x00E228FF
  18. #define ligreen 0x00FF28FF
  19. #define green2 0x9BFF00FF
  20. #define limegreen 0x00FF96FF
  21. #define pink 0xFFAFD7FF
  22. #define purple 0xDB00AFFF
  23. #define yellow 0xF5FF00FF
  24. #define orange 0xFFA000FF
  25. #define red 0xFF0000FF
  26. //============================ [Colors] ========================================
  27.  
  28.  
  29. //============================ [Hex] ===========================================
  30. #define cwhite "{FFFFFF}"
  31. #define cblue "{00B9FF}"
  32. #define cliblue "{00FFFA}"
  33. #define cgreen "{05E200}"
  34. #define cligreen "{05FF00}"
  35. #define cgreen2 "{A5FF00}"
  36. #define cpink "{FFA4C3}"
  37. #define cpurple "{E500C3}"
  38. #define cyellow "{FFFA00}"
  39. #define cyellow2 "{FFFF11}"
  40. #define corange "{FF9600}"
  41. #define cred "{FF0000}"
  42. //============================ [Hex] ===========================================
  43.  
  44. #define Logindialog 1
  45. #define Regdialog 2
  46. #define Reginfo 3
  47. enum pInfo
  48. {
  49. AccID,
  50. Username[24],
  51. Password[129],
  52. Ip[16],
  53. Money,
  54. Score,
  55. Kills,
  56. Deaths,
  57. Logged,
  58. FailedLogins,
  59. FirstSpawn,
  60. Donator,
  61. Admin,
  62. Plantedbombs,
  63. Defusedbombs,
  64. Banned,
  65. Pending
  66. };
  67. native WP_Hash(buffer[], len, const str[]);
  68. new PlayerInfo[MAX_PLAYERS][pInfo];
  69. new Query[450];
  70. public OnFilterScriptInit()
  71. {
  72. mysql_debug(1);
  73. mysql_connect(mysql_host,mysql_user,mysql_database,mysql_password);
  74. mysql_query(
  75. "CREATE TABLE IF NOT EXISTS `Accounts` ("\
  76. "`AccID` int(10) NOT NULL AUTO_INCREMENT,"\
  77. "`Username` varchar(24) NOT NULL,"\
  78. "`Password` varchar(64) NOT NULL,"\
  79. "`IP` varchar(16) NULL,"\
  80. "`Money` int(15) NULL,"\
  81. "`Score` int(15) NULL,"\
  82. "`Kills` int(15) NULL,"\
  83. "`Deaths` int(15) NULL,"\
  84. "`Donator` int(15) NULL,"\
  85. "`Admin` int(15) NULL,"\
  86. "`Plantedbombs` int(15) NULL,"\
  87. "`Defusedbombs` int(15) NULL,"\
  88. "`Banned` int(15) NULL,"\
  89. "`Pending` int(15) NULL,"\
  90. "PRIMARY KEY (`AccID`)"\
  91. ") ENGINE=InnoDB DEFAULT CHARSET=latin1;");
  92. if(mysql_ping() > -1) return print("MySQL connection to database succeeded!");
  93.  
  94. else print("MySQL connection to database failed. Please check your database settings!");
  95. return 1;
  96. }
  97.  
  98. public OnFilterScriptExit()
  99. {
  100. print("Mysql Script Unloaded");
  101. return 1;
  102. }
  103.  
  104. public OnPlayerConnect(playerid)
  105. {
  106. new string[256];
  107. format(Query,sizeof(Query),"SELECT Username FROM `Accounts` WHERE `Username` = '%s'",GetPName(playerid));
  108. mysql_query(Query);
  109. mysql_store_result();
  110. if(mysql_num_rows() != 0)
  111. {
  112. format(Query,sizeof Query,"SELECT IP FROM `Accounts` WHERE `Username` = '%s' AND `IP` = '%s'",GetPName(playerid),GetIP(playerid));
  113. mysql_query(Query);
  114. mysql_store_result();
  115. if(mysql_num_rows() != 0)
  116. {
  117. LoadStats(playerid);
  118. PlayerInfo[playerid][Logged] = 1;
  119. PlaySound(playerid,1057);
  120. SendClientMessage(playerid,green,"» You have been automatically logged in! Welcome back!");
  121. }
  122. else
  123. {
  124. format(string,sizeof(string),""cblue"Hey, "cred"%s"cblue"! \nYour account is "cgreen"registered"cblue".\nPlease enter the "cred"password"cblue" to log in!",GetPName(playerid));
  125. ShowPlayerDialog(playerid,Logindialog,DIALOG_STYLE_INPUT,""cgreen2"Log in",string,"Login","");
  126. }
  127. }
  128. else
  129. {
  130. format(string,sizeof(string),""cblue"Hey, "cred"%s"cblue"! \nYour account is "cred"not registered"cblue". \nPlease "cgreen"register"cblue" to continue!",GetPName(playerid));
  131. ShowPlayerDialog(playerid,Regdialog,DIALOG_STYLE_INPUT,""cpurple"Register",string,"Register","");
  132. }
  133. mysql_free_result();
  134. PlayerInfo[playerid][FirstSpawn] = 1;
  135. return 1;
  136. }
  137.  
  138. public OnPlayerDisconnect(playerid, reason)
  139. {
  140. PlayerInfo[playerid][Donator] = 20;
  141. if(PlayerInfo[playerid][Logged] == 1) return SaveStats(playerid);
  142. PlayerInfo[playerid][FailedLogins] = 0;
  143. return 1;
  144. }
  145.  
  146. public OnPlayerSpawn(playerid)
  147. {
  148. if(PlayerInfo[playerid][FirstSpawn] == 1 && PlayerInfo[playerid][Logged] == 1)
  149. {
  150. GivePlayerMoney(playerid,PlayerInfo[playerid][Money]);
  151. SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
  152. format(PlayerInfo[playerid][Ip],16,"%s",GetIP(playerid));
  153. PlayerInfo[playerid][FirstSpawn] = 0;
  154. }
  155. return 1;
  156. }
  157.  
  158. public OnPlayerDeath(playerid, killerid, reason)
  159. {
  160. PlayerInfo[killerid][Kills]++;
  161. PlayerInfo[playerid][Deaths]++;
  162. return 1;
  163. }
  164.  
  165. public OnVehicleSpawn(vehicleid)
  166. {
  167. return 1;
  168. }
  169.  
  170. public OnVehicleDeath(vehicleid, killerid)
  171. {
  172. return 1;
  173. }
  174.  
  175. public OnPlayerText(playerid, text[])
  176. {
  177. return 1;
  178. }
  179.  
  180. public OnPlayerCommandText(playerid, cmdtext[])
  181. {
  182. return 0;
  183. }
  184.  
  185. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  186. {
  187. return 1;
  188. }
  189.  
  190. public OnPlayerExitVehicle(playerid, vehicleid)
  191. {
  192. return 1;
  193. }
  194.  
  195. public OnPlayerStateChange(playerid, newstate, oldstate)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnPlayerEnterCheckpoint(playerid)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerLeaveCheckpoint(playerid)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerEnterRaceCheckpoint(playerid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnPlayerLeaveRaceCheckpoint(playerid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnRconCommand(cmd[])
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnPlayerRequestSpawn(playerid)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnObjectMoved(objectid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerObjectMoved(playerid, objectid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerPickUpPickup(playerid, pickupid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnVehicleMod(playerid, vehicleid, componentid)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerSelectedMenuRow(playerid, row)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnPlayerExitedMenu(playerid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnRconLoginAttempt(ip[], password[], success)
  281. {
  282. return 1;
  283. }
  284.  
  285. public OnPlayerUpdate(playerid)
  286. {
  287. return 1;
  288. }
  289.  
  290. public OnPlayerStreamIn(playerid, forplayerid)
  291. {
  292. return 1;
  293. }
  294.  
  295. public OnPlayerStreamOut(playerid, forplayerid)
  296. {
  297. return 1;
  298. }
  299.  
  300. public OnVehicleStreamIn(vehicleid, forplayerid)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnVehicleStreamOut(vehicleid, forplayerid)
  306. {
  307. return 1;
  308. }
  309.  
  310. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  311. {
  312. switch(dialogid)
  313. {
  314. case Regdialog:
  315. {
  316. new string[220];
  317. if(strlen(inputtext) == 0)
  318. {
  319. ShowPlayerDialog(playerid,Regdialog,DIALOG_STYLE_INPUT,""cblue"Register - "cyellow"Enter your password",""cblue"You are about to register a "cyellow"new account"cblue"! \nPlease choose the "corange"password"cblue" for it! \n","Register!","");
  320. SendClientMessage(playerid,red,"Please input a password!");
  321. }
  322. else
  323. {
  324. new EscapedText[64],buffer[129];
  325. mysql_real_escape_string(inputtext, EscapedText);
  326. WP_Hash(buffer,sizeof(buffer),EscapedText);
  327. format(Query,sizeof(Query),"INSERT INTO `Accounts` (Username,Password,IP,Money,Score,Kills,Deaths,Donator,Admin,Plantedbombs,Defusedbombs,Banned,Pending) VALUES('%s','%s','%s','0','0','0','0','0','0','0','0','0','0')",GetPName(playerid),buffer,GetIP(playerid));
  328. mysql_query(Query);
  329. mysql_store_result();
  330. SendClientMessage(playerid,green2,"You have been successfully registered!");
  331. format(string,sizeof(string),""cgreen"You have been successfully registered! \n"cwhite"» Your username: "cblue"%s \n"cwhite"» Your password: "cblue"%s \n"cwhite"» Your account ID: "cblue"%i ",GetPName(playerid),inputtext,mysql_insert_id());
  332. ShowPlayerDialog(playerid,Reginfo,0,"Registered!",string,"Ok","");
  333. mysql_free_result();
  334. LoadStats(playerid);
  335. PlayerInfo[playerid][Logged] = 1;
  336. GivePlayerMoney(playerid,5000);
  337. SetPlayerScore(playerid,1);
  338. PlaySound(playerid,1083);
  339. }
  340. }
  341. case Logindialog:
  342. {
  343. if(!response) return Kick(playerid);
  344. if(strlen(inputtext) == 0)
  345. {
  346. new string[220];
  347. format(string,sizeof(string),""cblue"Hey, "cred"%s"cblue"! \nYour account is "cgreen"registered"cblue".\nPlease enter the "cred"password"cblue" to log in!",GetPName(playerid));
  348. ShowPlayerDialog(playerid,Logindialog,DIALOG_STYLE_INPUT,""cgreen2"Log in",string,"Login","");
  349. SendClientMessage(playerid,red,"Please input a password!");
  350. }
  351. else
  352. {
  353. LoginPlayer(playerid,inputtext);
  354. }
  355. }
  356. }
  357. return 1;
  358. }
  359.  
  360. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  361. {
  362. return 1;
  363. }
  364. GetPName(playerid)
  365. {
  366. new pname[24];
  367. GetPlayerName(playerid,pname,24);
  368. return pname;
  369. }
  370. GetIP(playerid)
  371. {
  372. new ip[16];
  373. GetPlayerIp(playerid,ip,16);
  374. return ip;
  375. }
  376. stock PlaySound(playerid,soundid)
  377. {
  378. new Float:p[3];
  379. GetPlayerPos(playerid, p[0], p[1], p[2]);
  380. PlayerPlaySound(playerid, soundid, p[0], p[1], p[2]);
  381. return 1;
  382. }
  383. stock LoadStats(playerid)
  384. {
  385. format(Query, sizeof(Query), "SELECT * FROM `Accounts` WHERE `Username` = '%s'", GetPName(playerid));
  386. mysql_query(Query);
  387. mysql_store_result();
  388. mysql_fetch_row_format(Query, "|");
  389. sscanf(Query, "e<p<|>is[24]s[129]s[16]iiiiiiiiii>", PlayerInfo[playerid]);//Remember to update this if you are going to add more info!
  390. mysql_free_result();
  391. return 1;
  392. }
  393. stock SaveStats(playerid)
  394. {
  395. format(Query,sizeof(Query),"UPDATE `Accounts` SET `IP` = '%s', `Money` = '%i', `Score` = '%i', `Kills` = '%i', `Deaths` = '%i', `Donator` = '%i', `Admin` = '%i', `Plantedbombs` = '%i', `Defusedbombs` = '%i', `Banned` = '%i', `Pending` = '%i' WHERE `Username` = '%s'",
  396. PlayerInfo[playerid][Ip],
  397. GetPlayerMoney(playerid),
  398. GetPlayerScore(playerid),
  399. PlayerInfo[playerid][Kills],
  400. PlayerInfo[playerid][Deaths],
  401. GetPName(playerid));
  402.  
  403. mysql_query(Query);
  404. mysql_free_result();
  405. return 1;
  406. }
  407. stock LoginPlayer(playerid,const password[])
  408. {
  409. new string[165], buffer[129];
  410. WP_Hash(buffer,sizeof(buffer),password);
  411. format(Query,sizeof(Query),"SELECT Password FROM `Accounts` WHERE `Username` = '%s' AND `Password` = '%s'",GetPName(playerid),buffer);
  412. mysql_query(Query);
  413. mysql_store_result();
  414. if(mysql_num_rows() != 0)
  415. {
  416. format(string,sizeof(string),"You have been logged in! Welcome back, "cred"%s"cgreen"!",GetPName(playerid));
  417. SendClientMessage(playerid,green,string);
  418. LoadStats(playerid);
  419. PlayerInfo[playerid][Logged] = 1;
  420. PlaySound(playerid,1057);
  421. }
  422. else
  423. {
  424. PlayerInfo[playerid][FailedLogins]++;
  425. format(string,sizeof(string),""cred"Attempts left: "corange"%i \n"cblue"Hey, "cred"%s"cblue"! \nYour account is "cgreen"registered"cblue".\nPlease enter the "cred"password"cblue" to log in!",3-PlayerInfo[playerid][FailedLogins],GetPName(playerid));
  426. ShowPlayerDialog(playerid,Logindialog,DIALOG_STYLE_INPUT,""cgreen2"Log in",string,"Login","");
  427. PlaySound(playerid,1055);
  428. if(PlayerInfo[playerid][FailedLogins] == 3)
  429. {
  430. format(string,sizeof(string),"%s has been automatically kicked as he entered the wrong login password 3 times in a row",GetPName(playerid));
  431. SendClientMessageToAll(red,string);
  432. SendClientMessage(playerid,red,"*** You have been kicked as you have entered the wrong login password 3 times!");
  433. PlaySound(playerid,1141);
  434. Kick(playerid);
  435. }
  436. }
  437. mysql_free_result();
  438. return 1;
  439. }
Add Comment
Please, Sign In to add comment