Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.04 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: Mr.Pink
  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 "Kargo"
  23. #define Health 100
  24. #define TEAM_DEFEND_NAME "Refugee"
  25. #define TEAM_ATTACK_NAME "Police"
  26. #define MAX_MAP_OBJECTS 99
  27. #define VEHICLE_HEALTH 0
  28. #define CLASS_POSTION -2370.4465,1554.1389,32.2490
  29. #define CLASS_CAMERA -2365.8547,1554.1437,28.0459
  30. #define CLASS_FACING_AGNLE 268.1401
  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, 128, -2303.1013,1544.5839,18.7734,91.2735,0,0,WEAPON_M4,400, WEAPON_DEAGLE,180,0,0},
  57. {TEAM_ATTACK, 165, -2475.2566,1547.6030,23.6484,271.1911,0,0,WEAPON_M4,400, WEAPON_DEAGLE,180,0,0}
  58. };
  59.  
  60. #if MAX_MAP_OBJECTS != 0
  61. new Object[MAX_MAP_OBJECTS];
  62.  
  63. CreateMap()
  64. {
  65. Object[0] = CreateObject(1345,-2451.9555700,1559.8518100,28.4232700,0.0000000,0.0000000,269.7591900); //
  66. Object[1] = CreateObject(1345,-2422.2287600,1534.7260700,25.4920200,0.0000000,359.1405900,180.3774000); //
  67. Object[2] = CreateObject(1345,-2427.0759300,1540.0612800,25.4920200,0.0000000,359.1405900,180.3774000); //
  68. Object[3] = CreateObject(1345,-2451.9650900,1555.5007300,28.4232700,0.0000000,0.0000000,90.1365000); //
  69. Object[4] = CreateObject(1345,-2451.5800800,1538.5448000,28.4415100,0.0000000,0.0000000,136.5461000); //
  70. Object[5] = CreateObject(1345,-2450.5002400,1536.2210700,28.4165200,0.0000000,0.0000000,92.7151000); //
  71. Object[6] = CreateObject(14875,-2434.2111800,1529.6003400,31.6771300,0.0000000,0.0000000,90.9963000); //
  72. Object[7] = CreateObject(3798,-2384.3112800,1537.5362500,25.0434200,0.0000000,0.0000000,0.0000000); //
  73. Object[8] = CreateObject(3798,-2384.3085900,1535.5097700,25.0434200,0.0000000,0.0000000,0.0000000); //
  74. Object[9] = CreateObject(3798,-2384.3195800,1535.5384500,27.0434200,0.0000000,0.0000000,0.0000000); //
  75. Object[10] = CreateObject(1345,-2416.8029800,1558.0339400,31.3045200,0.0000000,0.0000000,90.1365000); //
  76. Object[11] = CreateObject(1345,-2418.5266100,1556.6900600,31.2795200,0.0000000,0.0000000,359.8959000); //
  77. Object[12] = CreateObject(1345,-2420.2890600,1557.9814500,31.2795200,0.0000000,0.0000000,269.6553000); //
  78. Object[13] = CreateObject(1345,-2348.5422400,1553.6441700,25.5170200,0.0000000,0.0000000,90.1365000); //
  79. Object[14] = CreateObject(1345,-2427.1320800,1552.8104200,25.4420200,0.0000000,359.1405900,180.3774000); //
  80. Object[15] = CreateObject(3798,-2426.9743700,1548.0009800,22.1371700,0.0000000,0.0000000,0.0000000); //
  81. Object[16] = CreateObject(3798,-2422.6931200,1548.0053700,22.1371700,0.0000000,0.0000000,0.0000000); //
  82. Object[17] = CreateObject(1345,-2434.6474600,1561.0704300,28.2732700,0.0000000,0.0000000,270.5147100); //
  83. Object[18] = CreateObject(1345,-2451.4025900,1533.7902800,28.4165200,0.0000000,0.0000000,48.0245000); //
  84. Object[19] = CreateObject(1472,-2431.9355500,1557.4392100,19.6495400,10.3132000,0.0000000,270.6185900); //
  85. Object[20] = CreateObject(1472,-2430.9116200,1557.4482400,20.6719000,10.3132000,0.0000000,270.6185900); //
  86. Object[21] = CreateObject(1473,-2429.0397900,1557.4742400,21.6153500,1.7189000,0.0000000,271.4780900); //
  87. Object[22] = CreateObject(1472,-2453.3090800,1546.7817400,22.5557900,10.3132000,0.0000000,268.8998100); //
  88. Object[23] = CreateObject(1472,-2452.0041500,1546.8071300,23.5838300,10.3132000,0.0000000,269.7591900); //
  89. Object[24] = CreateObject(1472,-2450.5820300,1546.7899200,24.0702000,29.2208000,0.0000000,269.8366100); //
  90. Object[25] = CreateObject(3798,-2445.3542500,1553.8530300,19.2309200,0.0000000,0.0000000,0.0000000); //
  91. Object[26] = CreateObject(3798,-2445.3425300,1553.9303000,21.2309200,0.0000000,0.0000000,0.0000000); //
  92. Object[27] = CreateObject(3798,-2445.3542500,1551.8668200,19.2309200,0.0000000,0.0000000,0.0000000); //
  93. Object[28] = CreateObject(1345,-2346.6828600,1551.9901100,25.5170200,0.0000000,0.0000000,179.5182000); //
  94. Object[29] = CreateObject(12839,-2367.1135300,1554.2373000,28.6161800,0.0000000,0.0000000,269.7590900); //
  95. Object[30] = CreateObject(1470,-2362.0351600,1554.1914100,24.7370500,0.0000000,7.7349000,0.0000000); //
  96. Object[31] = CreateObject(1470,-2371.0000000,1552.7786900,30.5634200,0.0000000,0.0000000,0.0000000); //
  97. Object[32] = CreateObject(1345,-2376.9550800,1560.5330800,31.3545200,0.0000000,0.0000000,90.1365000); //
  98. Object[33] = CreateObject(1345,-2351.1616200,1533.5494400,25.4920200,0.0000000,0.0000000,252.5704000); //
  99. Object[34] = CreateObject(1698,-2363.6660200,1536.2003200,25.1539100,0.0000000,0.0000000,270.6185900); //
  100. Object[35] = CreateObject(1698,-2360.3962400,1536.2094700,25.1596900,0.0000000,0.0000000,269.7590900); //
  101. Object[36] = CreateObject(1698,-2366.6350100,1536.1781000,25.1481400,0.0000000,0.0000000,270.6185900); //
  102. Object[37] = CreateObject(1698,-2369.7392600,1536.1191400,25.0423600,3.4377000,0.0000000,270.6185900); //
  103. Object[38] = CreateObject(1345,-2376.9704600,1558.3536400,31.3545200,0.0000000,0.0000000,90.1369000); //
  104. Object[39] = CreateObject(1345,-2385.9885300,1538.5051300,31.2045200,0.0000000,0.0000000,89.2774000); //
  105. Object[40] = CreateObject(3798,-2422.0861800,1556.8459500,21.8121700,0.0000000,0.0000000,0.0000000); //
  106. Object[41] = CreateObject(1345,-2400.7036100,1549.3350800,25.5920100,0.0000000,359.1405900,180.3774000); //
  107. Object[42] = CreateObject(1345,-2389.8513200,1541.6009500,25.4920200,0.0000000,359.1405900,89.2772000); //
  108. Object[43] = CreateObject(2047,-2340.2172900,1532.8049300,20.5820900,0.0000000,0.0000000,89.3814000); //
  109. Object[44] = CreateObject(2047,-2337.0483400,1547.8891600,20.6371500,0.0000000,0.0000000,89.3814000); //
  110. Object[45] = CreateObject(2048,-2458.9389600,1549.7563500,26.6770100,0.0000000,0.0000000,269.7590900); //
  111. Object[46] = CreateObject(2048,-2435.4575200,1548.1610100,26.7039500,0.0000000,0.0000000,269.7590900); //
  112. Object[47] = CreateObject(2048,-2424.5969200,1531.0501700,29.3304900,0.0000000,0.0000000,183.8154000); //
  113. Object[48] = CreateObject(2047,-2389.0253900,1540.3297100,28.0450800,0.0000000,0.0000000,181.2371100); //
  114. Object[49] = CreateObject(3578,-2393.2287600,1545.6427000,31.0624200,0.0000000,0.0000000,269.7590900); //
  115. Object[50] = CreateObject(1345,-2352.3220200,1541.4738800,25.4920200,0.0000000,0.0000000,90.1365000); //
  116. Object[51] = CreateObject(1472,-2333.3559600,1532.9393300,16.7432900,1.7189000,359.1405900,87.5586000); //
  117. Object[52] = CreateObject(1472,-2334.5444300,1532.9956100,17.6094800,6.8755000,359.1405900,87.5586000); //
  118. Object[53] = CreateObject(1221,-2336.1516100,1542.0328400,16.7899200,0.0000000,0.0000000,0.0000000); //
  119. Object[54] = CreateObject(1221,-2336.2133800,1542.0692100,17.7075700,0.0000000,0.0000000,0.0000000); //
  120. Object[55] = CreateObject(1472,-2338.8955100,1546.8867200,22.5557900,6.8755000,358.2811000,0.7557000); //
  121. Object[56] = CreateObject(1472,-2338.9284700,1548.1632100,23.5231700,6.8755000,358.2811000,359.8963000); //
  122. Object[57] = CreateObject(1472,-2335.9238300,1533.0555400,18.5890400,6.8755000,0.0000000,87.5586000); //
  123. Object[58] = CreateObject(1345,-2384.5366200,1544.6446500,31.1734800,0.0000000,0.0000000,90.1369000); //
  124. Object[59] = CreateObject(1345,-2382.6918900,1544.3016400,31.1484800,0.0000000,0.0000000,0.7557000); //
  125. Object[60] = CreateObject(1345,-2384.5446800,1546.8652300,31.1734800,0.0000000,0.0000000,270.5151100); //
  126. Object[61] = CreateObject(1345,-2384.5832500,1549.0456500,31.1484800,0.0000000,0.0000000,270.5151100); //
  127. Object[62] = CreateObject(1345,-2382.6857900,1549.4908400,31.1984800,0.0000000,0.0000000,180.2745100); //
  128. Object[63] = CreateObject(1472,-2470.1259800,1559.1353800,33.4854800,6.8755000,359.1405900,269.6557000); //
  129. Object[64] = CreateObject(1472,-2468.9531300,1559.1532000,34.4593400,6.8755000,359.1405900,269.6557000); //
  130. Object[65] = CreateObject(1472,-2468.1057100,1559.1781000,34.6386000,4.2972000,359.1405900,268.7963000); //
  131. Object[66] = CreateObject(1472,-2468.4831500,1557.9836400,35.4867000,6.8755000,359.1405900,167.3830000); //
  132. Object[67] = CreateObject(1472,-2468.7246100,1556.8896500,36.4540100,6.8755000,359.1405900,167.3830000); //
  133. Object[68] = CreateObject(1345,-2380.7014200,1546.8190900,31.1734800,0.0000000,0.0000000,90.1365000); //
  134. Object[69] = CreateObject(1345,-2407.6687000,1542.6878700,31.2795200,0.0000000,0.0000000,90.1369000); //
  135. Object[70] = CreateObject(1345,-2407.6789600,1544.8944100,31.3045200,0.0000000,0.0000000,90.9963000); //
  136. Object[71] = CreateObject(1345,-2407.6040000,1557.3846400,31.2295200,0.0000000,0.0000000,89.2774000); //
  137. Object[72] = CreateObject(1345,-2398.6743200,1532.4730200,31.3795100,0.0000000,0.0000000,90.9963000); //
  138. Object[73] = CreateObject(1345,-2424.7910200,1530.2114300,31.1045200,0.0000000,0.0000000,359.8963000); //
  139. Object[74] = CreateObject(1345,-2420.3559600,1541.8513200,31.3045200,0.0000000,0.0000000,270.5151100); //
  140. Object[75] = CreateObject(1345,-2469.6897000,1535.6197500,36.3248100,0.0000000,0.0000000,270.5151100); //
  141. Object[76] = CreateObject(1345,-2469.6811500,1544.2352300,36.3748100,0.0000000,0.0000000,268.7962000); //
  142. Object[77] = CreateObject(970,-2399.6301300,1560.4877900,31.3358600,0.0000000,0.0000000,270.6185900); //
  143. Object[78] = CreateObject(970,-2399.6923800,1529.3034700,31.4108600,0.0000000,0.0000000,270.6185900); //
  144. Object[79] = CreateObject(1345,-2428.9858400,1544.9628900,31.2795200,0.0000000,0.0000000,89.2771000); //
  145. Object[80] = CreateObject(1345,-2429.0092800,1554.4469000,31.2795200,0.0000000,0.0000000,90.1365000); //
  146. Object[81] = CreateObject(1345,-2358.0454100,1538.5783700,25.4920200,0.0000000,0.0000000,90.1369000); //
  147. Object[82] = CreateObject(972,-2440.2268100,1544.1281700,12.7703500,180.3775900,90.2409000,359.1405900); //
  148. Object[83] = CreateObject(1345,-2407.7077600,1550.7352300,31.2795200,0.0000000,0.0000000,231.8401000); //
  149. Object[84] = CreateObject(1698,-2449.5600600,1531.7783200,28.0649600,19.7670000,0.0000000,271.4780000); //
  150. Object[85] = CreateObject(1698,-2446.4621600,1531.8703600,29.1918400,19.7670000,0.0000000,271.4780000); //
  151. Object[86] = CreateObject(1698,-2443.5134300,1531.9502000,30.1936000,18.0482000,0.0000000,271.4780000); //
  152. Object[87] = CreateObject(1698,-2440.3522900,1532.0267300,30.8973800,7.7349000,0.0000000,271.4780000); //
  153. Object[88] = CreateObject(1698,-2437.0832500,1532.1203600,31.0920000,359.1405900,0.0000000,271.4780000); //
  154. Object[89] = CreateObject(1215,-2476.7500000,1544.4502000,55.0151400,0.0000000,0.0000000,0.0000000); //
  155. Object[90] = CreateObject(1215,-2373.1323200,1543.4140600,25.4188500,0.0000000,0.0000000,0.0000000); //
  156. Object[91] = CreateObject(3578,-2321.1142600,1544.6242700,18.5514700,0.0000000,0.0000000,269.7590900); //
  157. Object[92] = CreateObject(1698,-2322.5673800,1554.4272500,18.4217100,334.2168900,0.0000000,270.6185900); //
  158. Object[93] = CreateObject(1698,-2324.9660600,1554.3918500,19.5842300,334.2168900,0.0000000,270.6185900); //
  159. Object[94] = CreateObject(1698,-2327.7575700,1554.3529100,20.9430800,334.2168900,0.0000000,270.6185900); //
  160. Object[95] = CreateObject(1698,-2330.6621100,1554.3190900,22.3539800,334.2168900,0.0000000,270.6185900); //
  161. Object[96] = CreateObject(1698,-2333.5830100,1554.2865000,23.7663200,334.2168900,0.0000000,270.6185900); //
  162. Object[97] = CreateObject(1698,-2336.6054700,1554.2480500,24.8155300,347.1084000,0.0000000,270.6185900); //
  163. Object[98] = CreateObject(1698,-2339.7519500,1554.2115500,25.1035700,1.7189000,0.0000000,270.6185900); //
  164. }
  165. #endif
  166.  
  167. //==============================================================================
  168. // Basic vars
  169. //==============================================================================
  170.  
  171. new bool:MissionStarted;
  172. new bool:ObjectiveStarted;
  173. new bool:MissionCancelled;
  174.  
  175. native IsValidVehicle(vehicleid);
  176.  
  177. enum teamdata
  178. {
  179. Kills,
  180. Name[32],
  181. Members
  182. };
  183.  
  184. enum playerdata
  185. {
  186. UserName[MAX_PLAYER_NAME],
  187. bool:TeamChosen,
  188. TeamSelection,
  189. PlayerClassID,
  190. Counted,
  191. AllowedToSpawn
  192. };
  193.  
  194. new Team[2][teamdata];
  195. new PlayerMissionInfo[MAX_PLAYERS][playerdata];
  196.  
  197. //==============================================================================
  198. // Basic script
  199. //==============================================================================
  200.  
  201. main()
  202. {
  203. print("----------------------------------");
  204. print(" Mission: "MISSION_NAME" started.");
  205. print("----------------------------------\n");
  206. }
  207.  
  208. public OnGameModeInit()
  209. {
  210. MissionStarted= true;
  211.  
  212. format(Team[TEAM_DEFEND][Name],32,"%s",TEAM_DEFEND_NAME);
  213. format(Team[TEAM_ATTACK][Name],32,"%s",TEAM_ATTACK_NAME);
  214.  
  215. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  216.  
  217. #if MAX_MAP_OBJECTS != 0
  218. CreateMap();
  219. #endif
  220.  
  221. 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);
  222.  
  223. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  224. for(new i=0; i<MAX_PLAYERS; i++) PlayerMissionInfo[i][TeamSelection]= NO_TEAM;
  225.  
  226. SetTimer("StartMissionFunc",3000,false);
  227. return 1;
  228. }
  229.  
  230. FUNCTION StartMissionFunc()
  231. {
  232. CallRemoteFunction("StartMission","");
  233. SetTimer("CloseSpawns",1000*(START_TIME-3),false);
  234. ObjectiveStarted= true;
  235. return 1;
  236. }
  237.  
  238. FUNCTION CloseSpawns()
  239. {
  240. PlaySoundForAll(1057);
  241. if(Team[TEAM_DEFEND][Members] >= 1 && Team[TEAM_ATTACK][Members] >= 1)
  242. {
  243. GameTextForAll("~r~START THE BLOOD WAR!",1000,3);
  244. ObjectiveStarted= true;
  245. ToggleControllable(true);
  246. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last team standing deathmatch has started. KILL THE OTHER TEAM!");
  247. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last team standing deathmatch has started. KILL THE OTHER TEAM!",0);
  248. }
  249. else CallRemoteFunction("EndMission","");
  250. }
  251.  
  252. public OnGameModeExit()
  253. {
  254. #if MAX_MAP_OBJECTS != 0
  255. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  256. #endif
  257. return 1;
  258. }
  259.  
  260. public OnPlayerDisconnect(playerid)
  261. {
  262. if(PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && PlayerMissionInfo[playerid][Counted])
  263. {
  264. Team[PlayerMissionInfo[playerid][TeamSelection]][Members] --;
  265. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  266. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0 && ObjectiveStarted) CallRemoteFunction("EndMission","");
  267. }
  268. return 1;
  269. }
  270.  
  271. public OnPlayerRequestClass(playerid,classid)
  272. {
  273. SetPlayerPos(playerid,CLASS_POSTION);
  274. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  275. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  276. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  277.  
  278. CallRemoteFunction("TdmHide","i",playerid);
  279. CallRemoteFunction("ShowClassSelection","iisiii",playerid, PedInfo[classid][TeamID],Team[PedInfo[classid][TeamID]][Name], PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  280.  
  281. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  282. {
  283. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  284. PlayerMissionInfo[playerid][Counted] = false;
  285. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  286. }
  287.  
  288. PlayerMissionInfo[playerid][TeamSelection] = PedInfo[classid][TeamID];
  289. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  290.  
  291. return 1;
  292. }
  293.  
  294. public OnPlayerRequestSpawn(playerid)
  295. {
  296. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  297. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] > Team[opp_team][Members])
  298. {
  299. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"This Team is full, choose another!",0);
  300. return 0;
  301. }
  302. return 1;
  303. }
  304.  
  305. public OnPlayerSpawn(playerid)
  306. {
  307. CallRemoteFunction("TdmShow","i",playerid);
  308. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  309. new string[124];
  310. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  311. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  312. {
  313. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]);
  314. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  315. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  316. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  317. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  318. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  319.  
  320. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  321. {
  322. SetPlayerVirtualWorld(playerid,2);
  323. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  324. SetPlayerColor(playerid,COLOR_GREY);
  325. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  326. }
  327. else
  328. {
  329. if(!ObjectiveStarted) TogglePlayerControllable(playerid,false);
  330. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  331. if(!PlayerMissionInfo[playerid][Counted])
  332. {
  333. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]++;
  334. PlayerMissionInfo[playerid][Counted]= true;
  335. }
  336.  
  337. CallRemoteFunction("updateLTS","dd",Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  338. PlayerMissionInfo[playerid][TeamChosen] = true;
  339. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  340. format(string,sizeof(string),"You have chosen team %s, your mission is to kill %s.",Team[PlayerMissionInfo[playerid][TeamSelection]][Name],Team[opp_team][Name]);
  341. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  342. format(string,sizeof(string),"~r~~h~Eliminate ~w~%s.",Team[opp_team][Name]);
  343. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,string,0);
  344. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  345. SetPlayerTeam(playerid,PlayerMissionInfo[playerid][TeamSelection]);
  346. if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
  347. else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
  348. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  349. }
  350. }
  351.  
  352.  
  353. SetPlayerHealth(playerid,Health);
  354. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  355. return 1;
  356. }
  357.  
  358. public OnPlayerDeath(playerid, killerid, reason)
  359. {
  360. if(!MissionStarted)
  361. {
  362. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  363. return 1;
  364. }
  365. if(killerid != INVALID_PLAYER_ID && PlayerMissionInfo[killerid][TeamSelection] != NO_TEAM)
  366. {
  367. Team[PlayerMissionInfo[killerid][TeamSelection]][Kills]++;
  368. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  369. }
  370. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  371. {
  372. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  373. PlayerMissionInfo[playerid][Counted]= false;
  374. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0) CallRemoteFunction("EndMission","");
  375. }
  376. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  377. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  378. return 1;
  379. }
  380.  
  381. FUNCTION EndTheMission()
  382. {
  383. if(!MissionStarted) return 1;
  384. MissionStarted= false;
  385. if(!MissionCancelled && !ObjectiveStarted)
  386. {
  387. new string[128];
  388. new amount= 10000;
  389. new winning_team;
  390. if(Team[TEAM_DEFEND][Members] == Team[TEAM_ATTACK][Members]) { winning_team = 2; }
  391. else if(Team[TEAM_DEFEND][Members] > Team[TEAM_ATTACK][Members]) { winning_team = 0; }
  392. else { winning_team = 1; }
  393.  
  394. if(winning_team != 2 && ObjectiveStarted)
  395. {
  396. amount +=Team[winning_team][Kills]*100;
  397. format(string,sizeof(string),""SERVER_KEY_MSG" %s has won the last team standing deathmatch! Reward: $%d",Team[winning_team][Name],amount);
  398. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  399. SendClientMessageToAll(COLOR_SERVER,string);
  400. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  401. {
  402. if(PlayerMissionInfo[i][TeamSelection] == winning_team && PlayerMissionInfo[i][TeamChosen])
  403. {
  404. PlayerPlaySound(i,3200,0,0,0);
  405. CallRemoteFunction("GivePlayerCash","ii",i,amount);
  406. CallRemoteFunction("PlayerMissionStats","dd",i,0);
  407. }
  408. if(PlayerMissionInfo[i][TeamSelection] != winning_team && PlayerMissionInfo[i][TeamChosen])
  409. {
  410. PlayerPlaySound(i,17004,0,0,0);
  411. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  412. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  413. }
  414. }
  415. }
  416. else
  417. {
  418. PlaySoundForAll(1058);
  419. format(string,sizeof(string),""SERVER_KEY_MSG" IT'S A DRAW! No team has won the last team standing deathmatch.");
  420. SendClientMessageToAll(COLOR_SERVER,string);
  421. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  422. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  423. {
  424. if(PlayerMissionInfo[i][TeamChosen])
  425. {
  426. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  427. }
  428. }
  429. }
  430. }
  431. else
  432. {
  433. PlaySoundForAll(1058);
  434. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  435. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  436. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  437. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  438. }
  439.  
  440. return 1;
  441. }
  442.  
  443. //==============================================================================
  444. // Mission functions
  445. //==============================================================================
  446.  
  447. PlaySoundForAll(sound)
  448. {
  449. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  450. {
  451. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  452. }
  453. }
  454.  
  455.  
  456. ToggleControllable(control)
  457. {
  458. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  459. {
  460. if(IsPlayerConnected(i))
  461. {
  462. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  463. }
  464. }
  465. return 1;
  466. }
  467.  
  468. //==============================================================================
  469. // Important functions required
  470. //==============================================================================
  471.  
  472. FUNCTION CancelTheMission()
  473. {
  474. MissionCancelled= true;
  475. return 1;
  476. }
  477.  
  478. FUNCTION OnPlayerNameRecieve(playerid,name[])
  479. {
  480. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  481. return 1;
  482. }
  483.  
  484. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  485.  
  486. FUNCTION OnPlayerRespawned(playerid)
  487. {
  488. if(PlayerMissionInfo[playerid][Counted])
  489. {
  490. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]--;
  491. PlayerMissionInfo[playerid][Counted]= false;
  492. }
  493. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  494. return 1;
  495. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement