Guest User

Untitled

a guest
Dec 1st, 2016
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.89 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. //#include <foreach>
  4. #include <zcmd>
  5.  
  6. #define MYSQL_HOST "localhost"
  7. #define MYSQL_USER "root"
  8. #define MYSQL_DATABASE "server"
  9. #define MYSQL_PASSWORD ""
  10.  
  11. #define SERVER_NAME "Corsica Vinewood Life"
  12.  
  13. #define SPAWN_X 10.0
  14. #define SPAWN_Y 10.0
  15. #define SPAWN_Z 14.0
  16. #define SPAWN_A 0.0
  17.  
  18. #define COLOR_CLIENT (0xAAC4E5FF)
  19. #define COLOR_WHITE (0xFFFFFFFF)
  20. #define COLOR_RED (0xFF0000FF)
  21. #define COLOR_CYAN (0x33CCFFFF)
  22. #define COLOR_LIGHTRED (0xFF6347FF)
  23. #define COLOR_LIGHTGREEN (0x9ACD32FF)
  24. #define COLOR_YELLOW (0xFFFF00FF)
  25. #define COLOR_GREY (0xAFAFAFFF)
  26. #define COLOR_HOSPITAL (0xFF8282FF)
  27. #define COLOR_PURPLE (0xD0AEEBFF)
  28. #define COLOR_LIGHTYELLOW (0xF5DEB3FF)
  29. #define COLOR_DARKBLUE (0x1394BFFF)
  30. #define COLOR_ORANGE (0xFFA500FF)
  31. #define COLOR_LIME (0x00FF00FF)
  32. #define COLOR_GREEN (0x33CC33FF)
  33. #define COLOR_BLUE (0x2641FEFF)
  34. #define COLOR_FACTION (0xBDF38BFF)
  35. #define COLOR_RADIO (0x8D8DFFFF)
  36. #define COLOR_LIGHTBLUE (0x007FFFFF)
  37. #define COLOR_SERVER (0xFFFF90FF)
  38. #define COLOR_DEPARTMENT (0xFF8282AA)
  39. #define COLOR_ADMINCHAT (0x33EE33FF)
  40. #define DEFAULT_COLOR (0xFFFFFFFF)
  41.  
  42. // ----- [Chat Zone] ----- //
  43. #define SendServerMessage(%0,%1) \
  44. SendClientMessageEx(%0, COLOR_GREEN, "[SERVER]{FFFFFF} "%1)
  45.  
  46. #define SendSyntaxMessage(%0,%1) \
  47. SendClientMessageEx(%0, COLOR_GREY, "[SYNTAX]{FFFFFF} "%1)
  48.  
  49. #define SendErrorMessage(%0,%1) \
  50. SendClientMessageEx(%0, COLOR_LIGHTRED, "[ERROR]{FFFFFF} "%1)
  51.  
  52. #define SendAdminAction(%0,%1) \
  53. SendClientMessageEx(%0, COLOR_CLIENT, "[ADMIN]{FFFFFF} "%1)
  54.  
  55. #define SendGerMessage(%0,%1) \
  56. SendClientMessageEx(%0, COLOR_PURPLE, "[!]{FFFFFF} "%1)
  57.  
  58. #define SendAlertMessage(%0,%1) \
  59. SendClientMessageEx(%0, COLOR_RED, "[!]{FFFFFF} "%1)
  60. // -------------------------- //
  61.  
  62. // ----- [Account Zone] ----- //
  63. forward OnAccountCheck(playerid);
  64. forward OnAccountRegister(playerid);
  65. forward OnAccountLoad(playerid);
  66. // -------------------------- //
  67.  
  68. enum
  69. {
  70. LoginDialog,
  71. RegisterDialog
  72. };
  73. new
  74. mysql;
  75.  
  76. native WP_Hash(buffer[], len, const str[]);
  77.  
  78. enum PlayerData
  79. {
  80. ID,
  81. Name[MAX_PLAYER_NAME],
  82. Password[129],
  83. IP[16],
  84. Admin,
  85. VIP,
  86. Money,
  87. Float:posX,
  88. Float:posY,
  89. Float:posZ,
  90. Float:posA
  91. };
  92. new PlayerInfo[MAX_PLAYERS][PlayerData];
  93.  
  94. main()
  95. {
  96. print("\n----------------------------------");
  97. print(" This gamemode created by sss");
  98. print("----------------------------------\n");
  99. }
  100.  
  101. public OnGameModeInit()
  102. {
  103. SetGameModeText("Blank Script");
  104. mysql_log(LOG_ALL);
  105. mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
  106. if(mysql_errno() != 0)
  107. {
  108. printf("[MySQL] The connection has failed.");
  109. }
  110. else
  111. {
  112. printf("[MySQL] The connection was successful.");
  113. }
  114. return 1;
  115. }
  116.  
  117. public OnGameModeExit()
  118. {
  119. return 1;
  120. }
  121.  
  122. public OnPlayerRequestClass(playerid, classid)
  123. {
  124. /* SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  125. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  126. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);*/
  127. SpawnPlayer(playerid);
  128. return 1;
  129. }
  130.  
  131. public OnPlayerConnect(playerid)
  132. {
  133. TogglePlayerSpectating(playerid, true);
  134. new
  135. query[128],
  136. playername[MAX_PLAYER_NAME];
  137.  
  138. GetPlayerName(playerid, playername, sizeof(playername));
  139. mysql_format(mysql, query, sizeof(query), "SELECT `Password`, `ID` FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
  140. mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid);
  141. return 1;
  142. }
  143.  
  144. public OnPlayerDisconnect(playerid, reason)
  145. {
  146. new
  147. query[128],
  148. Float:pos[4];
  149.  
  150. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  151. GetPlayerFacingAngle(playerid, pos[3]);
  152.  
  153. mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Money` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = %d",
  154. GetPlayerMoney(playerid), pos[0], pos[1], pos[2], pos[3], PlayerInfo[playerid][ID]);
  155. mysql_tquery(mysql, query, "", "");
  156.  
  157. return 1;
  158. }
  159.  
  160. public OnPlayerSpawn(playerid)
  161. {
  162. SetPlayerPos(playerid, -56.8166,-22.3012,3.1172);
  163. SetPlayerSkin(playerid, 299);
  164. return 1;
  165. }
  166.  
  167. public OnPlayerDeath(playerid, killerid, reason)
  168. {
  169. // SpawnPlayer(playerid);
  170. return 1;
  171. }
  172.  
  173. public OnVehicleSpawn(vehicleid)
  174. {
  175. return 1;
  176. }
  177.  
  178. public OnVehicleDeath(vehicleid, killerid)
  179. {
  180. return 1;
  181. }
  182.  
  183. public OnPlayerText(playerid, text[])
  184. {
  185. return 1;
  186. }
  187.  
  188. CMD:kill(playerid, params[]) {
  189. SetPlayerHealth(playerid, 0);
  190. return 1;
  191. }
  192.  
  193. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  194. {
  195. return 1;
  196. }
  197.  
  198. public OnPlayerExitVehicle(playerid, vehicleid)
  199. {
  200. return 1;
  201. }
  202.  
  203. public OnPlayerStateChange(playerid, newstate, oldstate)
  204. {
  205. return 1;
  206. }
  207.  
  208. public OnPlayerEnterCheckpoint(playerid)
  209. {
  210. return 1;
  211. }
  212.  
  213. public OnPlayerLeaveCheckpoint(playerid)
  214. {
  215. return 1;
  216. }
  217.  
  218. public OnPlayerEnterRaceCheckpoint(playerid)
  219. {
  220. return 1;
  221. }
  222.  
  223. public OnPlayerLeaveRaceCheckpoint(playerid)
  224. {
  225. return 1;
  226. }
  227.  
  228. public OnRconCommand(cmd[])
  229. {
  230. return 1;
  231. }
  232.  
  233. public OnPlayerRequestSpawn(playerid)
  234. {
  235. return 1;
  236. }
  237.  
  238. public OnObjectMoved(objectid)
  239. {
  240. return 1;
  241. }
  242.  
  243. public OnPlayerObjectMoved(playerid, objectid)
  244. {
  245. return 1;
  246. }
  247.  
  248. public OnPlayerPickUpPickup(playerid, pickupid)
  249. {
  250. return 1;
  251. }
  252.  
  253. public OnVehicleMod(playerid, vehicleid, componentid)
  254. {
  255. return 1;
  256. }
  257.  
  258. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  259. {
  260. return 1;
  261. }
  262.  
  263. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  264. {
  265. return 1;
  266. }
  267.  
  268. public OnPlayerSelectedMenuRow(playerid, row)
  269. {
  270. return 1;
  271. }
  272.  
  273. public OnPlayerExitedMenu(playerid)
  274. {
  275. return 1;
  276. }
  277.  
  278. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  279. {
  280. return 1;
  281. }
  282.  
  283. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  284. {
  285. return 1;
  286. }
  287.  
  288. public OnRconLoginAttempt(ip[], password[], success)
  289. {
  290. return 1;
  291. }
  292.  
  293. public OnPlayerUpdate(playerid)
  294. {
  295. return 1;
  296. }
  297.  
  298. public OnPlayerStreamIn(playerid, forplayerid)
  299. {
  300. return 1;
  301. }
  302.  
  303. public OnPlayerStreamOut(playerid, forplayerid)
  304. {
  305. return 1;
  306. }
  307.  
  308. public OnVehicleStreamIn(vehicleid, forplayerid)
  309. {
  310. return 1;
  311. }
  312.  
  313. public OnVehicleStreamOut(vehicleid, forplayerid)
  314. {
  315. return 1;
  316. }
  317.  
  318. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  319. {
  320. switch(dialogid)
  321. {
  322. case LoginDialog:
  323. {
  324. if(!response) Kick(playerid);
  325.  
  326. new
  327. hashpass[129],
  328. query[100],
  329. playername[MAX_PLAYER_NAME];
  330.  
  331. GetPlayerName(playerid, playername, sizeof(playername));
  332. WP_Hash(hashpass, sizeof(hashpass), inputtext);
  333. if(!strcmp(hashpass, PlayerInfo[playerid][Password]))
  334. {
  335. mysql_format(mysql, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%e' LIMIT 1", playername);
  336. mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
  337. }
  338. else
  339. {
  340. SendErrorMessage(playerid, "¤Ø³ãÊèÃËÑʼèÒ¹äÁè¶Ù¡µéͧ");
  341. ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "[Login]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèҹŧ´éÒ¹ÅèÒ§à¾×èÍà¢éÒàÅè¹", "à¢éÒà¡Á!", "ÍÍ¡¨Ò¡à¡Á");
  342. }
  343. }
  344. case RegisterDialog:
  345. {
  346. if(!response) return Kick(playerid);
  347. if(strlen(inputtext) < 5)
  348. {
  349. SendErrorMessage(playerid, "ÃËÑʼèÒ¹¤ÇÃÁÕÍÂèÒ§¹éÍ 5 µÑÇÍÑ¡ÉâÖé¹ä»");
  350. return ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "[Registration]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèÒ¹·Õè¤Ø³µéͧ¡ÒÃŧ´éÒ¹ÅèÒ§", "ŧ·ÐàºÕ¹", "ÍÍ¡¨Ò¡à¡Á");
  351. }
  352. new
  353. query[512],
  354. playername[MAX_PLAYER_NAME],
  355. playerip[16];
  356.  
  357.  
  358. GetPlayerName(playerid, playername, sizeof(playername));
  359. GetPlayerIp(playerid, playerip, sizeof(playerip));
  360. WP_Hash(PlayerInfo[playerid][Password], 129, inputtext);
  361. mysql_format(mysql, query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Password`, `IP`, `Admin`, `VIP`, `Money`, `PosX`, `PosY`, `PosZ`, `PosA`) VALUES ('%e', '%e', '%e', 0, 0, 0, %f, %f, %f, %f)", playername, PlayerInfo[playerid][Password], playerip, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A);
  362. mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid);
  363. }
  364. }
  365. return 1;
  366. }
  367.  
  368. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  369. {
  370. return 1;
  371. }
  372.  
  373. public OnAccountLoad(playerid)
  374. {
  375. PlayerInfo[playerid][Admin] = cache_get_field_content_int(0, "Admin");
  376. PlayerInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP");
  377. PlayerInfo[playerid][Money] = cache_get_field_content_int(0, "Money");
  378. PlayerInfo[playerid][posX] = cache_get_field_content_float(0, "PosX");
  379. PlayerInfo[playerid][posY] = cache_get_field_content_float(0, "PosY");
  380. PlayerInfo[playerid][posZ] = cache_get_field_content_float(0, "PosZ");
  381. PlayerInfo[playerid][posA] = cache_get_field_content_float(0, "PosA");
  382.  
  383. TogglePlayerSpectating(playerid, false);
  384.  
  385. GivePlayerMoney(playerid, PlayerInfo[playerid][Money]);
  386.  
  387. SetSpawnInfo(playerid, 0, 299, PlayerInfo[playerid][posX], PlayerInfo[playerid][posY], PlayerInfo[playerid][posZ], PlayerInfo[playerid][posA], 0, 0, 0, 0, 0, 0);
  388. SpawnPlayer(playerid);
  389.  
  390. SendServerMessage(playerid, "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè¨Õ·ÕàÍÍ͹äŹì");
  391. return 1;
  392. }
  393.  
  394. public OnAccountRegister(playerid)
  395. {
  396. PlayerInfo[playerid][ID] = cache_insert_id();
  397. printf("[Registration] New account registered. Database ID: [%d]", PlayerInfo[playerid][ID]);
  398.  
  399. TogglePlayerSpectating(playerid, false);
  400.  
  401. SetSpawnInfo(playerid, 0, 23, SPAWN_X, SPAWN_Y, SPAWN_Z, SPAWN_A, 0, 0, 0, 0, 0, 0);
  402. SpawnPlayer(playerid);
  403. return 1;
  404. }
  405.  
  406. public OnAccountCheck(playerid)
  407. {
  408. new
  409. rows,
  410. fields;
  411. cache_get_data(rows, fields, mysql);
  412.  
  413. if(rows)
  414. {
  415. cache_get_field_content(0, "Password", PlayerInfo[playerid][Password], mysql, 129);
  416. PlayerInfo[playerid][ID] = cache_get_field_content_int(0, "ID");
  417. ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "[Login]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèҹŧ´éÒ¹ÅèÒ§à¾×èÍà¢éÒàÅè¹", "à¢éÒà¡Á!", "ÍÍ¡¨Ò¡à¡Á");
  418. }
  419. else
  420. {
  421. ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "[Registration]", "ÂÔ¹´Õµé͹ÃѺà¢éÒÊÙè "SERVER_NAME"\nâ»Ã´ÍèÒ¹: ¡ÃسÒãÊèÃËÑʼèÒ¹·Õè¤Ø³µéͧ¡ÒÃŧ´éÒ¹ÅèÒ§", "ŧ·ÐàºÕ¹", "ÍÍ¡¨Ò¡à¡Á");
  422. }
  423. return 1;
  424. }
  425.  
  426. stock SendClientMessageEx(playerid, color, const text[], {Float, _}:...)
  427. {
  428. new
  429. args,
  430. str[144];
  431.  
  432. /*
  433. * Custom function that uses #emit to format variables into a string.
  434. * This code is very fragile; touching any code here will cause crashing!
  435. */
  436. if ((args = numargs()) == 3)
  437. {
  438. SendClientMessage(playerid, color, text);
  439. }
  440. else
  441. {
  442. while (--args >= 3)
  443. {
  444. #emit LCTRL 5
  445. #emit LOAD.alt args
  446. #emit SHL.C.alt 2
  447. #emit ADD.C 12
  448. #emit ADD
  449. #emit LOAD.I
  450. #emit PUSH.pri
  451. }
  452. #emit PUSH.S text
  453. #emit PUSH.C 144
  454. #emit PUSH.C str
  455. #emit PUSH.S 8
  456. #emit SYSREQ.C format
  457. #emit LCTRL 5
  458. #emit SCTRL 4
  459.  
  460. SendClientMessage(playerid, color, str);
  461.  
  462. #emit RETN
  463. }
  464. return 1;
  465. }
Advertisement
Add Comment
Please, Sign In to add comment