Advertisement
Guest User

~Zeros Mysqul Login/Register 2012 Edit

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