B-Matt

[SA-MP] MySQL Gamemode

Jan 13th, 2013
630
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.88 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. #define NEW_SKIN 299
  5.  
  6. main()
  7. {
  8. print("\n----------------------------------");
  9. print(" MySQL Gamemode by B-Matt");
  10. print("----------------------------------\n");
  11. }
  12.  
  13. enum pInfo
  14. {
  15. pSQLid,
  16. pPass[50],
  17. pMoney
  18. }
  19. new PlayerInfo[MAX_PLAYERS][pInfo];
  20.  
  21. new dbHandle, query[1000];
  22.  
  23. stock GetName(playerid)
  24. {
  25. new pName[MAX_PLAYER_NAME];
  26. GetPlayerName(playerid, pName, sizeof(pName));
  27. return pName;
  28. }
  29.  
  30. public OnGameModeInit()
  31. {
  32. SetGameModeText("MySQL Script");
  33. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  34. dbHandle = mysql_connect("127.0.0.1","root","sa-mp","");
  35. mysql_function_query(1, "CREATE TABLE IF NOT EXISTS `players` (`Name` varchar(24) NOT NULL,`Password` varchar(50) NOT NULL,`Money` int(11) NOT NULL)", false, "OnQueryFinish", "");
  36. mysql_debug(1);
  37. return 1;
  38. }
  39.  
  40. public OnGameModeExit()
  41. {
  42. mysql_close();
  43. return 1;
  44. }
  45.  
  46. public OnPlayerRequestClass(playerid, classid)
  47. {
  48. SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
  49. }
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53. format(query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = '%s' LIMIT 0,1" , GetName(playerid));
  54. mysql_function_query(1, query, true, "CheckPlayer", "i", playerid);
  55. return 1;
  56. }
  57.  
  58. forward CheckPlayer(playerid);
  59. public CheckPlayer(playerid)
  60. {
  61. new rows, fields, string[128];
  62. cache_get_data(rows, fields);
  63. if(!rows)
  64. {
  65. format(string, sizeof(string), "{FFFFFF}Welcome {A3FF00}%s{FFFFFF} on server. Input your password and register account.", GetName(playerid));
  66. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Registration", string, "Registration", "Quit");
  67. }
  68. else
  69. {
  70. new temp[12];
  71. cache_get_row(0, 1, temp); PlayerInfo[playerid][pSQLid] = strval(temp);
  72. cache_get_row(0, 2, PlayerInfo[playerid][pPass]);
  73. cache_get_row(0, 3, temp); PlayerInfo[playerid][pMoney] = strval(temp);
  74. format(string, sizeof(string), "{FFFFFF}Welcome {A3FF00}%s{FFFFFF} your account is ready for use. Input your password and login.", GetName(playerid));
  75. ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Quit");
  76. }
  77. return 1;
  78. }
  79.  
  80. forward OnAccountCreate(playerid);
  81. public OnAccountCreate(playerid)
  82. {
  83. PlayerInfo[playerid][pSQLid] = mysql_insert_id();
  84. return 1;
  85. }
  86.  
  87. public OnPlayerDisconnect(playerid, reason)
  88. {
  89. format(query, sizeof(query), "UPDATE `players` SET Money=%d WHERE `Name`=%s LIMIT 0,1", GetPlayerMoney(playerid), GetName(playerid));
  90. mysql_function_query(1, query, false, "OnQueryFinish", "");
  91. return 1;
  92. }
  93.  
  94. public OnPlayerSpawn(playerid)
  95. {
  96. return 1;
  97. }
  98.  
  99. public OnPlayerDeath(playerid, killerid, reason)
  100. {
  101. return 1;
  102. }
  103.  
  104. public OnVehicleSpawn(vehicleid)
  105. {
  106. return 1;
  107. }
  108.  
  109. public OnVehicleDeath(vehicleid, killerid)
  110. {
  111. return 1;
  112. }
  113.  
  114. public OnPlayerText(playerid, text[])
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnPlayerCommandText(playerid, cmdtext[])
  120. {
  121. return 0;
  122. }
  123.  
  124. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  125. {
  126. return 1;
  127. }
  128.  
  129. public OnPlayerExitVehicle(playerid, vehicleid)
  130. {
  131. return 1;
  132. }
  133.  
  134. public OnPlayerStateChange(playerid, newstate, oldstate)
  135. {
  136. return 1;
  137. }
  138.  
  139. public OnPlayerEnterCheckpoint(playerid)
  140. {
  141. return 1;
  142. }
  143.  
  144. public OnPlayerLeaveCheckpoint(playerid)
  145. {
  146. return 1;
  147. }
  148.  
  149. public OnPlayerEnterRaceCheckpoint(playerid)
  150. {
  151. return 1;
  152. }
  153.  
  154. public OnPlayerLeaveRaceCheckpoint(playerid)
  155. {
  156. return 1;
  157. }
  158.  
  159. public OnRconCommand(cmd[])
  160. {
  161. return 1;
  162. }
  163.  
  164. public OnPlayerRequestSpawn(playerid)
  165. {
  166. return 1;
  167. }
  168.  
  169. public OnObjectMoved(objectid)
  170. {
  171. return 1;
  172. }
  173.  
  174. public OnPlayerObjectMoved(playerid, objectid)
  175. {
  176. return 1;
  177. }
  178.  
  179. public OnPlayerPickUpPickup(playerid, pickupid)
  180. {
  181. return 1;
  182. }
  183.  
  184. public OnVehicleMod(playerid, vehicleid, componentid)
  185. {
  186. return 1;
  187. }
  188.  
  189. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  190. {
  191. return 1;
  192. }
  193.  
  194. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  195. {
  196. return 1;
  197. }
  198.  
  199. public OnPlayerSelectedMenuRow(playerid, row)
  200. {
  201. return 1;
  202. }
  203.  
  204. public OnPlayerExitedMenu(playerid)
  205. {
  206. return 1;
  207. }
  208.  
  209. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  210. {
  211. return 1;
  212. }
  213.  
  214. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  215. {
  216. return 1;
  217. }
  218.  
  219. public OnRconLoginAttempt(ip[], password[], success)
  220. {
  221. return 1;
  222. }
  223.  
  224. public OnPlayerUpdate(playerid)
  225. {
  226. return 1;
  227. }
  228.  
  229. public OnPlayerStreamIn(playerid, forplayerid)
  230. {
  231. return 1;
  232. }
  233.  
  234. public OnPlayerStreamOut(playerid, forplayerid)
  235. {
  236. return 1;
  237. }
  238.  
  239. public OnVehicleStreamIn(vehicleid, forplayerid)
  240. {
  241. return 1;
  242. }
  243.  
  244. public OnVehicleStreamOut(vehicleid, forplayerid)
  245. {
  246. return 1;
  247. }
  248.  
  249. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  250. {
  251. switch(dialogid)
  252. {
  253. case 0:
  254. {
  255. if(!response) return Kick(playerid);
  256. if(strlen(inputtext) > 50) return SendClientMessage(playerid, -1, "Your password is too long!");
  257. format(query, sizeof(query), "INSERT INTO `Players` (Name, Password, Money) VALUES ('%s', '%s', '%d')", GetName(playerid), inputtext, 1000);
  258. mysql_function_query(dbHandle, query, false, "OnAccountCreate", "i", playerid);
  259. SpawnPlayer(playerid);
  260. GivePlayerMoney(playerid, 1000);
  261. }
  262. case 1:
  263. {
  264. new string[128];
  265. if(!response) return Kick(playerid);
  266. if(strcmp(inputtext, PlayerInfo[playerid][pPass], true) == 0)
  267. {
  268. SpawnPlayer(playerid);
  269. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
  270. }
  271. else
  272. {
  273. format(string, sizeof(string), "{FFFFFF}Welcome {A3FF00}%s{FFFFFF} your account is ready for use.\n Input your password and login.\n {FF0000}Wrong password{FFFFFF}!", GetName(playerid));
  274. ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Quit");
  275. }
  276. }
  277. }
  278. return 1;
  279. }
  280.  
  281. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  282. {
  283. return 1;
  284. }
Advertisement
Add Comment
Please, Sign In to add comment