Bulletje

Untitled

Feb 20th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.33 KB | None | 0 0
  1. /*
  2. Script by: Sasuke_Uchiha
  3. Map by: Alby_JJ (JimmySpaceTravel1337)
  4. Mission Base: Parkour
  5. Mission Type: Parkour
  6. Mission Type ID: 7
  7. */
  8. //==============================================================================
  9. // Includes
  10. //==============================================================================
  11. #include <a_samp>
  12. #include <crashdetect>
  13. #include <fixes2>
  14.  
  15. #include "..\filterscripts\MM\stuff\defines"
  16. #include "..\filterscripts\MM\stuff\serverkeymsg"
  17.  
  18. //==============================================================================
  19. // Defines
  20. //==============================================================================
  21.  
  22. #define MISSION_NAME "Fun Time"
  23. #define Health Float:0x7F800000
  24. #define MAX_MAP_OBJECTS 113
  25. #define CLASS_POSTION 2616.1108,-4505.2510,2158.3503
  26. #define CLASS_CAMERA 2604.8989,-4505.3247,2158.3503
  27. #define CLASS_FACING_AGNLE 88.9138
  28. #define Z_LIMIT 2000.0
  29. #define START_TIME 20
  30.  
  31. //==============================================================================
  32. // Per mission functions
  33. //==============================================================================
  34.  
  35. enum cp_enum
  36. {
  37. Float:cp_x,
  38. Float:cp_y,
  39. Float:cp_z,
  40. cp_type,
  41. Float:cp_size
  42. };
  43.  
  44. new const cp[][cp_enum] =
  45. {
  46. {2626.5720,-4505.3071,2160.8850,0,10.0},
  47. {2654.8147,-4497.6084,2149.2883,0,10.0},
  48. {2670.3845,-4503.0879,2149.3657,0,10.0},
  49. {2692.0068,-4511.6392,2160.0840,0,10.0},
  50. {2713.0894,-4519.4375,2155.9114,0,10.0},
  51. {2741.3845,-4549.5542,2139.2004,0,10.0},
  52. {2760.4976,-4596.8174,2144.8005,0,10.0},
  53. {2778.9275,-4629.0806,2137.3696,0,10.0},
  54. {2843.8213,-4685.2490,2128.0310,0,10.0},
  55. {2809.6458,-4731.1270,2114.8474,0,10.0},
  56. {2768.5547,-4765.3989,2133.0498,0,10.0},
  57. {2715.4482,-4809.3843,2169.7141,0,10.0},
  58. {2652.7800,-4878.9702,2115.0950,0,10.0},
  59. {2606.1255,-4924.8882,2101.0776,0,10.0},
  60. {2547.3240,-4907.8828,2104.7410,0,10.0},
  61. {2488.6003,-4957.2959,2086.4873,0,10.0},
  62. {2516.3975,-5070.4673,2077.9915,0,10.0},
  63. {2525.2683,-5121.3096,2074.5986,1,10.0}
  64. };
  65.  
  66. enum ped_enum
  67. {
  68. TeamID,
  69. Skin,
  70. Float:SpawnX,
  71. Float:SpawnY,
  72. Float:SpawnZ,
  73. Float:SpawnAngle,
  74. SpawnInterior,
  75. VirtualWorld,
  76. Weapon1,
  77. Ammo1,
  78. Weapon2,
  79. Ammo2,
  80. Weapon3,
  81. Ammo3,
  82. };
  83.  
  84. new PedInfo[][ped_enum] = {
  85. {TEAM_DEFEND,0,2585.1868,-4504.6265,2158.5146,270.1673,0,0,0,0,0,0,0,0}
  86. };
  87.  
  88. #if MAX_MAP_OBJECTS != 0
  89. new Object[MAX_MAP_OBJECTS];
  90.  
  91. CreateMap()
  92. {
  93. Object[0] = CreateObject(8040,2579.3750000,-4505.0947266,2158.1083984,0.0000000,0.0000000,0.0000000); //object(airprtcrprk02_lvs)(1)
  94. Object[1] = CreateObject(619,2574.6298828,-4521.9575195,2156.5400391,0.0000000,0.0000000,219.0000000); //object(veg_palwee03)(1)
  95. Object[2] = CreateObject(619,2578.2006836,-4521.8725586,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(8)
  96. Object[3] = CreateObject(619,2581.4472656,-4521.7939453,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(9)
  97. Object[4] = CreateObject(619,2584.4453125,-4521.7207031,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(10)
  98. Object[5] = CreateObject(619,2587.5180664,-4521.6459961,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(11)
  99. Object[6] = CreateObject(619,2590.7148438,-4521.5683594,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(12)
  100. Object[7] = CreateObject(619,2594.0375977,-4521.4873047,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(13)
  101. Object[8] = CreateObject(619,2597.1347656,-4521.4121094,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(14)
  102. Object[9] = CreateObject(619,2600.0058594,-4521.3437500,2156.5400391,0.0000000,0.0000000,218.9959717); //object(veg_palwee03)(15)
  103. Object[10] = CreateObject(619,2600.3029785,-4488.9848633,2156.5400391,0.0000000,0.0000000,55.4959412); //object(veg_palwee03)(16)
  104. Object[11] = CreateObject(619,2597.1162109,-4489.0590820,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(17)
  105. Object[12] = CreateObject(619,2593.6936035,-4489.0048828,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(18)
  106. Object[13] = CreateObject(619,2590.0957031,-4488.9448242,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(19)
  107. Object[14] = CreateObject(619,2587.1987305,-4488.8608398,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(20)
  108. Object[15] = CreateObject(619,2584.1994629,-4488.8471680,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(21)
  109. Object[16] = CreateObject(619,2581.3229981,-4488.8881836,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(22)
  110. Object[17] = CreateObject(619,2577.8999023,-4488.8422852,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(23)
  111. Object[18] = CreateObject(619,2574.4511719,-4488.7978516,2156.5400391,0.0000000,0.0000000,55.4919434); //object(veg_palwee03)(24)
  112. Object[19] = CreateObject(3253,2621.0136719,-4505.6025391,2157.1013184,0.0000000,0.0000000,0.0000000); //object(des_westrn11_)(1)
  113. Object[20] = CreateObject(3253,2628.5234375,-4505.4213867,2157.1013184,0.0000000,0.0000000,0.0000000); //object(des_westrn11_)(2)
  114. Object[21] = CreateObject(4639,2618.2373047,-4512.4609375,2159.0393066,0.0000000,0.0000000,89.4946289); //object(paypark_lan02)(2)
  115. Object[22] = CreateObject(4639,2618.3286133,-4498.9023438,2159.0393066,0.0000000,0.0000000,89.9946289); //object(paypark_lan02)(3)
  116. Object[23] = CreateObject(2653,2632.5585938,-4505.2744141,2160.6567383,357.9949951,0.0000000,89.4946289); //object(cj_aircon3)(1)
  117. Object[24] = CreateObject(2653,2632.5732422,-4503.6269531,2160.6567383,357.9895019,0.0000000,89.4891357); //object(cj_aircon3)(2)
  118. Object[25] = CreateObject(2653,2632.5244141,-4506.9218750,2160.6567383,357.9949951,0.0000000,89.4946289); //object(cj_aircon3)(4)
  119. Object[26] = CreateObject(2653,2640.0351562,-4502.5644531,2160.9057617,357.9895019,0.0000000,106.7431641); //object(cj_aircon3)(5)
  120. Object[27] = CreateObject(2653,2639.9013672,-4508.3378906,2160.9057617,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
  121. Object[28] = CreateObject(3502,2648.0109863,-4499.9716797,2163.2871094,0.0000000,0.0000000,108.0000000); //object(vgsn_con_tube)(1)
  122. Object[29] = CreateObject(3502,2654.5100098,-4497.5961914,2157.3149414,278.6180420,196.9232788,304.7382812); //object(vgsn_con_tube)(2)
  123. Object[30] = CreateObject(3502,2645.6623535,-4510.3940430,2157.3090820,274.2715759,200.5760498,268.2689209); //object(vgsn_con_tube)(4)
  124. Object[31] = CreateObject(3631,2645.6857910,-4510.1303711,2148.5075684,0.0000000,0.0000000,66.0000000); //object(oilcrat_las)(1)
  125. Object[32] = CreateObject(3631,2647.4677734,-4510.9165039,2148.5065918,0.0000000,0.0000000,65.9948730); //object(oilcrat_las)(2)
  126. Object[33] = CreateObject(3631,2654.9580078,-4497.7861328,2147.7087402,0.0000000,0.0000000,337.7448731); //object(oilcrat_las)(3)
  127. Object[34] = CreateObject(3631,2655.6520996,-4496.1000977,2147.6818848,0.0000000,0.0000000,337.7416992); //object(oilcrat_las)(4)
  128. Object[35] = CreateObject(3631,2654.2919922,-4499.4584961,2147.7116699,0.0000000,0.0000000,337.7416992); //object(oilcrat_las)(5)
  129. Object[36] = CreateObject(2653,2650.5844727,-4504.5854492,2147.9990234,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(8)
  130. Object[37] = CreateObject(2653,2654.1306152,-4498.0947266,2147.3017578,4.4902344,0.0000000,151.2432861); //object(cj_aircon3)(10)
  131. Object[38] = CreateObject(2653,2649.0334473,-4503.6733398,2147.9990234,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(12)
  132. Object[39] = CreateObject(2653,2652.6931152,-4497.0488281,2147.2270508,6.2402344,0.0000000,151.2432861); //object(cj_aircon3)(13)
  133. Object[40] = CreateObject(3418,2670.3889160,-4502.8403320,2147.2360840,0.0000000,0.0000000,68.0000000); //object(ce_oldhut02)(1)
  134. Object[41] = CreateObject(3418,2677.4892578,-4505.6728516,2150.7360840,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(2)
  135. Object[42] = CreateObject(3418,2683.4912109,-4507.8793945,2153.4841309,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(3)
  136. Object[43] = CreateObject(3418,2689.7133789,-4510.2753906,2157.4792481,0.0000000,0.0000000,67.9998779); //object(ce_oldhut02)(4)
  137. Object[44] = CreateObject(3418,2699.1560059,-4513.9028320,2155.3845215,39.9981690,0.6526794,69.3303833); //object(ce_oldhut02)(5)
  138. Object[45] = CreateObject(3418,2705.9001465,-4515.8911133,2153.3874512,39.9957275,0.6481934,69.3292236); //object(ce_oldhut02)(6)
  139. Object[46] = CreateObject(3585,2710.2778320,-4518.1357422,2153.4487305,3.4988098,1.5028076,70.6582947); //object(lastran1_la02)(1)
  140. Object[47] = CreateObject(3585,2712.5305176,-4518.9677734,2153.2993164,3.4936523,1.4996338,70.6530762); //object(lastran1_la02)(2)
  141. Object[48] = CreateObject(3585,2714.5400391,-4519.7353516,2153.1748047,3.4936523,1.4996338,70.6530762); //object(lastran1_la02)(3)
  142. Object[49] = CreateObject(16008,2721.9277344,-4522.8510742,2144.0219727,0.0000000,6.2500000,72.5000000); //object(des_nbrstruct)(1)
  143. Object[50] = CreateObject(3623,2737.5402832,-4554.7221680,2136.8403320,0.0000000,0.0000000,28.0000000); //object(rdwarhus2)(1)
  144. Object[51] = CreateObject(3623,2751.1867676,-4547.4633789,2136.8403320,0.0000000,0.0000000,27.9986572); //object(rdwarhus2)(2)
  145. Object[52] = CreateObject(3644,2760.6188965,-4579.7094727,2138.3664551,0.0000000,0.0000000,28.0000000); //object(idlebuild01_lax)(1)
  146. Object[53] = CreateObject(3644,2769.0158691,-4596.8544922,2144.2370606,322.0000000,0.0000000,29.7486572); //object(idlebuild01_lax)(2)
  147. Object[54] = CreateObject(18553,2770.0363769,-4573.6010742,2140.1264648,0.0000000,90.0000000,298.0007324); //object(count_ammundoor)(1)
  148. Object[55] = CreateObject(18553,2750.5996094,-4584.4692383,2140.1264648,0.0000000,90.0000000,297.9986572); //object(count_ammundoor)(2)
  149. Object[56] = CreateObject(3586,2766.9291992,-4608.4160156,2137.5039062,8.0000000,0.0000000,208.5000000); //object(escl_la)(1)
  150. Object[57] = CreateObject(3586,2780.5249023,-4604.1372070,2138.2827148,7.9980469,0.0000000,209.2485352); //object(escl_la)(2)
  151. Object[58] = CreateObject(13649,2774.3916016,-4621.6137695,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(1)
  152. Object[59] = CreateObject(13649,2778.9152832,-4629.0849609,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(2)
  153. Object[60] = CreateObject(13649,2782.9218750,-4636.3222656,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(4)
  154. Object[61] = CreateObject(13649,2787.7475586,-4616.3789062,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(5)
  155. Object[62] = CreateObject(13649,2792.3317871,-4623.8491211,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(6)
  156. Object[63] = CreateObject(13649,2796.0195312,-4630.2963867,2135.5859375,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(7)
  157. Object[64] = CreateObject(13649,2788.3200684,-4640.8491211,2135.7602539,0.0000000,0.0000000,0.0000000); //object(ramplandpad01)(8)
  158. Object[65] = CreateObject(5138,2786.6547852,-4633.2783203,2127.5229492,0.0000000,0.0000000,37.5000000); //object(snpdoldwrhs2_las2)(1)
  159. Object[66] = CreateObject(5177,2833.3239746,-4702.0537109,2123.7011719,0.0000000,0.0000000,39.0000000); //object(las2stripsshp1)(1)
  160. Object[67] = CreateObject(3586,2821.0991211,-4716.1391602,2124.9936523,7.9925537,0.0000000,129.7456055); //object(escl_la)(3)
  161. Object[68] = CreateObject(3586,2824.5512695,-4720.8842773,2124.9936523,7.9870605,0.0000000,129.7430420); //object(escl_la)(4)
  162. Object[69] = CreateObject(5154,2809.2888184,-4730.4584961,2110.6752930,0.0000000,0.0000000,39.5000000); //object(dk_cargoshp03d)(1)
  163. Object[70] = CreateObject(5154,2799.0827637,-4738.5209961,2109.2500000,0.0000000,0.0000000,39.2458496); //object(dk_cargoshp03d)(2)
  164. Object[71] = CreateObject(6189,2748.5043945,-4783.1323242,2129.8464356,332.0000000,0.0000000,310.0000000); //object(gaz_pier1)(1)
  165. Object[72] = CreateObject(6189,2676.4030762,-4847.7397461,2122.7966309,34.7152100,357.2624207,313.3056030); //object(gaz_pier1)(2)
  166. Object[73] = CreateObject(3665,2619.1608887,-4903.0976562,2099.9409180,8.0000000,0.0000000,310.7500000); //object(airyelrm_las)(1)
  167. Object[74] = CreateObject(13638,2604.4584961,-4918.5703125,2098.5385742,0.0000000,0.0000000,39.5000000); //object(stunt1)(1)
  168. Object[75] = CreateObject(13638,2593.5532227,-4902.2666016,2099.1860352,0.0000000,0.0000000,42.7458496); //object(stunt1)(2)
  169. Object[76] = CreateObject(13647,2565.8945312,-4903.8295898,2102.7163086,0.0000000,0.0000000,12.2500000); //object(wall1)(1)
  170. Object[77] = CreateObject(13647,2528.0773926,-4912.0551758,2102.7163086,0.0000000,0.0000000,12.2497559); //object(wall1)(2)
  171. Object[78] = CreateObject(16304,2482.0371094,-4925.9262695,2083.0988769,0.0000000,0.0000000,20.0000000); //object(des_gravelpile05)(1)
  172. Object[79] = CreateObject(16304,2488.1684570,-4957.8940430,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(2)
  173. Object[80] = CreateObject(16304,2494.8540039,-4991.5966797,2082.5759277,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(3)
  174. Object[81] = CreateObject(16304,2504.8198242,-5023.2368164,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(4)
  175. Object[82] = CreateObject(16304,2513.9741211,-5054.7207031,2083.0988769,0.0000000,0.0000000,19.9951172); //object(des_gravelpile05)(5)
  176. Object[83] = CreateObject(3663,2516.4252930,-5070.4853516,2076.9702148,0.0000000,0.0000000,278.0000000); //object(lasstepsa_las)(1)
  177. Object[84] = CreateObject(8040,2524.8708496,-5118.7153320,2074.1923828,0.0000000,0.0000000,102.2499695); //object(airprtcrprk02_lvs)(2)
  178. Object[85] = CreateObject(2993,2529.3088379,-5120.6127930,2073.2026367,0.0000000,357.7500000,14.0000000); //object(kmb_goflag)(1)
  179. Object[86] = CreateObject(2993,2530.9304199,-5120.1542969,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(2)
  180. Object[87] = CreateObject(2993,2527.2385254,-5121.1220703,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(3)
  181. Object[88] = CreateObject(2993,2521.7934570,-5122.0654297,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(4)
  182. Object[89] = CreateObject(2993,2519.5754394,-5122.4506836,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(5)
  183. Object[90] = CreateObject(2993,2517.6779785,-5122.7797852,2073.2026367,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(6)
  184. Object[91] = CreateObject(2993,2517.6777344,-5122.7792969,2074.1767578,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(7)
  185. Object[92] = CreateObject(2993,2527.2382812,-5121.1220703,2074.1020508,0.0000000,357.7478027,13.9965820); //object(kmb_goflag)(8)
  186. Object[93] = CreateObject(2993,2615.6845703,-4517.0195312,2157.3427734,0.0000000,0.0000000,0.0000000); //object(kmb_goflag)(9)
  187. Object[94] = CreateObject(2993,2616.4360352,-4495.6547852,2157.3427734,0.0000000,0.0000000,0.0000000); //object(kmb_goflag)(10)
  188. Object[95] = CreateObject(2992,2612.5478516,-4505.8046875,2157.3503418,0.0000000,0.0000000,0.0000000); //object(roulette_marker)(1)
  189. Object[96] = CreateObject(3494,2617.2995606,-4509.9067383,2159.7080078,0.0000000,0.0000000,0.0000000); //object(luxorpillar04_lvs)(1)
  190. Object[97] = CreateObject(3494,2617.0566406,-4499.9521484,2159.7080078,0.0000000,0.0000000,0.0000000); //object(luxorpillar04_lvs)(2)
  191. Object[98] = CreateObject(3524,2616.8027344,-4496.4052734,2160.2280273,0.0000000,0.0000000,287.9999695); //object(skullpillar01_lvs)(1)
  192. Object[99] = CreateObject(3524,2616.6198731,-4515.0825195,2160.2280273,0.0000000,0.0000000,219.9955902); //object(skullpillar01_lvs)(2)
  193. Object[100] = CreateObject(16778,2612.8249512,-4492.3637695,2157.3427734,0.0000000,0.0000000,0.0000000); //object(des_ufosign)(1)
  194. Object[101] = CreateObject(16778,2610.0515137,-4520.0639648,2157.3427734,0.0000000,0.0000000,0.0000000); //object(des_ufosign)(2)
  195. Object[102] = CreateObject(4206,2606.6997070,-4505.3095703,2157.3674316,0.0000000,0.0000000,1.7500000); //object(pershingpool_lan)(1)
  196. Object[103] = CreateObject(2653,2635.7126465,-4505.2875977,2160.8049316,357.9895019,0.0000000,359.4591064); //object(cj_aircon3)(2)
  197. Object[104] = CreateObject(2653,2634.2927246,-4505.2753906,2160.7807617,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
  198. Object[105] = CreateObject(2653,2632.3161621,-4505.2060547,2160.6975098,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
  199. Object[106] = CreateObject(2653,2630.7265625,-4505.1708984,2160.6062012,357.9895019,0.0000000,359.4891357); //object(cj_aircon3)(2)
  200. Object[107] = CreateObject(2653,2725.9973144,-4522.2563477,2151.0441894,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
  201. Object[108] = CreateObject(2653,2718.9916992,-4519.5356445,2150.7822266,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
  202. Object[109] = CreateObject(2653,2718.4050293,-4521.3964844,2151.0041504,357.9895019,0.0000000,68.7431641); //object(cj_aircon3)(6)
  203. Object[110] = CreateObject(2653,2722.0920410,-4522.8286133,2151.2856445,357.9895019,0.0000000,68.7414551); //object(cj_aircon3)(6)
  204. Object[111] = CreateObject(3084,2722.1669922,-4521.8774414,2151.4577637,90.0000000,0.0000000,338.0000000); //object(trdcsgrgdoor_lvs)(1)
  205. Object[112] = CreateObject(3084,2748.5270996,-4572.6591797,2139.9414062,84.0000000,0.0000000,297.9998779); //object(trdcsgrgdoor_lvs)(2)
  206. }
  207. #endif
  208.  
  209.  
  210. //==============================================================================
  211. // Basic vars
  212. //==============================================================================
  213.  
  214. new bool:MissionStarted;
  215. new bool:ObjectiveStarted;
  216. new bool:MissionCancelled;
  217.  
  218. new GMTimer;
  219. new GMSec;
  220. new TotalPlayers;
  221. new CurrentRacePos;
  222. new MAX_CPs;
  223. new RaceMin,RaceSec,RaceMili;
  224. new randA;
  225.  
  226. native IsValidVehicle(vehicleid);
  227.  
  228. enum playersdata
  229. {
  230. UserName[MAX_PLAYER_NAME],
  231. rSec,
  232. rMin,
  233. rMili,
  234. CurrentCheckpoint,
  235. MissionFinished,
  236. PlayerClassID,
  237. PlayerCounted,
  238. rBestMin,
  239. rBestSec,
  240. rBestMili
  241. };
  242.  
  243. new PlayerMissionInfo[MAX_PLAYERS][playersdata];
  244.  
  245. //==============================================================================
  246. // Basic script
  247. //==============================================================================
  248.  
  249. main()
  250. {
  251. print("----------------------------------");
  252. print(" Mission: "MISSION_NAME" started.");
  253. print("----------------------------------\n");
  254. }
  255.  
  256. public OnGameModeInit()
  257. {
  258. MissionStarted= true;
  259.  
  260. #if MAX_MAP_OBJECTS != 0
  261. CreateMap();
  262. #endif
  263.  
  264. for(new i=0; i<sizeof(PedInfo); i++)
  265. {
  266. 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);
  267. }
  268.  
  269. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  270.  
  271. GMTimer = SetTimer("GMClock",1000,true);
  272. MAX_CPs = sizeof(cp);
  273. randA=random(2);
  274. CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
  275. return 1;
  276. }
  277.  
  278. public OnGameModeExit()
  279. {
  280. #if MAX_MAP_OBJECTS != 0
  281. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  282. #endif
  283. KillTimer(GMTimer);
  284. return 1;
  285. }
  286.  
  287. FUNCTION GMClock()
  288. {
  289. GMSec++;
  290. switch(ObjectiveStarted)
  291. {
  292. case false:
  293. {
  294. switch(GMSec)
  295. {
  296. case 1:
  297. {
  298. new string[40];
  299. format(string,sizeof(string),"The parkour will start in %d seconds.",START_TIME);
  300. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
  301. }
  302. case START_TIME-4:
  303. {
  304. GameTextForAll("~r~~h~GET READY!",1000,3);
  305. PlaySoundForAll(1056);
  306. }
  307. case START_TIME-3:
  308. {
  309. GameTextForAll("~r~~h~~h~3",1000,3);
  310. PlaySoundForAll(1056);
  311. }
  312. case START_TIME-2:
  313. {
  314. GameTextForAll("~r~~h~~h~~h~2",1000,3);
  315. PlaySoundForAll(1056);
  316. }
  317. case START_TIME-1:
  318. {
  319. GameTextForAll("~y~1",1000,3);
  320. PlaySoundForAll(1056);
  321. }
  322. case START_TIME:
  323. {
  324. PlaySoundForAll(1057);
  325. CallRemoteFunction("StartMission","");
  326. GameTextForAll("~g~~h~~h~RUN!",1000,3);
  327. ObjectiveStarted= true;
  328. ToggleControllable(true);
  329. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" DAZZZ! The parkour has started. Good luck.");
  330. CallRemoteFunction("ShowInfoText", "iisi", -1, -1,"DAZZZ! The parkour has started. Good luck.",0);
  331. RaceMili=GetTickCount();
  332. }
  333. }
  334. }
  335. case true:
  336. {
  337. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  338. {
  339. if(IsPlayerConnected(i) && CallRemoteFunction("GetAliveState","i",i) && !PlayerMissionInfo[i][MissionFinished])
  340. {
  341. GetPlayerPosition(i);
  342. new Float:x,Float:y,Float:z;
  343. GetPlayerPos(i,x,y,z);
  344. if(z <= Z_LIMIT)
  345. {
  346. SpawnPlayer(i);
  347. CallRemoteFunction("UpdateAliveState","ii",i,0);
  348. CallRemoteFunction("UpdateLastCheckpoint","dfff",i,-1.0,-1.0,-1.0);
  349. }
  350. }
  351. }
  352. RaceSec++;
  353. if(RaceSec == 60)
  354. {
  355. RaceSec=0;
  356. RaceMin++;
  357. }
  358.  
  359. }
  360. }
  361. }
  362.  
  363. public OnPlayerDisconnect(playerid,reason)
  364. {
  365. if(!PlayerMissionInfo[playerid][MissionFinished])
  366. {
  367. if(PlayerMissionInfo[playerid][PlayerCounted])
  368. {
  369. TotalPlayers--;
  370. PlayerMissionInfo[playerid][PlayerCounted]= false;
  371. }
  372. }
  373. else PlayerMissionInfo[playerid][MissionFinished] = false;
  374.  
  375. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  376. DisablePlayerRaceCheckpoint(playerid);
  377. CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
  378. return 1;
  379. }
  380.  
  381. public OnPlayerRequestClass(playerid, classid)
  382. {
  383. SetPlayerPos(playerid,CLASS_POSTION);
  384. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  385. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  386. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  387.  
  388. CallRemoteFunction("ShowClassSelection","ddsddd",playerid, 2,"Parkour Artist", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  389. SetPlayerColor(playerid,COLOR_SERVER);
  390. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  391. return 1;
  392. }
  393.  
  394. public OnPlayerRequestSpawn(playerid)
  395. {
  396. CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
  397. return 1;
  398. }
  399.  
  400. public OnPlayerSpawn(playerid)
  401. {
  402. new string[124];
  403. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  404. SetPlayerHealth(playerid,Health);
  405.  
  406. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
  407. {
  408. back:
  409. new skin=random(312);
  410. if(skin == 74 || skin < 1) goto back;
  411. SetPlayerSkin(playerid,skin);
  412. }
  413.  
  414. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  415. SetPlayerColor(playerid,(randA == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
  416. SetPlayerTeam(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]);
  417. switch(ObjectiveStarted)
  418. {
  419. case false:
  420. {
  421. TogglePlayerControllable(playerid,false);
  422. format(string,sizeof(string),"The parkour will start in %d seconds. Get ready.",(GMSec-START_TIME)*-1);
  423. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,100);
  424. }
  425. case true:
  426. {
  427. TogglePlayerControllable(playerid,true);
  428. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"HURRY UP! The parkour has already started.",2000);
  429. }
  430. }
  431. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"Try to finish first!",2000);
  432. if(CallRemoteFunction("GetJailedStatus","d",playerid)) CallRemoteFunction("SetJailed","d",playerid);
  433. else
  434. {
  435. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  436. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX]-(random(3)),PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]+5);
  437. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  438. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  439. SetCameraBehindPlayer(playerid);
  440. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  441. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  442. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  443. if(!PlayerMissionInfo[playerid][MissionFinished])
  444. {
  445. PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
  446. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  447. SetPlayerRaceCheckpoint(playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_type],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],10.0);
  448. SetPlayerMapIcon(playerid, MAP_ICON_NEXT_CP,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z], 0, 0xFF000033, MAPICON_LOCAL);
  449. }
  450. else
  451. {
  452. SetPlayerVirtualWorld(playerid,2);
  453. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  454. }
  455. if(!PlayerMissionInfo[playerid][PlayerCounted])
  456. {
  457. TotalPlayers++;
  458. PlayerMissionInfo[playerid][PlayerCounted]= true;
  459. }
  460. }
  461.  
  462. CallRemoteFunction("GetPlayerPersonalBest","d",playerid);
  463. CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,GetPlayerPosition(playerid),TotalPlayers,RaceMin,PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint],MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
  464. CallRemoteFunction("PlayerRaceRecords","dd",playerid,2);
  465. return 1;
  466. }
  467.  
  468. public OnPlayerDeath(playerid,killerid,reason)
  469. {
  470. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  471. if(!PlayerMissionInfo[playerid][MissionFinished]) PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
  472. CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
  473. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-1.0,-1.0,-1.0);
  474. return 1;
  475. }
  476.  
  477. public OnPlayerEnterRaceCheckpoint(playerid)
  478. {
  479. if(!MissionStarted || !ObjectiveStarted) return 0;
  480. new string[124],type;
  481. PlayerPlaySound(playerid,1139,0,0,0);
  482. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
  483. if(PlayerMissionInfo[playerid][CurrentCheckpoint] != MAX_CPs-1)
  484. {
  485. type=cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_type];
  486. }
  487. if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-2)
  488. {
  489. SetPlayerRaceCheckpoint(playerid,type,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],0.0,0.0,0.0,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_size]);
  490. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  491. }
  492. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-1)
  493. {
  494. PlaySoundForAll(1058);
  495. PlayerMissionInfo[playerid][MissionFinished]= true;
  496. DisablePlayerRaceCheckpoint(playerid);
  497. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  498. new Pos=GetPlayerPosition(playerid);
  499. CurrentRacePos++;
  500. PlayerMissionInfo[playerid][rMin]=RaceMin;
  501. PlayerMissionInfo[playerid][rSec]=RaceSec;
  502. new Prize=floatround(20000/Pos, floatround_round)+(1000*TotalPlayers);
  503. PlayerMissionInfo[playerid][rMili]=(((GetTickCount()-RaceMili)-(1000*PlayerMissionInfo[playerid][rSec]))-((1000*60)*PlayerMissionInfo[playerid][rMin]));
  504. while(PlayerMissionInfo[playerid][rMili] >= 1000)
  505. {
  506. PlayerMissionInfo[playerid][rMili]-=1000;
  507. PlayerMissionInfo[playerid][rSec]++;
  508. if(PlayerMissionInfo[playerid][rSec] == 60)
  509. {
  510. PlayerMissionInfo[playerid][rSec]=0;
  511. PlayerMissionInfo[playerid][rMin]++;
  512. }
  513. }
  514. CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,Pos,TotalPlayers,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint]+1,MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
  515. CallRemoteFunction("GivePlayerCash","ii",playerid,Prize);
  516. if(Pos == 1)
  517. {
  518. CallRemoteFunction("PlayerMissionStats","dd",playerid,3);
  519. format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has finished 1st in the parkour. Time Taken: %02d:%02d:%03d | Prize: $%d + Token.",PlayerMissionInfo[playerid][UserName],playerid,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][rMili],Prize);
  520. CallRemoteFunction("GivePlayerToken","dd",playerid,1);
  521. CallRemoteFunction("CheckForBetWinners","d",playerid);
  522. }
  523. else format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has finished %d%s in the parkour. Time Taken: %02d:%02d:%03d | Prize: $%d.",PlayerMissionInfo[playerid][UserName],playerid,Pos,GetEndStyle(Pos),PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][rMili],Prize);
  524. if(Pos == 2) CallRemoteFunction("PlayerMissionStats","dd",playerid,4);
  525. if(Pos == 3) CallRemoteFunction("PlayerMissionStats","dd",playerid,5);
  526. CallRemoteFunction("PlayerMissionStats","dd",playerid,0);
  527. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  528. new time = ((PlayerMissionInfo[playerid][rMin]*60000)+(PlayerMissionInfo[playerid][rSec]*1000)+(PlayerMissionInfo[playerid][rMili]));
  529. CallRemoteFunction("CheckRaceRecord","dd",playerid,time);
  530. SetPlayerVirtualWorld(playerid,2);
  531. SendClientMessageToAll(COLOR_SERVER,string);
  532. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  533. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-2.0,-2.0,-2.0);
  534. CallRemoteFunction("PlayerMissionStats","dd",playerid,11);
  535. }
  536. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] < MAX_CPs-1)
  537. {
  538. SetPlayerRaceCheckpoint(playerid,type,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_z],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_size]);
  539. SetPlayerMapIcon(playerid, MAP_ICON_NEXT_CP,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+2][cp_z], 0, 0xFF000033, MAPICON_LOCAL);
  540. }
  541. PlayerMissionInfo[playerid][CurrentCheckpoint]++;
  542. return 1;
  543. }
  544.  
  545.  
  546. FUNCTION EndTheMission()
  547. {
  548. if(!MissionStarted) return 1;
  549. MissionStarted= false;
  550. KillTimer(GMTimer);
  551. if(!MissionCancelled && ObjectiveStarted)
  552. {
  553. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The parkour has ended.");
  554. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The parkour has ended.",IRC_SERVER_COLOR);
  555. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The parkour has ended.",0);
  556. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  557. {
  558. if(IsPlayerConnected(i) && !PlayerMissionInfo[i][MissionFinished])
  559. {
  560. PlayerPlaySound(i,17004,0,0,0);
  561. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  562. DisablePlayerCheckpoint(i);
  563. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  564. }
  565. }
  566. }
  567. else
  568. {
  569. PlaySoundForAll(1058);
  570. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  571. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  572. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  573. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  574. {
  575. if(IsPlayerConnected(i))
  576. {
  577. GameTextForPlayer(i,"~R~MISSION CANCELLED~w~!",3000,3);
  578. DisablePlayerCheckpoint(i);
  579. RemovePlayerMapIcon(i,MAP_ICON_NEXT_CP);
  580. }
  581. }
  582. }
  583. return 1;
  584. }
  585.  
  586. //==============================================================================
  587. // Mission functions
  588. //==============================================================================
  589.  
  590. GetPlayerPosition(playerid)
  591. {
  592. if(!IsPlayerConnected(playerid)) return 0;
  593. if(PlayerMissionInfo[playerid][MissionFinished]) return GetPlayerScore(playerid);
  594. new PlayerPositon=CurrentRacePos+1;
  595. new Float:PlayerDistance=GetPlayerDistanceFromPoint(playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
  596. new Float:OtherPlayerDistance;
  597. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  598. {
  599. if(!IsPlayerConnected(i)) continue;
  600. if(!CallRemoteFunction("GetAliveState","i",i) || !ObjectiveStarted || PlayerMissionInfo[i][MissionFinished]) continue;
  601. if(PlayerMissionInfo[playerid][CurrentCheckpoint] < PlayerMissionInfo[i][CurrentCheckpoint])
  602. {
  603. PlayerPositon++;
  604. continue;
  605. }
  606. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == PlayerMissionInfo[i][CurrentCheckpoint])
  607. {
  608. OtherPlayerDistance=GetPlayerDistanceFromPoint(i,cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_z]);
  609. if(PlayerDistance > OtherPlayerDistance)
  610. {
  611. PlayerPositon++;
  612. continue;
  613. }
  614. }
  615. }
  616. SetPlayerScore(playerid,PlayerPositon);
  617. CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,PlayerPositon,TotalPlayers,RaceMin,RaceSec,PlayerMissionInfo[playerid][CurrentCheckpoint],MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
  618. return PlayerPositon;
  619. }
  620.  
  621. GetEndStyle(pos)
  622. {
  623. new end[3];
  624. if(pos == 11 || pos == 12 || pos == 13) { end = "TH"; }
  625. else if(pos - (pos / 10) * 10 == 1) { end = "ST"; }
  626. else if(pos - (pos / 10) * 10 == 2) { end = "ND"; }
  627. else if(pos - (pos / 10) * 10 == 3) { end = "RD"; }
  628. else { end = "TH"; }
  629.  
  630. return end;
  631. }
  632.  
  633. PlaySoundForAll(sound)
  634. {
  635. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  636. {
  637. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  638. }
  639. }
  640.  
  641.  
  642. ToggleControllable(control)
  643. {
  644. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  645. {
  646. if(IsPlayerConnected(i))
  647. {
  648. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  649. }
  650. }
  651. return 1;
  652. }
  653.  
  654. //==============================================================================
  655. // Important functions required
  656. //==============================================================================
  657.  
  658. FUNCTION OnPlayerGetPersonalBest(playerid,Min,Sec,Mili)
  659. {
  660. PlayerMissionInfo[playerid][rBestMin]=Min;
  661. PlayerMissionInfo[playerid][rBestSec]=Sec;
  662. PlayerMissionInfo[playerid][rBestMili]=Mili;
  663. CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,2,GetPlayerPosition(playerid),TotalPlayers,PlayerMissionInfo[playerid][rMin],PlayerMissionInfo[playerid][rSec],PlayerMissionInfo[playerid][CurrentCheckpoint]+1,MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],0);
  664. return 1;
  665. }
  666.  
  667. FUNCTION CancelTheMission()
  668. {
  669. MissionCancelled= true;
  670. return 1;
  671. }
  672.  
  673. FUNCTION OnPlayerNameRecieve(playerid,name[])
  674. {
  675. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  676. return 1;
  677. }
  678.  
  679. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
Advertisement
Add Comment
Please, Sign In to add comment