Advertisement
Guest User

DWAR(SA-MP)

a guest
Jun 22nd, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.21 KB | None | 0 0
  1. /* ==============================
  2. * DWAR v1.0 *
  3. * Creater:Devil *
  4. * Category: Team Death Match *
  5. * Copyright(C) 2011-2012 *
  6. ===============================
  7.  
  8. ##################
  9. ## Bugs ##
  10. ##################
  11. *v1.0
  12. -Class Selection bug.
  13. ###################
  14. ## ChangeLog ##
  15. ###################
  16.  
  17. *1.0
  18. - GameMode Release.
  19. - Added 4 gangs:Grove Street, Ballas, Vagos, Azetecas.
  20. - Added few cmds.
  21. - Added Login/Register System.
  22. - Added score system.
  23. - Added Player Data Saving System.
  24. ------------------------------------------------------
  25. ------------------------------------------------------'
  26. */
  27.  
  28.  
  29. #include <a_samp>
  30. #include <YSI\y_ini>
  31. #include <zcmd>
  32. #include <sscanf2>
  33.  
  34. native WP_Hash(buffer[],len,const str[]);
  35.  
  36. //==== SERVER FILES========
  37. #define SERVER_USER_FILES "/Users/%s.ini"
  38. #define LOGIN 5
  39. #define REGISTER 6
  40. #define Version "1.0"
  41. //==========================
  42. //==== COLOURS=============
  43. #define COLOR_WHITE 0xFFFFFFFF
  44. #define COLOR_GREEN 0x33AA33AA
  45. #define COLOR_RED 0xA10000AA
  46. #define COLOR_YELLOW 0xFFFF00AA
  47. #define COLOR_GREY 0xAFAFAFAA
  48. #define LIME 0x88AA62FF
  49. #define WHITE 0xFFFFFFAA
  50. #define RULE 0xFBDF89AA
  51. #define ORANGE 0xDB881AAA
  52. #define GOLD 0xB8860BAA
  53.  
  54. #define GREY 0xAFAFAFAA
  55. #define GREEN 0x9FFF00FF
  56. #define RED 0xA10000AA
  57. #define YELLOW 0xFFFF00AA
  58. #define WHITE 0xFFFFFFAA
  59. #define BLUE 0x0000BBAA
  60. //============================
  61. //===== GANGS =============
  62. #define TEAM_GROVE 1
  63. #define TEAM_BALLAS 2
  64. #define TEAM_VAGOS 3
  65. #define TEAM_AZETECAS 4
  66. //========================
  67. new TeamSkins[4][3] = {
  68. {105, 106, 107},//Grove Street
  69. {102,104,103},//Ballas
  70. {108,109,110},//VAGOS
  71. {114,115,116}//Azetecas
  72. };
  73.  
  74. enum PInfo
  75. {
  76. alevel,
  77. kills,
  78. deaths,
  79. money,
  80. score,
  81. pass
  82. };
  83. new PlayerInfo[MAX_PLAYERS][PInfo];
  84.  
  85.  
  86. main()
  87. {
  88. print("\n----------------------------------");
  89. print(" DWAR v1.0 by Devil[]");
  90. print("----------------------------------\n");
  91. }
  92.  
  93.  
  94.  
  95. public OnGameModeInit()
  96. {
  97. SetGameModeText("DWAR v1.0");
  98.  
  99. //Grove Street
  100. AddPlayerClass(105, 2495.4626,-1687.1388,13.5157,359.6642, 4, 1, 23, 85, 27, 100);
  101. AddPlayerClass(106, 2495.4626,-1687.1388,13.5157,359.6642, 4, 1, 24, 85, 25, 100);
  102. AddPlayerClass(107, 2495.4626,-1687.1388,13.5157,359.6642, 4, 1, 24, 85, 29, 100);
  103. AddStaticVehicle(412,2498.3982,-1683.6530,13.4790,287.8601,16,1); // grocar1 Voodo
  104. AddStaticVehicle(451,2510.1709,-1670.5969,13.5032,346.5737,16,1); // grocar2 Turismo
  105. AddStaticVehicle(466,2472.7952,-1697.1896,13.6087,180.4140,16,1); // gro3 Glendale
  106. AddStaticVehicle(492,2443.0625,-1644.9572,13.5635,180.5405,16,1); // grocar4 GreenWood
  107. AddStaticVehicle(536,2469.0442,-1653.4147,13.4926,267.8338,16,1); // grocar5 Blade
  108. AddStaticVehicle(560,2485.8743,-1653.5474,13.4882,267.6175,16,1); // grovcar6 Sultan
  109. //Ballas
  110. AddPlayerClass(102, 1934.0304,-1122.1691,26.3168,180.4718, 4, 1, 23, 85, 27, 100);
  111. AddPlayerClass(103, 1934.0304,-1122.1691,26.3168,180.4718, 4, 1, 24, 85, 25, 100);
  112. AddPlayerClass(104, 1934.0304,-1122.1691,26.3168,180.4718, 4, 1, 24, 85, 29, 100);
  113. AddStaticVehicle(477,1938.7206,-1130.7858,25.4542,271.2517,148,1); // balcar1 ZR-350
  114. AddStaticVehicle(517,1947.2368,-1130.7203,25.6692,270.9459,148,1); // balcar2 Majestic
  115. AddStaticVehicle(518,1910.9399,-1119.3951,25.8749,181.8393,148,1); // balcar3 Buccaner
  116. AddStaticVehicle(536,1931.8234,-1140.6108,25.2823,273.1115,148,1); // balcar5 Blade
  117. AddStaticVehicle(560,1946.8193,-1140.5719,25.6580,269.6075,148,1); // baclcar6 Sultan
  118. //Vagos
  119. AddPlayerClass(108, 2230.7905,-1159.8066,25.8240,91.0087, 4, 1, 24, 85, 29, 100);
  120. AddPlayerClass(109, 2230.7905,-1159.8066,25.8240,91.0087, 4, 1, 24, 85, 25, 100);
  121. AddPlayerClass(104, 2230.7905,-1159.8066,25.8240,91.0087, 4, 1, 24, 85, 29, 100);
  122. AddStaticVehicle(467,2227.9126,-1170.1207,25.8273,272.5895,6,1); // vagcar 1 Ocenic
  123. AddStaticVehicle(474,2228.3176,-1173.4786,25.8213,272.6245,6,1); // vagcar2 Herms
  124. AddStaticVehicle(536,2228.5515,-1177.1879,25.8190,273.8722,6,1); // vag car3 Blade
  125. AddStaticVehicle(541,2227.1460,-1166.1656,25.8336,276.1591,6,1); // vagcar 4 Blade
  126. AddStaticVehicle(560,2217.3081,-1170.3677,25.8189,267.4512,6,1); // vagcar5 Sultan
  127. AddStaticVehicle(562,2216.3352,-1166.5425,25.8190,266.1354,6,1); // vagcar 6 Elegly
  128. //Azerecas
  129. AddPlayerClass(114, 1804.1315,-2124.2673,13.9424,1.8982, 4, 1, 24, 85, 29, 100);
  130. AddPlayerClass(115, 1804.1315,-2124.2673,13.9424,1.8982, 4, 1, 24, 85, 25, 100);
  131. AddPlayerClass(116, 1804.1315,-2124.2673,13.9424,1.8982, 4, 1, 24, 85, 29, 100);
  132. AddStaticVehicle(475,1793.3677,-2128.6050,13.6392,358.4607,147,1); // azecar1 Sabre
  133. AddStaticVehicle(506,1799.2717,-2107.4038,13.5457,270.7622,147,1); // azecar2 Super GT
  134. AddStaticVehicle(534,1771.8998,-2125.1848,13.6391,0.2481,147,1); // azecar3 Remington
  135. AddStaticVehicle(533,1773.1569,-2099.0420,13.6391,2.5929,147,1); // azecar4 Feltzer
  136. AddStaticVehicle(536,1780.0587,-2107.5459,13.5506,268.9003,147,1); // azecar5 Blade
  137. AddStaticVehicle(560,1761.8180,-2117.5664,13.5558,269.8384,147,1); // azcar6 Sultan
  138. return 1;
  139. }
  140.  
  141. public OnGameModeExit()
  142. {
  143. return 1;
  144. }
  145.  
  146. public OnPlayerRequestClass(playerid, classid)
  147. {
  148. switch(classid)
  149. {
  150. case 0..2:
  151. {
  152. SetPlayerTeam(playerid, TEAM_GROVE);
  153. SetPlayerSkin(playerid, TeamSkins[0][classid]);
  154. GameTextForPlayer(playerid, "Grove", 1000, 3);
  155. SetPlayerPos(playerid, 2495.4626,-1687.1388,13.5157);
  156. SetPlayerCameraPos(playerid, 2495.3899,-1684.0034,13.4492);
  157. SetPlayerFacingAngle(playerid, 87.7342);
  158. SetPlayerCameraLookAt(playerid, 2495.4626,-1687.1388,13.5157);
  159. }
  160. case 3..5:
  161. {
  162. SetPlayerTeam(playerid, TEAM_BALLAS);
  163. SetPlayerSkin(playerid, TeamSkins[1][classid-3]);
  164. GameTextForPlayer(playerid, "Ballas", 1000, 3);
  165. SetPlayerPos(playerid, 1934.0304,-1122.1691,26.3168);
  166. SetPlayerCameraPos(playerid, 1934.1154,-1124.7775,25.6159);
  167. SetPlayerFacingAngle(playerid, 87.7342);
  168. SetPlayerCameraLookAt(playerid, 1934.0304,-1122.1691,26.3168);
  169. }
  170. case 6..7:
  171. {
  172. SetPlayerTeam(playerid, TEAM_VAGOS);
  173. SetPlayerSkin(playerid, TeamSkins[2][classid-3]);
  174. GameTextForPlayer(playerid, "Vagos", 1000, 3);
  175. SetPlayerPos(playerid, 2230.7905,-1159.8066,25.8240);
  176. SetPlayerCameraPos(playerid, 2229.9287,-1159.8279,25.8112);
  177. SetPlayerFacingAngle(playerid, 87.7342);
  178. SetPlayerCameraLookAt(playerid, 2230.7905,-1159.8066,25.8240);
  179. }
  180. case 8..10:
  181. {
  182. SetPlayerTeam(playerid, TEAM_AZETECAS);
  183. SetPlayerSkin(playerid, TeamSkins[3][classid-3]);
  184. GameTextForPlayer(playerid, "Azetecas", 1000, 3);
  185. SetPlayerPos(playerid, 1804.1315,-2124.2673,13.9424);
  186. SetPlayerCameraPos(playerid, 1804.0824,-2122.7837,13.5543);
  187. SetPlayerFacingAngle(playerid, 87.7342);
  188. SetPlayerCameraLookAt(playerid, 1804.1315,-2124.2673,13.9424);
  189. }
  190.  
  191. }
  192. return 1;
  193. }
  194.  
  195. forward loadaccount_user(playerid, name[], value[]);
  196.  
  197. public loadaccount_user(playerid, name[], value[])
  198. {
  199. INI_Int("AdminLevel", PlayerInfo[playerid][alevel]);
  200. INI_Int("Score", PlayerInfo[playerid][score]);
  201. INI_Int("Kills", PlayerInfo[playerid][kills]);
  202. INI_Int("Deaths", PlayerInfo[playerid][deaths]);
  203. INI_Int("Cash", PlayerInfo[playerid][money]);
  204. return 1;
  205. }
  206. public OnPlayerConnect(playerid)
  207. {
  208. SendClientMessage(playerid, BLUE, "=========== DWAR v1.0 ===========");
  209. SendClientMessage(playerid, BLUE, " Welcome DWar TDM!");
  210. SendClientMessage(playerid, BLUE, "Script programmed by Devil[]");
  211. SendClientMessage(playerid, BLUE, "ENJOY");
  212. SendClientMessage(playerid, BLUE, "=================================");
  213.  
  214. new name[MAX_PLAYER_NAME];
  215. GetPlayerName(playerid, name, sizeof(name));
  216. if(fexist(UserPath(playerid)))
  217. {
  218. INI_ParseFile(UserPath(playerid), "loadaccount_%s", .bExtra = true, .extra = playerid);
  219. ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login System", "Welcome back to DWAR v1.0.\nThe account is registered.\n Put your password to spawn.", "Login", "Quit");
  220. }
  221. else
  222. {
  223. ShowPlayerDialog(playerid, REGISTER, DIALOG_STYLE_INPUT, "Register System", "Welcome to DWAR v1.0.\nThe account is no registered.\n Register by your pass here.", "Register", "Quit");
  224. }
  225. return 1;
  226. }
  227.  
  228. public OnPlayerDisconnect(playerid, reason)
  229. {
  230. if(fexist(UserPath(playerid)))
  231. {
  232. new INI:file = INI_Open(UserPath(playerid));
  233. INI_SetTag(file, "Player Data");
  234. INI_WriteInt(file, "Admin Level", PlayerInfo[playerid][alevel]);
  235. INI_WriteInt(file, "Score", PlayerInfo[playerid][score]);
  236. INI_WriteInt(file, "Money", PlayerInfo[playerid][money]);
  237. INI_WriteInt(file, "Kills", PlayerInfo[playerid][kills]);
  238. INI_WriteInt(file, "Deaths", PlayerInfo[playerid][deaths]);
  239. INI_Close(file);
  240. return 1;
  241. }
  242. return 1;
  243. }
  244.  
  245. public OnPlayerSpawn(playerid)
  246. {
  247. GivePlayerMoney(playerid, 5000);
  248. return 1;
  249. }
  250.  
  251. public OnPlayerDeath(playerid, killerid, reason)
  252. {
  253. PlayerInfo[playerid][deaths]++;
  254. if(IsPlayerConnected(killerid) && killerid != playerid)
  255. PlayerInfo[killerid][kills]++;
  256. GivePlayerMoney(killerid, 500);
  257. return 1;
  258. }
  259.  
  260. public OnVehicleSpawn(vehicleid)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnVehicleDeath(vehicleid, killerid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnPlayerText(playerid, text[])
  271. {
  272. return 1;
  273. }
  274. forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
  275. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  276. {
  277. if(!success)
  278. {
  279. SendClientMessage(playerid, COLOR_RED, "[SYSTEM]:Invalid Command!");
  280. }
  281. return 1;
  282. }
  283. CMD:help(playerid, params[])
  284. {
  285. SendClientMessage(playerid, GREEN, "========= DWAR help ==========");
  286. SendClientMessage(playerid, GREEN, "You are playing DWAR Server by Devil[]");
  287. SendClientMessage(playerid, GREEN, "Use /cmds for commands");
  288. SendClientMessage(playerid, GREEN, "=================================");
  289. return 1;
  290. }
  291. CMD:cmds(playerid, params[])
  292. {
  293. SendClientMessage(playerid, RED, "============ DWAR COMMANDS ==============");
  294. SendClientMessage(playerid, RED, " /help, /heal, /armour, /kill");
  295. SendClientMessage(playerid, RED, "=========================================");
  296. return 1;
  297. }
  298. CMD:heal(playerid, params[])
  299. {
  300. new name[MAX_PLAYER_NAME], string[128];
  301. GetPlayerName(playerid, name, sizeof(name));
  302. format(string, sizeof(string), "[SYSTEM]:You have been healed.", name);
  303. GivePlayerMoney(playerid, -100);
  304. SetPlayerHealth(playerid, 100);
  305. SendClientMessage(playerid, COLOR_YELLOW, string);
  306. return 1;
  307. }
  308.  
  309. CMD:armour(playerid, params[])
  310. {
  311. new name[MAX_PLAYER_NAME], string[128];
  312. GetPlayerName(playerid, name, sizeof(name));
  313. format(string, sizeof(string), "[SYSTEM]:You gain armour.", name);
  314. SendClientMessage(playerid, COLOR_YELLOW, string);
  315. GivePlayerMoney(playerid, -100);
  316. SetPlayerArmour(playerid, 100);
  317.  
  318. }
  319.  
  320. CMD:kill(playerid, params[])
  321. {
  322. new name[MAX_PLAYER_NAME], string[128];
  323. GetPlayerName(playerid, name, sizeof(name));
  324. format(string, sizeof(string), "[SYSTEM]:%s has commited a sucide.", name);
  325. SendClientMessage(playerid, COLOR_RED, string);
  326. SetPlayerHealth(playerid, 0);
  327. return 1;
  328. }
  329. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  330. {
  331. return 1;
  332. }
  333.  
  334. public OnPlayerExitVehicle(playerid, vehicleid)
  335. {
  336. return 1;
  337. }
  338.  
  339. public OnPlayerStateChange(playerid, newstate, oldstate)
  340. {
  341. return 1;
  342. }
  343.  
  344. public OnPlayerEnterCheckpoint(playerid)
  345. {
  346. return 1;
  347. }
  348.  
  349. public OnPlayerLeaveCheckpoint(playerid)
  350. {
  351. return 1;
  352. }
  353.  
  354. public OnPlayerEnterRaceCheckpoint(playerid)
  355. {
  356. return 1;
  357. }
  358.  
  359. public OnPlayerLeaveRaceCheckpoint(playerid)
  360. {
  361. return 1;
  362. }
  363.  
  364. public OnRconCommand(cmd[])
  365. {
  366. return 1;
  367. }
  368.  
  369. public OnPlayerRequestSpawn(playerid)
  370. {
  371. return 1;
  372. }
  373.  
  374. public OnObjectMoved(objectid)
  375. {
  376. return 1;
  377. }
  378.  
  379. public OnPlayerObjectMoved(playerid, objectid)
  380. {
  381. return 1;
  382. }
  383.  
  384. public OnPlayerPickUpPickup(playerid, pickupid)
  385. {
  386. return 1;
  387. }
  388.  
  389. public OnVehicleMod(playerid, vehicleid, componentid)
  390. {
  391. return 1;
  392. }
  393.  
  394. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  395. {
  396. return 1;
  397. }
  398.  
  399. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  400. {
  401. return 1;
  402. }
  403.  
  404. public OnPlayerSelectedMenuRow(playerid, row)
  405. {
  406. return 1;
  407. }
  408.  
  409. public OnPlayerExitedMenu(playerid)
  410. {
  411. return 1;
  412. }
  413.  
  414. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  415. {
  416. return 1;
  417. }
  418.  
  419. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  420. {
  421. return 1;
  422. }
  423.  
  424. public OnRconLoginAttempt(ip[], password[], success)
  425. {
  426. return 1;
  427. }
  428.  
  429. public OnPlayerUpdate(playerid)
  430. {
  431. return 1;
  432. }
  433.  
  434. public OnPlayerStreamIn(playerid, forplayerid)
  435. {
  436. return 1;
  437. }
  438.  
  439. public OnPlayerStreamOut(playerid, forplayerid)
  440. {
  441. return 1;
  442. }
  443.  
  444. public OnVehicleStreamIn(vehicleid, forplayerid)
  445. {
  446. return 1;
  447. }
  448.  
  449. public OnVehicleStreamOut(vehicleid, forplayerid)
  450. {
  451. return 1;
  452. }
  453.  
  454. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  455. {
  456. if(dialogid == REGISTER)
  457. {
  458. if(!response) return Kick(playerid);
  459. if(response)
  460. {
  461. if(!strlen(inputtext))
  462. {
  463. ShowPlayerDialog(playerid, REGISTER, DIALOG_STYLE_INPUT, "Register System", "Welcome to DWAR v1.0.\nThe account is no registered.\n Register by your pass here.", "Register", "Quit");
  464. return 1;
  465. }
  466. new hashpass[129];
  467. WP_Hash(hashpass, sizeof(hashpass), inputtext);
  468. new INI:file = INI_Open(UserPath(playerid));
  469. INI_SetTag(file, "Player's Data");
  470. INI_WriteString(file, "Pass", hashpass);
  471. INI_WriteInt(file, "Admin Level", 0);
  472. INI_WriteInt(file, "Score", 0);
  473. INI_WriteInt(file, "Money", 5000);
  474. INI_WriteInt(file, "Kills", 0);
  475. INI_WriteInt(file, "Deaths", 0);
  476. INI_Close(file);
  477. SendClientMessage(playerid, COLOR_YELLOW, "[SYSTEM]:You have been successfully registered.");
  478. } return 1;
  479. }
  480. if(dialogid == LOGIN)
  481. {
  482. if(!response) return Kick(playerid);
  483. if(response)
  484. {
  485. new hashpass[129];
  486. WP_Hash(hashpass, sizeof(hashpass), inputtext);
  487. if(!strcmp(hashpass, PlayerInfo[playerid][pass]))
  488. {
  489. new name[MAX_PLAYER_NAME], string[128];
  490. GetPlayerName(playerid, name, sizeof(name));
  491. format(string, sizeof(string), "[SYSTEM]:Welcome back %s.", name);
  492. INI_ParseFile(UserPath(playerid), "loadaccount_%s", .bExtra = true, .extra = playerid);
  493. SetPlayerScore(playerid, PlayerInfo[playerid][score]);
  494. GivePlayerMoney(playerid, PlayerInfo[playerid][money]);
  495. SendClientMessage(playerid, COLOR_YELLOW, string);
  496. }
  497. else
  498. {
  499. ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login System", "Welcome back to DWAR v1.0.\nThe account is registered.\n Put your password to spawn.", "Login", "Quit");
  500. return 1;
  501. }
  502. }
  503. }
  504. return 1;
  505. }
  506.  
  507. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  508. {
  509. return 1;
  510. }
  511.  
  512. stock IsAdmin(playerid, level)
  513. {
  514. if(PlayerInfo[playerid][alevel] >= level || IsPlayerAdmin(playerid)) return true;
  515. else return false;
  516. }
  517.  
  518. stock UserPath(playerid)
  519. {
  520. new name[MAX_PLAYER_NAME], string[128];
  521. GetPlayerName(playerid, name, sizeof(name));
  522. format(string, sizeof(string), SERVER_USER_FILES, name);
  523. return string;
  524. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement