Bulletje

Untitled

Jan 24th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.32 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: jimmy
  4. Mission Base: Last team standing
  5. Mission Type: Last team standing
  6. Mission Type ID: 5
  7. */
  8. //==============================================================================
  9. // Includes
  10. //==============================================================================
  11. #include <a_samp>
  12. #include <crashdetect>
  13. #include <float>
  14.  
  15. #include "..\filterscripts\MM\stuff\defines"
  16. #include "..\filterscripts\MM\stuff\serverkeymsg"
  17.  
  18. //==============================================================================
  19. // Defines
  20. //==============================================================================
  21.  
  22. #define MISSION_NAME "End Of The Line"
  23. #define Health 100
  24. #define TEAM_DEFEND_NAME "Hobos"
  25. #define TEAM_ATTACK_NAME "Hobos"
  26. #define MAX_MAP_OBJECTS 65
  27. #define VEHICLE_HEALTH 0
  28. #define CLASS_POSTION 411.2314,46.6502,129.2824
  29. #define CLASS_CAMERA 416.1154,46.7107,129.2895
  30. #define CLASS_FACING_AGNLE 268.0341
  31. #define START_TIME 20
  32.  
  33. //==============================================================================
  34. // Per mission functions
  35. //============================================================================== 20
  36.  
  37. enum ped_enum
  38. {
  39. TeamID,
  40. Skin,
  41. Float:SpawnX,
  42. Float:SpawnY,
  43. Float:SpawnZ,
  44. Float:SpawnAngle,
  45. SpawnInterior,
  46. VirtualWorld,
  47. Weapon1,
  48. Ammo1,
  49. Weapon2,
  50. Ammo2,
  51. Weapon3,
  52. Ammo3,
  53. };
  54.  
  55. new const PedInfo[][ped_enum] = {
  56. {TEAM_DEFEND,78, 2648.2354,-1184.3414,593.1777,88.6035,0,0,WEAPON_CHAINSAW,1,0,0,0,0},
  57. {TEAM_ATTACK,79, 2616.8513,-1120.3346,593.1777,264.6751,0,0,WEAPON_CHAINSAW,1,0,0,0,0}
  58. };
  59.  
  60. #if MAX_MAP_OBJECTS != 0
  61. new Object[MAX_MAP_OBJECTS];
  62.  
  63. CreateMap()
  64. {
  65. Object[0] = CreateObject(17946,2643.7644040,-1170.6384270,595.1777340,0.0000000,0.0000300,0.0000000); //
  66. Object[1] = CreateObject(17946,2621.2133780,-1134.9261470,595.1777340,0.0000000,-0.0000300,179.9998160); //
  67. Object[2] = CreateObject(3593,2611.8811030,-1132.7456050,592.8879390,0.0000000,0.0000300,0.0000000); //
  68. Object[3] = CreateObject(1227,2624.1982420,-1149.5581050,593.0294790,0.0000300,0.0000000,89.9999080); //
  69. Object[4] = CreateObject(3594,2641.2578120,-1154.1968990,592.8088980,0.0000000,-0.0000300,179.9998160); //
  70. Object[5] = CreateObject(1264,2624.3442380,-1150.9688720,592.6499020,0.0000000,0.0000300,0.0000000); //
  71. Object[6] = CreateObject(1265,2624.1745600,-1151.6702880,592.6467890,0.0000000,0.0000300,0.0000000); //
  72. Object[7] = CreateObject(1265,2624.7053220,-1151.3139640,592.6467890,0.0000290,0.0000080,73.4445800); //
  73. Object[8] = CreateObject(1430,2625.2773430,-1156.7464590,592.4932860,0.0000000,0.0000300,0.0000000); //
  74. Object[9] = CreateObject(1430,2625.4304190,-1156.0679930,592.4932860,0.0000300,90.0000000,89.9999080); //
  75. Object[10] = CreateObject(1372,2644.9436030,-1148.9614250,592.1777340,0.0000000,0.0000300,0.0000000); //
  76. Object[11] = CreateObject(1349,2640.9128410,-1148.2711180,592.7481070,0.0000000,0.0000300,0.0000000); //
  77. Object[12] = CreateObject(1345,2617.7873530,-1141.9227290,592.9478750,0.0000000,0.0000300,0.0000000); //
  78. Object[13] = CreateObject(1339,2645.7929680,-1164.6296380,592.8397210,0.0000000,0.0000300,0.0000000); //
  79. Object[14] = CreateObject(1338,2644.5898430,-1164.6726070,592.8961180,0.0000000,0.0000300,0.0000000); //
  80. Object[15] = CreateObject(1327,2646.9248040,-1163.6420890,593.1456900,89.9999920,180.0000000,-89.9999610); //
  81. Object[16] = CreateObject(1299,2652.9873040,-1160.5889890,592.6406860,0.0000000,0.0000300,0.0000000); //
  82. Object[17] = CreateObject(12957,2638.1096190,-1178.9953610,593.0559690,0.0000000,0.0000300,0.0000000); //
  83. Object[18] = CreateObject(12954,2610.8222650,-1145.3179930,592.7703850,0.0000000,0.0000300,0.0000000); //
  84. Object[19] = CreateObject(1236,2613.8063960,-1151.5541990,592.8404540,0.0000300,0.0000000,89.9999080); //
  85. Object[20] = CreateObject(1230,2639.6926260,-1154.0006100,592.6015620,0.0000000,0.0000300,0.0000000); //
  86. Object[21] = CreateObject(1230,2639.4863280,-1153.3530270,592.6015620,-0.0000160,0.0000250,-33.7447500); //
  87. Object[22] = CreateObject(1224,2649.0778800,-1150.8636470,594.1289060,0.0000000,0.0000300,0.0000000); //
  88. Object[23] = CreateObject(1221,2647.9548330,-1149.3775630,592.6395260,0.0000000,0.0000300,0.0000000); //
  89. Object[24] = CreateObject(1220,2625.2873530,-1156.8155510,593.7312010,0.0000000,0.0000300,0.0000000); //
  90. Object[25] = CreateObject(1219,2625.9636230,-1156.3665770,592.5406490,70.0000150,0.0000000,89.9999080); //
  91. Object[26] = CreateObject(1558,2614.0212400,-1149.9154050,592.7517080,0.0000000,0.0000300,0.0000000); //
  92. Object[27] = CreateObject(960,2612.7006830,-1156.4578850,592.5595090,0.0000000,0.0000300,0.0000000); //
  93. Object[28] = CreateObject(952,2638.1774900,-1167.0024410,593.5192260,0.0000000,0.0000300,0.0000000); //
  94. Object[29] = CreateObject(933,2627.2038570,-1140.4973140,592.1777340,0.0000000,0.0000300,0.0000000); //
  95. Object[30] = CreateObject(933,2627.0739740,-1138.7457270,592.1777340,0.0000000,0.0000300,0.0000000); //
  96. Object[31] = CreateObject(933,2625.5930170,-1140.1749260,592.1777340,0.0000000,0.0000300,0.0000000); //
  97. Object[32] = CreateObject(933,2626.8940420,-1140.0427240,593.1914060,0.0000000,0.0000300,0.0000000); //
  98. Object[33] = CreateObject(933,2613.8447260,-1156.6143790,592.1777340,0.0000000,0.0000300,0.0000000); //
  99. Object[34] = CreateObject(933,2625.5395500,-1154.4254150,592.1848140,0.0000000,0.0000300,0.0000000); //
  100. Object[35] = CreateObject(928,2624.5844720,-1157.2666010,592.4364010,0.0000000,0.0000300,0.0000000); //
  101. Object[36] = CreateObject(926,2633.9467770,-1156.6381830,592.4270620,0.0000000,0.0000300,0.0000000); //
  102. Object[37] = CreateObject(924,2631.8601070,-1156.5262450,592.3584590,0.0000000,0.0000300,0.0000000); //
  103. Object[38] = CreateObject(917,2630.7243650,-1156.7443840,592.3104240,0.0000000,0.0000300,0.0000000); //
  104. Object[39] = CreateObject(853,2635.6481930,-1156.7149650,592.5784300,0.0000000,0.0000300,0.0000000); //
  105. Object[40] = CreateObject(852,2631.8701170,-1149.0959470,592.1777340,0.0000000,0.0000300,0.0000000); //
  106. Object[41] = CreateObject(850,2626.8601070,-1150.3764640,592.2963250,0.0000000,0.0000300,0.0000000); //
  107. Object[42] = CreateObject(3302,2650.1652830,-1149.6518550,592.2614740,0.0000000,0.0000300,0.0000000); //
  108. Object[43] = CreateObject(3092,2649.0000000,-1152.7595210,593.6452630,0.0000300,270.0000000,89.9999080); //
  109. Object[44] = CreateObject(3012,2612.5708000,-1155.8387450,592.1777340,0.0000000,0.0000300,0.0000000); //
  110. Object[45] = CreateObject(3011,2611.9697260,-1157.0758050,592.4619750,0.0000000,0.0000300,0.0000000); //
  111. Object[46] = CreateObject(3010,2612.0810540,-1157.0758050,592.9020990,0.0000000,0.0000300,0.0000000); //
  112. Object[47] = CreateObject(3009,2595.4396970,-1189.1187740,570.7376700,0.0000000,0.0000300,0.0000000); //
  113. Object[48] = CreateObject(3007,2611.3923330,-1156.5146480,592.1777340,0.0000000,0.0000300,0.0000000); //
  114. Object[49] = CreateObject(3005,2621.4509270,-1153.2915030,592.1777340,0.0000000,0.0000300,0.0000000); //
  115. Object[50] = CreateObject(3006,2621.4448240,-1153.2812500,592.1777340,0.0000000,0.0000300,0.0000000); //
  116. Object[51] = CreateObject(2971,2648.7233880,-1155.5892330,592.1777340,0.0000000,0.0000300,0.0000000); //
  117. Object[52] = CreateObject(2900,2637.4987790,-1156.9448240,592.1848140,0.0000000,0.0000300,0.0000000); //
  118. Object[53] = CreateObject(1450,2636.9211420,-1148.8885490,592.7780150,0.0000000,0.0000300,0.0000000); //
  119. Object[54] = CreateObject(1449,2638.8088370,-1148.5499260,592.6994010,0.0000000,0.0000300,0.0000000); //
  120. Object[55] = CreateObject(1441,2635.0454100,-1148.8233640,592.8294060,0.0000000,0.0000300,0.0000000); //
  121. Object[56] = CreateObject(1440,2642.6271970,-1148.1113280,592.6968380,0.0000000,0.0000300,0.0000000); //
  122. Object[57] = CreateObject(1438,2626.4206540,-1148.5396720,592.1848140,0.0000000,0.0000300,0.0000000); //
  123. Object[58] = CreateObject(1439,2628.7749020,-1148.8223870,592.1777340,0.0000000,0.0000300,0.0000000); //
  124. Object[59] = CreateObject(1236,2649.1760250,-1148.9849850,593.0139160,0.0000300,0.0000000,89.9999080); //
  125. Object[60] = CreateObject(1236,2649.1645500,-1151.1651610,592.8404540,0.0000300,0.0000000,89.9999080); //
  126. Object[61] = CreateObject(1236,2649.1735830,-1153.4331050,592.8404540,0.0000300,0.0000000,89.9999080); //
  127. Object[62] = CreateObject(1345,2619.9323730,-1123.7441400,592.9549560,0.0000000,0.0000300,0.0000000); //
  128. Object[63] = CreateObject(1439,2645.1542960,-1181.2916250,592.1848140,0.0000000,0.0000300,0.0000000); //
  129. Object[64] = CreateObject(1439,2643.4619140,-1181.2962640,592.1848140,0.0000000,0.0000300,0.0000000); //
  130. }
  131. #endif
  132.  
  133. //==============================================================================
  134. // Basic vars
  135. //==============================================================================
  136.  
  137. new bool:MissionStarted;
  138. new bool:ObjectiveStarted;
  139. new bool:MissionCancelled;
  140.  
  141. native IsValidVehicle(vehicleid);
  142.  
  143. enum teamdata
  144. {
  145. Kills,
  146. Name[32],
  147. Members
  148. };
  149.  
  150. enum playerdata
  151. {
  152. UserName[MAX_PLAYER_NAME],
  153. bool:TeamChosen,
  154. TeamSelection,
  155. PlayerClassID,
  156. Counted,
  157. AllowedToSpawn
  158. };
  159.  
  160. new Team[2][teamdata];
  161. new PlayerMissionInfo[MAX_PLAYERS][playerdata];
  162.  
  163. //==============================================================================
  164. // Basic script
  165. //==============================================================================
  166.  
  167. main()
  168. {
  169. print("----------------------------------");
  170. print(" Mission: "MISSION_NAME" started.");
  171. print("----------------------------------\n");
  172. }
  173.  
  174. public OnGameModeInit()
  175. {
  176. MissionStarted= true;
  177.  
  178. format(Team[TEAM_DEFEND][Name],32,"%s",TEAM_DEFEND_NAME);
  179. format(Team[TEAM_ATTACK][Name],32,"%s",TEAM_ATTACK_NAME);
  180.  
  181. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  182.  
  183. #if MAX_MAP_OBJECTS != 0
  184. CreateMap();
  185. #endif
  186.  
  187. for(new i=0; i<sizeof(PedInfo); i++)AddPlayerClassEx(PedInfo[i][TeamID],PedInfo[i][Skin],PedInfo[i][SpawnX],PedInfo[i][SpawnY],PedInfo[i][SpawnZ],PedInfo[i][SpawnAngle],0,0,0,0,0,0);
  188.  
  189. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  190. for(new i=0; i<MAX_PLAYERS; i++) PlayerMissionInfo[i][TeamSelection]= NO_TEAM;
  191.  
  192. SetTimer("StartMissionFunc",3000,false);
  193. return 1;
  194. }
  195.  
  196. FUNCTION StartMissionFunc()
  197. {
  198. CallRemoteFunction("StartMission","");
  199. SetTimer("CloseSpawns",1000*(START_TIME-3),false);
  200. ObjectiveStarted= true;
  201. return 1;
  202. }
  203.  
  204. FUNCTION CloseSpawns()
  205. {
  206. PlaySoundForAll(1057);
  207. if(Team[TEAM_DEFEND][Members] >= 1 && Team[TEAM_ATTACK][Members] >= 1)
  208. {
  209. GameTextForAll("~r~START THE BLOOD WAR!",1000,3);
  210. ObjectiveStarted= true;
  211. ToggleControllable(true);
  212. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last team standing deathmatch has started. KILL THE OTHER TEAM!");
  213. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last team standing deathmatch has started. KILL THE OTHER TEAM!",0);
  214. }
  215. else CallRemoteFunction("EndMission","");
  216. }
  217.  
  218. public OnGameModeExit()
  219. {
  220. #if MAX_MAP_OBJECTS != 0
  221. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  222. #endif
  223. return 1;
  224. }
  225.  
  226. public OnPlayerDisconnect(playerid)
  227. {
  228. if(PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && PlayerMissionInfo[playerid][Counted])
  229. {
  230. Team[PlayerMissionInfo[playerid][TeamSelection]][Members] --;
  231. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  232. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0 && ObjectiveStarted) CallRemoteFunction("EndMission","");
  233. }
  234. return 1;
  235. }
  236.  
  237. public OnPlayerRequestClass(playerid,classid)
  238. {
  239. SetPlayerPos(playerid,CLASS_POSTION);
  240. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  241. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  242. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  243.  
  244. CallRemoteFunction("TdmHide","i",playerid);
  245. CallRemoteFunction("ShowClassSelection","iisiii",playerid, PedInfo[classid][TeamID],Team[PedInfo[classid][TeamID]][Name], PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  246.  
  247. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  248. {
  249. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  250. PlayerMissionInfo[playerid][Counted] = false;
  251. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  252. }
  253.  
  254. PlayerMissionInfo[playerid][TeamSelection] = PedInfo[classid][TeamID];
  255. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  256.  
  257. return 1;
  258. }
  259.  
  260. public OnPlayerRequestSpawn(playerid)
  261. {
  262. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  263. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] > Team[opp_team][Members])
  264. {
  265. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"This Team is full, choose another!",0);
  266. return 0;
  267. }
  268. return 1;
  269. }
  270.  
  271. public OnPlayerSpawn(playerid)
  272. {
  273. CallRemoteFunction("TdmShow","i",playerid);
  274. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  275. new string[124];
  276. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  277. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  278. {
  279. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]);
  280. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  281. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  282. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  283. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  284. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  285.  
  286. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  287. {
  288. SetPlayerVirtualWorld(playerid,2);
  289. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  290. SetPlayerColor(playerid,COLOR_GREY);
  291. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  292. }
  293. else
  294. {
  295. if(!ObjectiveStarted) TogglePlayerControllable(playerid,false);
  296. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  297. if(!PlayerMissionInfo[playerid][Counted])
  298. {
  299. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]++;
  300. PlayerMissionInfo[playerid][Counted]= true;
  301. }
  302.  
  303. CallRemoteFunction("updateLTS","dd",Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  304. PlayerMissionInfo[playerid][TeamChosen] = true;
  305. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  306. format(string,sizeof(string),"You have chosen team %s, your mission is to kill %s.",Team[PlayerMissionInfo[playerid][TeamSelection]][Name],Team[opp_team][Name]);
  307. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  308. format(string,sizeof(string),"~r~~h~Eliminate ~w~%s.",Team[opp_team][Name]);
  309. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,string,0);
  310. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  311. SetPlayerTeam(playerid,PlayerMissionInfo[playerid][TeamSelection]);
  312. if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
  313. else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
  314. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  315. }
  316. }
  317.  
  318.  
  319. SetPlayerHealth(playerid,Health);
  320. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  321. return 1;
  322. }
  323.  
  324. public OnPlayerDeath(playerid, killerid, reason)
  325. {
  326. if(!MissionStarted)
  327. {
  328. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  329. return 1;
  330. }
  331. if(killerid != INVALID_PLAYER_ID && PlayerMissionInfo[killerid][TeamSelection] != NO_TEAM)
  332. {
  333. Team[PlayerMissionInfo[killerid][TeamSelection]][Kills]++;
  334. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  335. }
  336. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  337. {
  338. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  339. PlayerMissionInfo[playerid][Counted]= false;
  340. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0) CallRemoteFunction("EndMission","");
  341. }
  342. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  343. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  344. return 1;
  345. }
  346.  
  347. FUNCTION EndTheMission()
  348. {
  349. if(!MissionStarted) return 1;
  350. MissionStarted= false;
  351. if(!MissionCancelled && !ObjectiveStarted)
  352. {
  353. new string[128];
  354. new amount= 10000;
  355. new winning_team;
  356. if(Team[TEAM_DEFEND][Members] == Team[TEAM_ATTACK][Members]) { winning_team = 2; }
  357. else if(Team[TEAM_DEFEND][Members] > Team[TEAM_ATTACK][Members]) { winning_team = 0; }
  358. else { winning_team = 1; }
  359.  
  360. if(winning_team != 2 && ObjectiveStarted)
  361. {
  362. amount +=Team[winning_team][Kills]*100;
  363. format(string,sizeof(string),""SERVER_KEY_MSG" %s has won the last team standing deathmatch! Reward: $%d",Team[winning_team][Name],amount);
  364. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  365. SendClientMessageToAll(COLOR_SERVER,string);
  366. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  367. {
  368. if(PlayerMissionInfo[i][TeamSelection] == winning_team && PlayerMissionInfo[i][TeamChosen])
  369. {
  370. PlayerPlaySound(i,3200,0,0,0);
  371. CallRemoteFunction("GivePlayerCash","ii",i,amount);
  372. CallRemoteFunction("PlayerMissionStats","dd",i,0);
  373. }
  374. if(PlayerMissionInfo[i][TeamSelection] != winning_team && PlayerMissionInfo[i][TeamChosen])
  375. {
  376. PlayerPlaySound(i,17004,0,0,0);
  377. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  378. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  379. }
  380. }
  381. }
  382. else
  383. {
  384. PlaySoundForAll(1058);
  385. format(string,sizeof(string),""SERVER_KEY_MSG" IT'S A DRAW! No team has won the last team standing deathmatch.");
  386. SendClientMessageToAll(COLOR_SERVER,string);
  387. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  388. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  389. {
  390. if(PlayerMissionInfo[i][TeamChosen])
  391. {
  392. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  393. }
  394. }
  395. }
  396. }
  397. else
  398. {
  399. PlaySoundForAll(1058);
  400. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  401. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  402. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  403. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  404. }
  405.  
  406. return 1;
  407. }
  408.  
  409. //==============================================================================
  410. // Mission functions
  411. //==============================================================================
  412.  
  413. PlaySoundForAll(sound)
  414. {
  415. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  416. {
  417. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  418. }
  419. }
  420.  
  421.  
  422. ToggleControllable(control)
  423. {
  424. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  425. {
  426. if(IsPlayerConnected(i))
  427. {
  428. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  429. }
  430. }
  431. return 1;
  432. }
  433.  
  434. //==============================================================================
  435. // Important functions required
  436. //==============================================================================
  437.  
  438. FUNCTION CancelTheMission()
  439. {
  440. MissionCancelled= true;
  441. return 1;
  442. }
  443.  
  444. FUNCTION OnPlayerNameRecieve(playerid,name[])
  445. {
  446. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  447. return 1;
  448. }
  449.  
  450. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  451.  
  452. FUNCTION OnPlayerRespawned(playerid)
  453. {
  454. if(PlayerMissionInfo[playerid][Counted])
  455. {
  456. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]--;
  457. PlayerMissionInfo[playerid][Counted]= false;
  458. }
  459. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  460. return 1;
  461. }
Advertisement
Add Comment
Please, Sign In to add comment