Bulletje

Untitled

Jan 24th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.86 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: FuTuRe
  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 "Katanah"
  23. #define Health 1.0
  24. #define TEAM_DEFEND_NAME "Triad"
  25. #define TEAM_ATTACK_NAME "Mafia"
  26. #define MAX_MAP_OBJECTS 52
  27. #define VEHICLE_HEALTH 0
  28. #define CLASS_POSTION 121.5863,2500.6121,16.4844
  29. #define CLASS_CAMERA 128.3598,2500.8760,16.4844
  30. #define CLASS_FACING_AGNLE 272.2342
  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,120,197.7948, 2508.8281, 16.1059, 0.0000,0,0,0,0,WEAPON_KATANA,0,0,0},
  57. {TEAM_ATTACK,126,52.4757, 2495.1555, 16.0781, -180.9000,0,0,0,0,WEAPON_KATANA,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(8148,123.4558200,2476.9550800,15.4543500,0.0000000,0.0000000,90.3599500); //
  66. Object[1] = CreateObject(8148,126.3838000,2528.1330600,15.4543500,0.0000000,0.0000000,270.3602900); //
  67. Object[2] = CreateObject(8148,203.4705700,2491.9277300,15.4543500,0.0000000,0.0000000,178.0203100); //
  68. Object[3] = CreateObject(8148,47.7147400,2498.8125000,15.4543500,0.0000000,0.0000000,355.6202100); //
  69. Object[4] = CreateObject(16121,201.4396700,2455.6814000,14.8707100,0.0000000,0.0000000,107.6399900); //
  70. Object[5] = CreateObject(16121,226.0466000,2530.7023900,10.8967000,0.0000000,0.0000000,192.7799200); //
  71. Object[6] = CreateObject(16121,196.5356100,2555.3156700,14.8707100,0.0000000,0.0000000,246.3599400); //
  72. Object[7] = CreateObject(16121,161.0019200,2556.0422400,14.8707100,0.0000000,0.0000000,246.3599400); //
  73. Object[8] = CreateObject(16121,125.1091200,2554.6181600,14.8707100,0.0000000,0.0000000,246.3599400); //
  74. Object[9] = CreateObject(16121,86.1808400,2555.9858400,14.8707100,0.0000000,0.0000000,263.1602500); //
  75. Object[10] = CreateObject(16121,49.1204800,2551.1320800,14.8707100,0.0000000,0.0000000,288.2401100); //
  76. Object[11] = CreateObject(16121,24.0284100,2514.4450700,14.8707100,0.0000000,0.0000000,336.0601800); //
  77. Object[12] = CreateObject(16121,21.8974600,2475.1306200,14.8707100,0.0000000,0.0000000,355.4400900); //
  78. Object[13] = CreateObject(16121,40.9678600,2456.1513700,14.8707100,0.0000000,0.0000000,410.3401200); //
  79. Object[14] = CreateObject(16121,66.4386400,2449.8657200,14.8707100,0.0000000,0.0000000,429.4799500); //
  80. Object[15] = CreateObject(16121,98.9788900,2450.2392600,14.8707100,0.0000000,0.0000000,429.4799500); //
  81. Object[16] = CreateObject(16121,128.4773700,2448.7299800,14.8707100,0.0000000,0.0000000,429.4799500); //
  82. Object[17] = CreateObject(16121,161.8678600,2448.4218800,14.8707100,0.0000000,0.0000000,429.4799500); //
  83. Object[18] = CreateObject(16121,228.7442600,2486.9314000,14.8707100,0.0000000,0.0000000,154.7999600); //
  84. Object[19] = CreateObject(740,143.7120100,2534.6884800,-14.5741900,0.0000000,0.0000000,0.0000000); //
  85. Object[20] = CreateObject(740,161.5477300,2474.2946800,-14.5741900,0.0000000,0.0000000,0.0000000); //
  86. Object[21] = CreateObject(740,85.4508100,2531.8015100,-14.5741900,0.0000000,0.0000000,0.0000000); //
  87. Object[22] = CreateObject(740,44.7306200,2510.1108400,-14.5741900,0.0000000,0.0000000,0.0000000); //
  88. Object[23] = CreateObject(740,67.4662300,2472.1420900,-14.5741900,0.0000000,0.0000000,0.0000000); //
  89. Object[24] = CreateObject(740,210.0405000,2493.9907200,-14.5741900,0.0000000,0.0000000,0.0000000); //
  90. Object[25] = CreateObject(622,175.3121600,2470.7497600,15.4160200,0.0000000,0.0000000,59.7599900); //
  91. Object[26] = CreateObject(622,184.5422800,2532.5393100,15.4160200,0.0000000,0.0000000,101.2800100); //
  92. Object[27] = CreateObject(622,42.6664900,2482.0388200,15.4160200,0.0000000,0.0000000,-54.6000100); //
  93. Object[28] = CreateObject(3887,193.4933500,2496.1189000,13.8592000,0.0000000,0.0000000,0.8400200); //
  94. Object[29] = CreateObject(3887,60.2608400,2508.4401900,13.8592000,0.0000000,0.0000000,179.4601700); //
  95. Object[30] = CreateObject(17546,127.8437100,2517.0383300,27.4555700,0.0000000,0.0000000,0.0000000); //
  96. Object[31] = CreateObject(17546,127.7350200,2486.8515600,27.4555700,0.0000000,0.0000000,180.4199400); //
  97. Object[32] = CreateObject(8148,126.3838000,2528.1330600,21.6591800,0.0000000,0.0000000,270.3602900); //
  98. Object[33] = CreateObject(8148,123.4558200,2476.9550800,21.8798000,0.0000000,0.0000000,90.3599500); //
  99. Object[34] = CreateObject(8148,47.7147400,2498.8125000,21.8700300,0.0000000,0.0000000,355.6202100); //
  100. Object[35] = CreateObject(8148,203.4705700,2491.9277300,21.6662100,0.0000000,0.0000000,178.0203100); //
  101. Object[36] = CreateObject(3630,156.8401000,2504.4975600,16.8372900,0.0000000,0.0000000,269.3835400); //
  102. Object[37] = CreateObject(5259,165.8015700,2489.5573700,13.6548900,0.0000000,0.0000000,179.0723000); //
  103. Object[38] = CreateObject(5269,165.8567500,2494.3291000,15.4749100,0.0000000,0.0000000,89.6092400); //
  104. Object[39] = CreateObject(5269,165.8998700,2496.1479500,14.7323900,0.0000000,0.0000000,88.7728500); //
  105. Object[40] = CreateObject(5269,165.9042100,2498.0681200,13.9898600,0.0000000,0.0000000,89.3600600); //
  106. Object[41] = CreateObject(5259,88.3641700,2511.8535200,13.6548900,0.0000000,0.0000000,-1.0800000); //
  107. Object[42] = CreateObject(5269,88.2854100,2506.9194300,15.4749100,0.0000000,0.0000000,-91.9200100); //
  108. Object[43] = CreateObject(5269,88.2450300,2505.0046400,14.7323900,0.0000000,0.0000000,-91.9800100); //
  109. Object[44] = CreateObject(5269,88.2144500,2503.0210000,13.9898600,0.0000000,0.0000000,-91.9200100); //
  110. Object[45] = CreateObject(3630,98.1048500,2499.5222200,16.8372900,0.0000000,0.0000000,89.5799600); //
  111. Object[46] = CreateObject(2567,78.2223800,2485.3686500,17.4803000,0.0000000,0.0000000,0.0000000); //
  112. Object[47] = CreateObject(2567,83.2863200,2485.3689000,17.4803000,0.0000000,0.0000000,0.0000000); //
  113. Object[48] = CreateObject(2567,88.4075000,2485.3588900,17.4803000,0.0000000,0.0000000,0.0000000); //
  114. Object[49] = CreateObject(2567,175.8809200,2517.7653800,17.4803000,0.0000000,0.0000000,0.0000000); //
  115. Object[50] = CreateObject(2567,170.8079700,2517.7719700,17.4803000,0.0000000,0.0000000,0.0000000); //
  116. Object[51] = CreateObject(2567,165.7433500,2517.8051800,17.4803000,0.0000000,0.0000000,0.0000000); //
  117. }
  118. #endif
  119.  
  120. //==============================================================================
  121. // Basic vars
  122. //==============================================================================
  123.  
  124. new bool:MissionStarted;
  125. new bool:ObjectiveStarted;
  126. new bool:MissionCancelled;
  127.  
  128. native IsValidVehicle(vehicleid);
  129.  
  130. enum teamdata
  131. {
  132. Kills,
  133. Name[32],
  134. Members
  135. };
  136.  
  137. enum playerdata
  138. {
  139. UserName[MAX_PLAYER_NAME],
  140. bool:TeamChosen,
  141. TeamSelection,
  142. PlayerClassID,
  143. Counted,
  144. AllowedToSpawn
  145. };
  146.  
  147. new Team[2][teamdata];
  148. new PlayerMissionInfo[MAX_PLAYERS][playerdata];
  149.  
  150. //==============================================================================
  151. // Basic script
  152. //==============================================================================
  153.  
  154. main()
  155. {
  156. print("----------------------------------");
  157. print(" Mission: "MISSION_NAME" started.");
  158. print("----------------------------------\n");
  159. }
  160.  
  161. public OnGameModeInit()
  162. {
  163. MissionStarted= true;
  164.  
  165. format(Team[TEAM_DEFEND][Name],32,"%s",TEAM_DEFEND_NAME);
  166. format(Team[TEAM_ATTACK][Name],32,"%s",TEAM_ATTACK_NAME);
  167.  
  168. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  169.  
  170. #if MAX_MAP_OBJECTS != 0
  171. CreateMap();
  172. #endif
  173.  
  174. 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);
  175.  
  176. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  177. for(new i=0; i<MAX_PLAYERS; i++) PlayerMissionInfo[i][TeamSelection]= NO_TEAM;
  178.  
  179. SetTimer("StartMissionFunc",3000,false);
  180. return 1;
  181. }
  182.  
  183. FUNCTION StartMissionFunc()
  184. {
  185. CallRemoteFunction("StartMission","");
  186. SetTimer("CloseSpawns",1000*(START_TIME-3),false);
  187. ObjectiveStarted= true;
  188. return 1;
  189. }
  190.  
  191. FUNCTION CloseSpawns()
  192. {
  193. PlaySoundForAll(1057);
  194. if(Team[TEAM_DEFEND][Members] >= 1 && Team[TEAM_ATTACK][Members] >= 1)
  195. {
  196. GameTextForAll("~r~START THE BLOOD WAR!",1000,3);
  197. ObjectiveStarted= true;
  198. ToggleControllable(true);
  199. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last team standing deathmatch has started. KILL THE OTHER TEAM!");
  200. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last team standing deathmatch has started. KILL THE OTHER TEAM!",0);
  201. }
  202. else CallRemoteFunction("EndMission","");
  203. }
  204.  
  205. public OnGameModeExit()
  206. {
  207. #if MAX_MAP_OBJECTS != 0
  208. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  209. #endif
  210. return 1;
  211. }
  212.  
  213. public OnPlayerDisconnect(playerid)
  214. {
  215. if(PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && PlayerMissionInfo[playerid][Counted])
  216. {
  217. Team[PlayerMissionInfo[playerid][TeamSelection]][Members] --;
  218. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  219. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0 && ObjectiveStarted) CallRemoteFunction("EndMission","");
  220. }
  221. return 1;
  222. }
  223.  
  224. public OnPlayerRequestClass(playerid,classid)
  225. {
  226. SetPlayerPos(playerid,CLASS_POSTION);
  227. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  228. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  229. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  230.  
  231. CallRemoteFunction("TdmHide","i",playerid);
  232. CallRemoteFunction("ShowClassSelection","iisiii",playerid, PedInfo[classid][TeamID],Team[PedInfo[classid][TeamID]][Name], PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  233.  
  234. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  235. {
  236. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  237. PlayerMissionInfo[playerid][Counted] = false;
  238. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  239. }
  240.  
  241. PlayerMissionInfo[playerid][TeamSelection] = PedInfo[classid][TeamID];
  242. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  243.  
  244. return 1;
  245. }
  246.  
  247. public OnPlayerRequestSpawn(playerid)
  248. {
  249. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  250. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] > Team[opp_team][Members])
  251. {
  252. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"This Team is full, choose another!",0);
  253. return 0;
  254. }
  255. return 1;
  256. }
  257.  
  258. public OnPlayerSpawn(playerid)
  259. {
  260. CallRemoteFunction("TdmShow","i",playerid);
  261. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  262. new string[124];
  263. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  264. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  265. {
  266. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]);
  267. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  268. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  269. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  270. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  271. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  272.  
  273. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  274. {
  275. SetPlayerVirtualWorld(playerid,2);
  276. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  277. SetPlayerColor(playerid,COLOR_GREY);
  278. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  279. }
  280. else
  281. {
  282. if(!ObjectiveStarted) TogglePlayerControllable(playerid,false);
  283. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  284. if(!PlayerMissionInfo[playerid][Counted])
  285. {
  286. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]++;
  287. PlayerMissionInfo[playerid][Counted]= true;
  288. }
  289.  
  290. CallRemoteFunction("updateLTS","dd",Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  291. PlayerMissionInfo[playerid][TeamChosen] = true;
  292. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  293. format(string,sizeof(string),"You have chosen team %s, your mission is to kill %s.",Team[PlayerMissionInfo[playerid][TeamSelection]][Name],Team[opp_team][Name]);
  294. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  295. format(string,sizeof(string),"~r~~h~Eliminate ~w~%s.",Team[opp_team][Name]);
  296. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,string,0);
  297. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  298. SetPlayerTeam(playerid,PlayerMissionInfo[playerid][TeamSelection]);
  299. if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
  300. else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
  301. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  302. }
  303. }
  304.  
  305.  
  306. SetPlayerHealth(playerid,Health);
  307. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  308. return 1;
  309. }
  310.  
  311. public OnPlayerDeath(playerid, killerid, reason)
  312. {
  313. if(!MissionStarted)
  314. {
  315. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  316. return 1;
  317. }
  318. if(killerid != INVALID_PLAYER_ID && PlayerMissionInfo[killerid][TeamSelection] != NO_TEAM)
  319. {
  320. Team[PlayerMissionInfo[killerid][TeamSelection]][Kills]++;
  321. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  322. }
  323. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  324. {
  325. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  326. PlayerMissionInfo[playerid][Counted]= false;
  327. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] == 0) CallRemoteFunction("EndMission","");
  328. }
  329. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  330. CallRemoteFunction("TdmUpdate","sssdd","Players Alive",Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Members],Team[TEAM_ATTACK][Members]);
  331. return 1;
  332. }
  333.  
  334. FUNCTION EndTheMission()
  335. {
  336. if(!MissionStarted) return 1;
  337. MissionStarted= false;
  338. if(!MissionCancelled && !ObjectiveStarted)
  339. {
  340. new string[128];
  341. new amount= 10000;
  342. new winning_team;
  343. if(Team[TEAM_DEFEND][Members] == Team[TEAM_ATTACK][Members]) { winning_team = 2; }
  344. else if(Team[TEAM_DEFEND][Members] > Team[TEAM_ATTACK][Members]) { winning_team = 0; }
  345. else { winning_team = 1; }
  346.  
  347. if(winning_team != 2 && ObjectiveStarted)
  348. {
  349. amount +=Team[winning_team][Kills]*100;
  350. format(string,sizeof(string),""SERVER_KEY_MSG" %s has won the last team standing deathmatch! Reward: $%d",Team[winning_team][Name],amount);
  351. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  352. SendClientMessageToAll(COLOR_SERVER,string);
  353. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  354. {
  355. if(PlayerMissionInfo[i][TeamSelection] == winning_team && PlayerMissionInfo[i][TeamChosen])
  356. {
  357. PlayerPlaySound(i,3200,0,0,0);
  358. CallRemoteFunction("GivePlayerCash","ii",i,amount);
  359. CallRemoteFunction("PlayerMissionStats","dd",i,0);
  360. }
  361. if(PlayerMissionInfo[i][TeamSelection] != winning_team && PlayerMissionInfo[i][TeamChosen])
  362. {
  363. PlayerPlaySound(i,17004,0,0,0);
  364. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  365. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  366. }
  367. }
  368. }
  369. else
  370. {
  371. PlaySoundForAll(1058);
  372. format(string,sizeof(string),""SERVER_KEY_MSG" IT'S A DRAW! No team has won the last team standing deathmatch.");
  373. SendClientMessageToAll(COLOR_SERVER,string);
  374. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  375. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  376. {
  377. if(PlayerMissionInfo[i][TeamChosen])
  378. {
  379. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  380. }
  381. }
  382. }
  383. }
  384. else
  385. {
  386. PlaySoundForAll(1058);
  387. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  388. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  389. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  390. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  391. }
  392.  
  393. return 1;
  394. }
  395.  
  396. //==============================================================================
  397. // Mission functions
  398. //==============================================================================
  399.  
  400. PlaySoundForAll(sound)
  401. {
  402. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  403. {
  404. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  405. }
  406. }
  407.  
  408.  
  409. ToggleControllable(control)
  410. {
  411. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  412. {
  413. if(IsPlayerConnected(i))
  414. {
  415. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  416. }
  417. }
  418. return 1;
  419. }
  420.  
  421. //==============================================================================
  422. // Important functions required
  423. //==============================================================================
  424.  
  425. FUNCTION CancelTheMission()
  426. {
  427. MissionCancelled= true;
  428. return 1;
  429. }
  430.  
  431. FUNCTION OnPlayerNameRecieve(playerid,name[])
  432. {
  433. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  434. return 1;
  435. }
  436.  
  437. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  438.  
  439. FUNCTION OnPlayerRespawned(playerid)
  440. {
  441. if(PlayerMissionInfo[playerid][Counted])
  442. {
  443. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]--;
  444. PlayerMissionInfo[playerid][Counted]= false;
  445. }
  446. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  447. return 1;
  448. }
Advertisement
Add Comment
Please, Sign In to add comment