Bulletje

Untitled

Jan 23rd, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.50 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: Ryses
  4. Mission Base: Last man standing
  5. Mission Type: Last man standing
  6. Mission Type ID: 4
  7. */
  8. //==============================================================================
  9. // Includes
  10. //==============================================================================
  11. #include <a_samp>
  12. #include <crashdetect>
  13. #include <float>
  14. #include <fixes2>
  15.  
  16. #include "..\filterscripts\MM\stuff\defines"
  17. #include "..\filterscripts\MM\stuff\serverkeymsg"
  18.  
  19. //==============================================================================
  20. // Defines
  21. //==============================================================================
  22.  
  23. #define MISSION_NAME "The Solarin"
  24. #define Health 99.0
  25. #define VEHICLE_HEALTH 999.0
  26. #define CLASS_POSTION -712.2740,3682.5254,5.6844
  27. #define CLASS_CAMERA -712.2980,3678.3479,5.6844
  28. #define CLASS_FACING_AGNLE 183.5021
  29. #define MAX_MAP_OBJECTS 42
  30. #define START_TIME 20
  31.  
  32. //==============================================================================
  33. // Per mission functions
  34. //==============================================================================
  35.  
  36. enum ped_enum
  37. {
  38. TeamID,
  39. Skin,
  40. Float:SpawnX,
  41. Float:SpawnY,
  42. Float:SpawnZ,
  43. Float:SpawnAngle,
  44. SpawnInterior,
  45. VirtualWorld,
  46. Weapon1,
  47. Ammo1,
  48. Weapon2,
  49. Ammo2,
  50. Weapon3,
  51. Ammo3,
  52. };
  53.  
  54. new PedInfo[][ped_enum] = {
  55. {NO_TEAM, 0, -784.0209, 494.7463, 1376.1953, 88.6274,0,0, WEAPON_DEAGLE, 350, WEAPON_AK47, 500, 0, 0}
  56. };
  57.  
  58. new Float:gSpawns[][] =
  59. {
  60. {-615.5201,3625.7786,5.6844},
  61. {-642.9300,3592.6814,5.6844},
  62. {-614.9897,3660.3071,5.6844},
  63. {-634.6559,3683.7617,5.6844},
  64. {-653.7584,3644.3799,5.6844},
  65. {-682.9399,3640.8691,5.6844},
  66. {-690.6001,3686.1350,5.6805},
  67. {-706.9310,3672.8542,5.6844},
  68. {-725.8123,3642.7778,5.6844},
  69. {-708.2620,3627.9392,5.6844},
  70. {-719.3558,3597.2273,5.6844},
  71. {-693.2117,3600.9492,5.6805}
  72. };
  73.  
  74. #if MAX_MAP_OBJECTS != 0
  75. new Object[MAX_MAP_OBJECTS];
  76.  
  77. CreateMap()
  78. {
  79. Object[0] = CreateObject(11093,-706.7000100,3599.0000000,7.4000000,0.0000000,0.0000000,270.0000000); //
  80. Object[1] = CreateObject(11093,-733.5000000,3608.1999500,7.4000000,0.0000000,0.0000000,267.9950000); //
  81. Object[2] = CreateObject(11093,-733.5000000,3608.1999500,13.2000000,0.0000000,0.0000000,267.9950000); //
  82. Object[3] = CreateObject(11093,-706.7000100,3599.0000000,12.9000000,0.0000000,0.0000000,269.9950000); //
  83. Object[4] = CreateObject(10775,-753.7999900,3638.5000000,25.6000000,0.0000000,0.0000000,0.0000000); //
  84. Object[5] = CreateObject(10826,-673.7999900,3642.5000000,-11.3000000,0.0000000,0.0000000,0.0000000); //
  85. Object[6] = CreateObject(10775,-757.7999900,3661.3999000,25.6000000,0.0000000,0.0000000,180.0000000); //
  86. Object[7] = CreateObject(10776,-675.2000100,3599.3000500,14.8000000,0.0000000,0.0000000,92.0000000); //
  87. Object[8] = CreateObject(10847,-695.0000000,3675.0000000,11.1000000,0.0000000,0.0000000,0.0000000); //
  88. Object[9] = CreateObject(10847,-728.7000100,3682.6999500,11.1000000,0.0000000,0.0000000,0.0000000); //
  89. Object[10] = CreateObject(10847,-738.0000000,3682.8999000,20.6000000,0.0000000,0.0000000,0.0000000); //
  90. Object[11] = CreateObject(10847,-731.5000000,3663.6999500,11.1000000,0.0000000,0.0000000,268.0000000); //
  91. Object[12] = CreateObject(10847,-740.4000200,3664.0000000,18.9000000,0.0000000,0.0000000,267.9950000); //
  92. Object[13] = CreateObject(10871,-790.9000200,3650.0000000,123.2000000,0.0000000,0.0000000,30.0000000); //
  93. Object[14] = CreateObject(10847,-694.7000100,3627.0000000,11.1000000,0.0000000,0.0000000,0.0000000); //
  94. Object[15] = CreateObject(10775,-593.7000100,3648.5000000,24.9000000,0.0000000,0.0000000,180.0000000); //
  95. Object[16] = CreateObject(10847,-615.0999800,3672.5000000,8.1000000,0.0000000,0.0000000,0.0000000); //
  96. Object[17] = CreateObject(10847,-614.9000200,3691.1001000,8.1000000,0.0000000,0.0000000,0.0000000); //
  97. Object[18] = CreateObject(10847,-606.7999900,3676.0000000,20.4000000,0.0000000,0.0000000,0.0000000); //
  98. Object[19] = CreateObject(10847,-598.7999900,3602.8000500,14.6000000,0.0000000,0.0000000,358.0000000); //
  99. Object[20] = CreateObject(10847,-609.5000000,3614.5000000,4.4000000,0.0000000,0.0000000,1.9950000); //
  100. Object[21] = CreateObject(10847,-608.9000200,3594.6999500,4.9000000,0.0000000,0.0000000,357.9950000); //
  101. Object[22] = CreateObject(10871,-576.4000200,3646.6001000,123.2000000,0.0000000,0.0000000,331.9980000); //
  102. Object[23] = CreateObject(10775,-591.4000200,3625.6001000,24.9000000,0.0000000,0.0000000,1.9950000); //
  103. Object[24] = CreateObject(10847,-694.7000100,3662.6999500,11.1000000,0.0000000,0.0000000,0.0000000); //
  104. Object[25] = CreateObject(10844,-667.4000200,3680.8999000,7.7000000,0.0000000,0.0000000,0.0000000); //
  105. Object[26] = CreateObject(10844,-667.2999900,3662.0000000,7.7000000,0.0000000,0.0000000,0.0000000); //
  106. Object[27] = CreateObject(10847,-670.5999800,3635.3000500,11.1000000,0.0000000,0.0000000,0.0000000); //
  107. Object[28] = CreateObject(10775,-709.4000200,3713.1001000,25.1000000,0.0000000,0.0000000,269.9950000); //
  108. Object[29] = CreateObject(10775,-638.5999800,3714.1999500,26.6000000,0.0000000,0.0000000,269.9890000); //
  109. Object[30] = CreateObject(10775,-631.9000200,3568.5000000,24.9000000,0.0000000,0.0000000,89.9940000); //
  110. Object[31] = CreateObject(10775,-703.2000100,3566.3999000,24.9000000,0.0000000,0.0000000,89.9890000); //
  111. Object[32] = CreateObject(10871,-670.4000200,3737.3999000,123.2000000,0.0000000,0.0000000,57.9960000); //
  112. Object[33] = CreateObject(10871,-684.7000100,3542.3999000,123.2000000,0.0000000,0.0000000,359.9910000); //
  113. Object[34] = CreateObject(10847,-654.7000100,3596.0000000,11.1000000,0.0000000,0.0000000,0.0000000); //
  114. Object[35] = CreateObject(10847,-640.5000000,3620.6999500,11.1000000,0.0000000,0.0000000,0.0000000); //
  115. Object[36] = CreateObject(10847,-639.7999900,3644.6001000,11.1000000,0.0000000,0.0000000,0.0000000); //
  116. Object[37] = CreateObject(10847,-639.7000100,3673.3000500,11.1000000,0.0000000,0.0000000,0.0000000); //
  117. Object[38] = CreateObject(10847,-611.0000000,3636.5000000,4.6000000,0.0000000,0.0000000,2.0000000); //
  118. Object[39] = CreateObject(10847,-606.2000100,3594.8000500,14.4000000,0.0000000,0.0000000,357.9950000); //
  119. Object[40] = CreateObject(10847,-606.0000000,3613.8000500,14.4000000,0.0000000,0.0000000,357.9950000); //
  120. Object[41] = CreateObject(10847,-713.2000100,3638.6001000,11.1000000,0.0000000,0.0000000,0.0000000); //
  121. }
  122. #endif
  123.  
  124. //==============================================================================
  125. // Basic vars
  126. //==============================================================================
  127.  
  128. new bool:MissionStarted;
  129. new bool:ObjectiveStarted;
  130. new bool:MissionCancelled;
  131.  
  132. native IsValidVehicle(vehicleid);
  133.  
  134. enum playersdata {
  135. UserName[MAX_PLAYER_NAME],
  136. Kills,
  137. bool:Counted,
  138. PlayerClassID,
  139. bool:AllowedToSpawn
  140. };
  141. new PlayerMissionInfo[MAX_PLAYERS][playersdata];
  142.  
  143. new PlayersAlive;
  144. new GMTimer;
  145. new GMSec;
  146. new RandomColor;
  147. new MaxSpawns;
  148.  
  149. //==============================================================================
  150. // Basic script
  151. //==============================================================================
  152.  
  153. main()
  154. {
  155. print("----------------------------------");
  156. print(" Mission: "MISSION_NAME" started.");
  157. print("----------------------------------\n");
  158. }
  159.  
  160. public OnGameModeInit()
  161. {
  162. MissionStarted= true;
  163. MaxSpawns=sizeof(gSpawns);
  164. GMTimer = SetTimer("GMClock",1000,true);
  165. RandomColor=random(2);
  166.  
  167. #if MAX_MAP_OBJECTS != 0
  168. CreateMap();
  169. #endif
  170.  
  171. for(new i=0; i<sizeof(PedInfo); i++)
  172. {
  173. 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);
  174. }
  175.  
  176. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  177. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  178. return 1;
  179. }
  180.  
  181. public OnGameModeExit()
  182. {
  183. #if MAX_MAP_OBJECTS != 0
  184. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  185. #endif
  186. for(new i=0; i<MAX_VEHICLES; i++)
  187. {
  188. DestroyVehicle(i);
  189. }
  190. return 1;
  191. }
  192.  
  193. FUNCTION GMClock()
  194. {
  195. GMSec++;
  196. switch(ObjectiveStarted)
  197. {
  198. case false:
  199. {
  200. switch(GMSec)
  201. {
  202. case 1:
  203. {
  204. new string[100];
  205. format(string,sizeof(string),"The last man standing deathmatch will start in %d seconds.",START_TIME);
  206. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
  207. }
  208. case START_TIME-3:
  209. {
  210. PlaySoundForAll(1056);
  211. GameTextForAll("~r~~h~3",1000,3);
  212. }
  213. case START_TIME-2:
  214. {
  215. PlaySoundForAll(1056);
  216. GameTextForAll("~r~~h~~h~2",1000,3);
  217. }
  218. case START_TIME-1:
  219. {
  220. PlaySoundForAll(1056);
  221. GameTextForAll("~y~1",1000,3);
  222. }
  223. case START_TIME:
  224. {
  225. PlaySoundForAll(1057);
  226. if(PlayersAlive > 1)
  227. {
  228. CallRemoteFunction("StartMission","");
  229. GameTextForAll("~r~Fight!",1000,3);
  230. ObjectiveStarted= true;
  231. ToggleControllable(true);
  232. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has started. KILL OR BE KILLED!");
  233. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last man standing deathmatch has started. KILL OR BE KILLED!",0);
  234. }
  235. else CallRemoteFunction("EndMission","");
  236. KillTimer(GMTimer);
  237. }
  238. }
  239. }
  240. }
  241. }
  242.  
  243. public OnPlayerDisconnect(playerid, reason)
  244. {
  245. if(PlayerMissionInfo[playerid][Counted])
  246. {
  247. PlayersAlive --;
  248. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  249. PlayerMissionInfo[playerid][Counted]= false;
  250. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  251. }
  252. return 1;
  253. }
  254.  
  255. public OnPlayerRequestClass(playerid,classid)
  256. {
  257. SetPlayerPos(playerid,CLASS_POSTION);
  258. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  259. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  260. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  261.  
  262. CallRemoteFunction("LmsHide","i",playerid);
  263. CallRemoteFunction("ShowClassSelection","iisiii",playerid, 2,"Deathmatcher", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  264. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  265.  
  266. if(PlayerMissionInfo[playerid][Counted])
  267. {
  268. PlayersAlive --;
  269. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  270. PlayerMissionInfo[playerid][Counted]= false;
  271. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  272. }
  273. return 1;
  274. }
  275.  
  276. public OnPlayerSpawn(playerid)
  277. {
  278. new string[124];
  279. CallRemoteFunction("LmsShow","i",playerid);
  280. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  281. SetPlayerHealth(playerid,Health);
  282.  
  283. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
  284. {
  285. back:
  286. new skin=random(312);
  287. if(skin == 74 || skin < 1) goto back;
  288. SetPlayerSkin(playerid,skin);
  289. }
  290. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  291. new rand=random(MaxSpawns);
  292. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  293. {
  294. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  295. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  296. SetPlayerTeam(playerid,NO_TEAM);
  297. SetPlayerColor(playerid,COLOR_GREY);
  298. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  299. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  300. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  301.  
  302. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  303. {
  304. if(PlayerMissionInfo[playerid][Counted])
  305. {
  306. PlayersAlive --;
  307. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  308. PlayerMissionInfo[playerid][Counted]= false;
  309. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  310. }
  311. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  312. SetPlayerVirtualWorld(playerid,2);
  313. }
  314. else
  315. {
  316. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  317. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  318. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  319. SetPlayerTeam(playerid,NO_TEAM);
  320. SetPlayerColor(playerid,(RandomColor == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
  321. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  322. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"Your mission is to kill other players and survive till the last.",2000);
  323. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"~r~~h~Eliminate ~w~others!",2000);
  324. if(!ObjectiveStarted)
  325. {
  326. format(string,sizeof(string),""SERVER_KEY_MSG" The last man standing deathmatch will start in %d seconds.",(GMSec-START_TIME)*-1);
  327. SendClientMessage(playerid,COLOR_SERVER,string);
  328. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  329. TogglePlayerControllable(playerid,false);
  330. }
  331. if(!PlayerMissionInfo[playerid][Counted])
  332. {
  333. PlayersAlive++;
  334. PlayerMissionInfo[playerid][Counted]= true;
  335. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  336. }
  337. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  338. }
  339. }
  340. else CallRemoteFunction("SetJailed","d",playerid);
  341. return 1;
  342. }
  343.  
  344.  
  345. public OnPlayerDeath(playerid, killerid, reason)
  346. {
  347. if(!MissionStarted)
  348. {
  349. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  350. return 1;
  351. }
  352. if(killerid != INVALID_PLAYER_ID)
  353. {
  354. PlayerMissionInfo[killerid][Kills]++;
  355. SetPlayerScore(killerid,PlayerMissionInfo[killerid][Kills]);
  356. }
  357. if(ObjectiveStarted && PlayerMissionInfo[playerid][Counted])
  358. {
  359. GameTextForPlayer(playerid,"~R~MISSION FAILED~w~!",3000,3);
  360. CallRemoteFunction("PlayerMissionStats","dd",playerid,1);
  361. }
  362. if(PlayerMissionInfo[playerid][Counted])
  363. {
  364. PlayersAlive--;
  365. PlayerMissionInfo[playerid][Counted]= false;
  366. }
  367. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  368. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  369. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  370. return 1;
  371. }
  372.  
  373. FUNCTION EndTheMission()
  374. {
  375. if(!MissionStarted) return 1;
  376. MissionStarted= false;
  377. KillTimer(GMTimer);
  378. if(!MissionCancelled && ObjectiveStarted)
  379. {
  380. new string[124];
  381. new winner = INVALID_PLAYER_ID;
  382. new bool:MoreThan1;
  383. if(PlayersAlive == 1)
  384. {
  385. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  386. {
  387. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  388. {
  389. winner=i;
  390. }
  391. }
  392.  
  393. }
  394. else if(PlayersAlive > 1)
  395. {
  396. new MostKills;
  397. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  398. {
  399. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  400. {
  401. if(PlayerMissionInfo[MostKills][Kills] < PlayerMissionInfo[i][Kills])
  402. {
  403. MostKills=i;
  404. MoreThan1=false;
  405. continue;
  406. }
  407. if(PlayerMissionInfo[MostKills][Kills] == PlayerMissionInfo[i][Kills])
  408. {
  409. MoreThan1= true;
  410. }
  411. }
  412. }
  413. new Float:TopHealth;
  414. new Float:OtherHealth;
  415. if(MoreThan1)
  416. {
  417. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  418. {
  419. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  420. {
  421. if(PlayerMissionInfo[winner][Kills] == PlayerMissionInfo[i][Kills])
  422. {
  423. GetPlayerHealth(winner,TopHealth);
  424. GetPlayerHealth(i,OtherHealth);
  425. if(OtherHealth > TopHealth)
  426. {
  427. winner=i;
  428. MoreThan1= false;
  429. continue;
  430. }
  431. else if(OtherHealth == TopHealth)
  432. {
  433. MoreThan1= true;
  434. }
  435. }
  436. }
  437. }
  438. }
  439. if(MoreThan1)
  440. {
  441. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.");
  442. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.",IRC_SERVER_COLOR);
  443. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  444. {
  445. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  446. {
  447. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  448. }
  449. }
  450. }
  451. }
  452. if(PlayersAlive > 0 && !MoreThan1 && winner != INVALID_PLAYER_ID)
  453. {
  454. new amount= (PlayerMissionInfo[winner][Kills]*1000)+(10000);
  455. format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has won the last man standing deathmatch. Reward: $%d + Token.",PlayerMissionInfo[winner][UserName],winner,amount);
  456. CallRemoteFunction("GivePlayerToken","dd",winner,1);
  457. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  458. SendClientMessageToAll(COLOR_SERVER,string);
  459. CallRemoteFunction("GivePlayerCash","ii",winner,amount);
  460. CallRemoteFunction("PlayerMissionStats","dd",winner,0);
  461. CallRemoteFunction("PlayerMissionStats","dd",winner,12);
  462. CallRemoteFunction("CheckForBetWinners","d",winner);
  463. }
  464. }
  465. else
  466. {
  467. PlaySoundForAll(1058);
  468. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  469. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  470. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  471. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  472. }
  473. return 1;
  474. }
  475.  
  476. //==============================================================================
  477. // Mission functions
  478. //==============================================================================
  479.  
  480. PlaySoundForAll(sound)
  481. {
  482. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  483. {
  484. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  485. }
  486. }
  487.  
  488.  
  489. ToggleControllable(control)
  490. {
  491. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  492. {
  493. if(IsPlayerConnected(i))
  494. {
  495. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  496. }
  497. }
  498. return 1;
  499. }
  500.  
  501. //==============================================================================
  502. // Important functions required
  503. //==============================================================================
  504.  
  505. FUNCTION CancelTheMission()
  506. {
  507. MissionCancelled= true;
  508. return 1;
  509. }
  510.  
  511. FUNCTION OnPlayerNameRecieve(playerid,name[])
  512. {
  513. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  514. return 1;
  515. }
  516.  
  517. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  518.  
  519. FUNCTION OnPlayerRespawned(playerid)
  520. {
  521. if(PlayerMissionInfo[playerid][Counted])
  522. {
  523. PlayersAlive--;
  524. PlayerMissionInfo[playerid][Counted]= false;
  525. }
  526. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  527. return 1;
  528. }
Advertisement
Add Comment
Please, Sign In to add comment