Advertisement
Guest User

MySQL

a guest
Jan 3rd, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.49 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <sscanf2>
  4. #include <izcmd>
  5.  
  6. #define MYSQL_HOST "localhost"
  7. #define MYSQL_USER "root"
  8. #define MYSQL_DATABASE "baza"
  9. #define MYSQL_PASSWORD ""
  10.  
  11. #define SPAWN_X 10.0
  12. #define SPAWN_Y 10.0
  13. #define SPAWN_Z 5.0
  14. #define SPAWN_A 0.0
  15.  
  16. forward OnAccountCheck(playerid);
  17. forward OnAccountLoad(playerid);
  18. forward OnAccountRegister(playerid);
  19.  
  20. enum
  21. {
  22. LoginDialog,
  23. RegisterDialog
  24. };
  25.  
  26. new
  27. mysql;
  28.  
  29. native WP_Hash(buffer[], len, const str[]);
  30.  
  31. enum PlayerData
  32. {
  33. ID,
  34. Name[MAX_PLAYER_NAME],
  35. Password[129],
  36. IP[16],
  37. pAdmin,
  38. pVIP,
  39. pMoney,
  40. pScore
  41. };
  42. new Player[MAX_PLAYERS][PlayerData];
  43.  
  44. main()
  45. {
  46. print("\n----------------------------------");
  47. print(" Blank Gamemode by your name here");
  48. print("----------------------------------\n");
  49. }
  50.  
  51.  
  52. public OnGameModeInit()
  53. {
  54. mysql_log(LOG_ALL);
  55. mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
  56. if(mysql_errno() != 0)
  57. {
  58. printf("[MySQL] The connection has failed.");
  59. }
  60. else
  61. {
  62. printf("[MySQL] The connection was successful.");
  63. }
  64. return true;
  65. }
  66.  
  67. public OnGameModeExit()
  68. {
  69. return 1;
  70. }
  71.  
  72. public OnPlayerRequestClass(playerid, classid)
  73. {
  74. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  75. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  76. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  77. return 1;
  78. }
  79.  
  80. public OnPlayerConnect(playerid)
  81. {
  82.  
  83. TogglePlayerSpectating(playerid, true);
  84. new
  85. query[512],
  86. playername[MAX_PLAYER_NAME];
  87.  
  88. GetPlayerName(playerid, playername, sizeof(playername));
  89. mysql_format(mysql, query, sizeof(query), "SELECT `Password`, `ID` FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
  90. mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid);
  91. return true;
  92. }
  93. public OnAccountCheck(playerid)
  94. {
  95. new
  96. rows,
  97. fields;
  98. cache_get_data(rows, fields, mysql);
  99.  
  100. if(rows)
  101. {
  102. cache_get_field_content(0, "Password", Player[playerid][Password], mysql, 129);
  103. Player[playerid][ID] = cache_get_field_content_int(0, "ID");
  104. ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "Login", "Welcome player!\nYour account has been found in our database. Please fill in your password:", "Login", "Quit");
  105. }
  106. else
  107. {
  108. ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "Register", "Welcome player!\nYour account has not been registered yet. Please fill in your desired password:", "Register", "Quit");
  109. }
  110. return true;
  111. }
  112. public OnPlayerDisconnect(playerid, reason)
  113. {
  114. new
  115. query[512];
  116.  
  117.  
  118. mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `pMoney` = '%d', 'pScore' = '%d' WHERE `ID` = '%d'", GetPlayerMoney(playerid),GetPlayerScore(playerid),Player[playerid][ID]);
  119. mysql_tquery(mysql, query, "", "");
  120.  
  121. return true;
  122. }
  123.  
  124. public OnPlayerSpawn(playerid)
  125. {
  126. return 1;
  127. }
  128.  
  129. public OnPlayerDeath(playerid, killerid, reason)
  130. {
  131. return 1;
  132. }
  133.  
  134. public OnVehicleSpawn(vehicleid)
  135. {
  136. return 1;
  137. }
  138.  
  139. public OnVehicleDeath(vehicleid, killerid)
  140. {
  141. return 1;
  142. }
  143.  
  144. public OnPlayerText(playerid, text[])
  145. {
  146. return 1;
  147. }
  148. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  149. {
  150. return 1;
  151. }
  152.  
  153. public OnPlayerExitVehicle(playerid, vehicleid)
  154. {
  155. return 1;
  156. }
  157.  
  158. public OnPlayerStateChange(playerid, newstate, oldstate)
  159. {
  160. return 1;
  161. }
  162.  
  163. public OnPlayerEnterCheckpoint(playerid)
  164. {
  165. return 1;
  166. }
  167.  
  168. public OnPlayerLeaveCheckpoint(playerid)
  169. {
  170. return 1;
  171. }
  172.  
  173. public OnPlayerEnterRaceCheckpoint(playerid)
  174. {
  175. return 1;
  176. }
  177.  
  178. public OnPlayerLeaveRaceCheckpoint(playerid)
  179. {
  180. return 1;
  181. }
  182.  
  183. public OnRconCommand(cmd[])
  184. {
  185. return 1;
  186. }
  187.  
  188. public OnPlayerRequestSpawn(playerid)
  189. {
  190. return 1;
  191. }
  192.  
  193. public OnObjectMoved(objectid)
  194. {
  195. return 1;
  196. }
  197.  
  198. public OnPlayerObjectMoved(playerid, objectid)
  199. {
  200. return 1;
  201. }
  202.  
  203. public OnPlayerPickUpPickup(playerid, pickupid)
  204. {
  205. return 1;
  206. }
  207.  
  208. public OnVehicleMod(playerid, vehicleid, componentid)
  209. {
  210. return 1;
  211. }
  212.  
  213. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  214. {
  215. return 1;
  216. }
  217.  
  218. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  219. {
  220. return 1;
  221. }
  222.  
  223. public OnPlayerSelectedMenuRow(playerid, row)
  224. {
  225. return 1;
  226. }
  227.  
  228. public OnPlayerExitedMenu(playerid)
  229. {
  230. return 1;
  231. }
  232.  
  233. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  234. {
  235. return 1;
  236. }
  237.  
  238. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  239. {
  240. return 1;
  241. }
  242.  
  243. public OnRconLoginAttempt(ip[], password[], success)
  244. {
  245. return 1;
  246. }
  247.  
  248. public OnPlayerUpdate(playerid)
  249. {
  250. return 1;
  251. }
  252.  
  253. public OnPlayerStreamIn(playerid, forplayerid)
  254. {
  255. return 1;
  256. }
  257.  
  258. public OnPlayerStreamOut(playerid, forplayerid)
  259. {
  260. return 1;
  261. }
  262.  
  263. public OnVehicleStreamIn(vehicleid, forplayerid)
  264. {
  265. return 1;
  266. }
  267.  
  268. public OnVehicleStreamOut(vehicleid, forplayerid)
  269. {
  270. return 1;
  271. }
  272.  
  273. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  274. {
  275. switch(dialogid)
  276. {
  277. case LoginDialog:
  278. {
  279. if(!response) Kick(playerid);
  280.  
  281. new
  282. hashpass[129],
  283. query[512],
  284. playername[MAX_PLAYER_NAME];
  285.  
  286. GetPlayerName(playerid, playername, sizeof(playername));
  287. WP_Hash(hashpass, sizeof(hashpass), inputtext);
  288. if(!strcmp(hashpass, Player[playerid][Password]))
  289. {
  290. mysql_format(mysql, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
  291. mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
  292. }
  293. else
  294. {
  295. SendClientMessage(playerid, -1, "You have specified an incorrect password!");
  296. ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "Login", "Welcome player!\nYour account has been found in our database. Please fill in your password:", "Login", "Quit");
  297. }
  298. }
  299. case RegisterDialog:
  300. {
  301. if(!response) return Kick(playerid);
  302. if(strlen(inputtext) < 5)
  303. {
  304. SendClientMessage(playerid, -1, "Your password must at least contain more than 4 characters.");
  305. return ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "Register", "Welcome player!\nYour account has not been registered yet. Please fill in your desired password:", "Register", "Quit");
  306. }
  307. new
  308. query[512],
  309. playername[MAX_PLAYER_NAME],
  310. playerip[16];
  311.  
  312.  
  313. GetPlayerName(playerid, playername, sizeof(playername));
  314. GetPlayerIp(playerid, playerip, sizeof(playerip));
  315. WP_Hash(Player[playerid][Password], 129, inputtext);
  316. mysql_format(mysql, query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Password`, `IP`, `pAdmin`, `pVIP`, `pMoney`, 'pScore') VALUES ('%e', '%e', '%e', 0, 0, 0, 0)", playername, Player[playerid][Password], playerip);
  317. mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid);
  318. }
  319. }
  320. return false; // For filterscripts..
  321. }
  322. public OnAccountLoad(playerid)
  323. {
  324. Player[playerid][pAdmin] = cache_get_field_content_int(0, "pAdmin");
  325. Player[playerid][pVIP] = cache_get_field_content_int(0, "pVIP");
  326. Player[playerid][pMoney] = cache_get_field_content_int(0, "pMoney");
  327. Player[playerid][pScore] = cache_get_field_content_int(0, "pScore");
  328.  
  329.  
  330. TogglePlayerSpectating(playerid, false);
  331.  
  332. GivePlayerMoney(playerid, Player[playerid][pMoney]);
  333. SetPlayerScore(playerid, Player[playerid][pScore]);
  334.  
  335. SetSpawnInfo(playerid, 0, 23, 10.0, 10.0, 5.0, 0.0, 0, 0, 0, 0, 0, 0);
  336. SpawnPlayer(playerid);
  337.  
  338. SendClientMessage(playerid, -1, "You have successfully logged in.");
  339. return true;
  340. }
  341. public OnAccountRegister(playerid)
  342. {
  343. Player[playerid][ID] = cache_insert_id();
  344. printf("[Registration] New account registered. Database ID: [%d]", Player[playerid][ID]);
  345.  
  346. TogglePlayerSpectating(playerid, false);
  347.  
  348. SetSpawnInfo(playerid, 0, 23, 10.0, 10.0, 5.0, 0.0, 0, 0, 0, 0, 0, 0);
  349. SpawnPlayer(playerid);
  350. return true;
  351. }
  352. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  353. {
  354. return 1;
  355. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement