Bulletje

Untitled

Jan 21st, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.78 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: Erza
  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 "Narrow Track"
  23. #define Health Float:0x7F800000
  24. #define MAX_MAP_OBJECTS 148
  25. #define CLASS_POSTION -1357.6470,3904.8469,11.5787
  26. #define CLASS_CAMERA -1357.7566,3895.3135,11.5787
  27. #define CLASS_FACING_AGNLE 178.8214
  28. #define Z_LIMIT 2
  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. {3390.03540, -1934.06519, 21.44539,0,10.0},
  47. {3389.73071, -1905.71033, 18.44244,0,10.0},
  48. {3390.34033, -1862.79895, 3.28515,0,10.0},
  49. {3381.85474, -1755.46753, 9.46028,0,10.0},
  50. {3373.59082, -1792.29333, 2.97107,0,10.0},
  51. {3373.76196, -1815.65527, 3.15511,0,10.0},
  52. {3368.08203, -1851.85095, 6.03253,0,10.0},
  53. {3360.39868, -1813.48254, 9.02437,0,10.0},
  54. {3358.14844, -1708.54004, -0.03291,0,10.0},
  55. {3357.11377, -1622.58606, 12.98087,0,10.0},
  56. {3354.25854, -1531.85022, 16.42716,0,10.0},
  57. {3354.78174, -1498.82983, 27.52671,0,10.0},
  58. {3343.52051, -1473.24243, 40.55153,1,10.0}
  59. };
  60.  
  61. enum ped_enum
  62. {
  63. TeamID,
  64. Skin,
  65. Float:SpawnX,
  66. Float:SpawnY,
  67. Float:SpawnZ,
  68. Float:SpawnAngle,
  69. SpawnInterior,
  70. VirtualWorld,
  71. Weapon1,
  72. Ammo1,
  73. Weapon2,
  74. Ammo2,
  75. Weapon3,
  76. Ammo3,
  77. };
  78.  
  79. new PedInfo[][ped_enum] = {
  80.  
  81. {TEAM_DEFEND,0,-1553.1431,3381.9172,37.3405,357.2542,0,0,0,0,0,0,0,0}
  82. };
  83.  
  84. #if MAX_MAP_OBJECTS != 0
  85. new Object[MAX_MAP_OBJECTS];
  86.  
  87. CreateMap()
  88. {
  89. Object[0] = CreateObject(12990,3390.6999500,-1787.9000200,3.0000000,0.0000000,0.0000000,0.0000000); //
  90. Object[1] = CreateObject(12990,3390.6999500,-1812.6999500,3.0000000,0.0000000,0.0000000,0.0000000); //
  91. Object[2] = CreateObject(931,3392.5000000,-1826.5000000,4.0000000,0.0000000,0.0000000,270.0000000); //
  92. Object[3] = CreateObject(931,3388.9003900,-1834.4003900,4.0000000,0.0000000,0.0000000,270.0000000); //
  93. Object[4] = CreateObject(5627,3382.1001000,-1763.4000200,7.5000000,0.0000000,0.0000000,0.0000000); //
  94. Object[5] = CreateObject(12990,3373.3000500,-1787.6999500,3.0000000,0.0000000,0.0000000,0.0000000); //
  95. Object[6] = CreateObject(12990,3373.3000500,-1814.1999500,3.0000000,0.0000000,0.0000000,0.0000000); //
  96. Object[7] = CreateObject(13635,3368.1001000,-1840.5000000,6.0000000,0.0000000,0.0000000,1.0000000); //
  97. Object[8] = CreateObject(16078,3360.3999000,-1815.0000000,8.4000000,0.0000000,0.0000000,294.0000000); //
  98. Object[9] = CreateObject(3865,3368.6999500,-1851.8000500,7.8100000,20.0000000,356.0000000,275.5000000); //
  99. Object[10] = CreateObject(931,3364.0000000,-1851.4000200,3.6000000,0.0000000,353.2500000,0.0000000); //
  100. Object[11] = CreateObject(931,3364.0000000,-1852.9000200,3.6000000,0.0000000,353.2500000,0.0000000); //
  101. Object[12] = CreateObject(931,3359.8999000,-1851.5000000,2.8000000,0.0000000,353.2489900,0.0000000); //
  102. Object[13] = CreateObject(931,3359.8999000,-1852.9000200,2.8000000,0.0000000,353.2489900,0.0000000); //
  103. Object[14] = CreateObject(931,3358.6001000,-1851.5999800,2.5000000,0.0000000,353.2489900,0.0000000); //
  104. Object[15] = CreateObject(931,3358.6001000,-1852.9000200,2.5000000,0.0000000,353.2489900,0.0000000); //
  105. Object[16] = CreateObject(16078,3360.1999500,-1767.1999500,8.4000000,0.0000000,0.0000000,116.5000000); //
  106. Object[17] = CreateObject(1395,3358.3999000,-1707.3000500,5.0000000,0.0000000,268.7500000,91.7500000); //
  107. Object[18] = CreateObject(7025,3357.5000000,-1667.6999500,13.4000000,0.0000000,0.0000000,272.0000000); //
  108. Object[19] = CreateObject(11431,3357.8000500,-1654.8000500,12.2000000,0.0000000,0.0000000,0.0000000); //
  109. Object[20] = CreateObject(11431,3357.8000500,-1647.6999500,12.2000000,0.0000000,0.0000000,0.0000000); //
  110. Object[21] = CreateObject(11431,3357.6001000,-1640.5000000,12.2000000,0.0000000,0.0000000,0.0000000); //
  111. Object[22] = CreateObject(11431,3357.3999000,-1631.5000000,12.2000000,0.0000000,0.0000000,0.0000000); //
  112. Object[23] = CreateObject(18365,-1979.3000500,-2652.8000500,66.8000000,0.0000000,0.0000000,0.0000000); //
  113. Object[24] = CreateObject(18365,3355.1001000,-1557.0000000,20.0000000,0.0000000,0.0000000,316.0000000); //
  114. Object[25] = CreateObject(3631,3346.5000000,-1493.5000000,28.8000000,0.0000000,0.0000000,0.0000000); //
  115. Object[26] = CreateObject(3631,3353.8000500,-1493.5000000,28.8000000,0.0000000,0.0000000,0.0000000); //
  116. Object[27] = CreateObject(3631,3360.8999000,-1493.4000200,28.8000000,0.0000000,0.0000000,0.0000000); //
  117. Object[28] = CreateObject(13644,3352.1999500,-1488.5999800,30.4000000,0.0000000,0.0000000,182.0000000); //
  118. Object[29] = CreateObject(13644,3344.6001000,-1478.1999500,36.0000000,0.0000000,358.0000000,185.2500000); //
  119. Object[30] = CreateObject(13644,3348.4003900,-1483.0996100,33.0000000,0.0000000,357.9950000,185.2460000); //
  120. Object[31] = CreateObject(12990,3390.6001000,-1838.0999800,3.0000000,0.0000000,0.0000000,0.0000000); //
  121. Object[32] = CreateObject(931,3390.8000500,-1818.5999800,4.0000000,0.0000000,0.0000000,270.0000000); //
  122. Object[33] = CreateObject(931,3389.0000000,-1808.5999800,4.0000000,0.0000000,0.0000000,270.0000000); //
  123. Object[34] = CreateObject(931,3392.3999000,-1808.3000500,4.0000000,0.0000000,0.0000000,270.0000000); //
  124. Object[35] = CreateObject(931,3390.3000500,-1801.0000000,4.0000000,0.0000000,0.0000000,270.0000000); //
  125. Object[36] = CreateObject(931,3391.1999500,-1800.9000200,4.0000000,0.0000000,0.0000000,270.0000000); //
  126. Object[37] = CreateObject(931,3389.6001000,-1788.9000200,4.2000000,0.0000000,0.0000000,180.0000000); //
  127. Object[38] = CreateObject(931,3391.8999000,-1788.9000200,4.2000000,0.0000000,0.0000000,179.9950000); //
  128. Object[39] = CreateObject(931,3392.0000000,-1778.8000500,4.2000000,0.0000000,0.0000000,179.7450000); //
  129. Object[40] = CreateObject(931,3389.6999500,-1778.8000500,4.2000000,0.0000000,0.0000000,179.9950000); //
  130. Object[41] = CreateObject(931,3389.1999500,-1834.4000200,4.0000000,0.0000000,0.0000000,270.0000000); //
  131. Object[42] = CreateObject(931,3392.2002000,-1834.4003900,4.0000000,0.0000000,0.0000000,270.0000000); //
  132. Object[43] = CreateObject(3507,3372.1999500,-1754.6999500,8.1000000,0.0000000,0.0000000,0.0000000); //
  133. Object[44] = CreateObject(3507,3391.8000500,-1754.3000500,8.1000000,0.0000000,0.0000000,0.0000000); //
  134. Object[45] = CreateObject(839,3372.8000500,-1800.3000500,4.5000000,0.0000000,0.0000000,102.0000000); //
  135. Object[46] = CreateObject(2583,3371.1001000,-1827.5999800,4.3000000,0.0000000,0.0000000,87.2500000); //
  136. Object[47] = CreateObject(2582,3375.5000000,-1827.5000000,4.0000000,0.0000000,0.0000000,270.0000000); //
  137. Object[48] = CreateObject(3799,3360.3000500,-1771.9000200,8.1000000,0.0000000,0.0000000,0.0000000); //
  138. Object[49] = CreateObject(3799,3360.1999500,-1761.9000200,8.1000000,0.0000000,0.0000000,0.5000000); //
  139. Object[50] = CreateObject(12990,3390.5000000,-1866.2002000,3.0000000,0.0000000,0.0000000,0.0000000); //
  140. Object[51] = CreateObject(12990,3385.9003900,-1866.0996100,3.0000000,0.0000000,0.0000000,182.0000000); //
  141. Object[52] = CreateObject(12990,3394.8999000,-1866.3000500,3.0000000,0.0000000,0.0000000,0.0000000); //
  142. Object[53] = CreateObject(3572,3393.8000500,-1881.4000200,4.7000000,0.0000000,0.0000000,0.0000000); //
  143. Object[54] = CreateObject(3572,3385.8000500,-1881.4000200,4.7000000,0.0000000,0.0000000,0.0000000); //
  144. Object[55] = CreateObject(3572,3393.8000500,-1883.9000200,7.3000000,0.0000000,0.0000000,0.0000000); //
  145. Object[56] = CreateObject(3572,3385.8000500,-1883.8000500,7.3000000,0.0000000,0.0000000,0.0000000); //
  146. Object[57] = CreateObject(3572,3393.8999000,-1886.3000500,7.3000000,0.0000000,0.0000000,0.0000000); //
  147. Object[58] = CreateObject(3572,3385.8000500,-1886.1999500,7.3000000,0.0000000,0.0000000,0.0000000); //
  148. Object[59] = CreateObject(3572,3385.8000500,-1888.5999800,7.3000000,0.0000000,0.0000000,0.0000000); //
  149. Object[60] = CreateObject(3572,3393.8999000,-1888.6999500,7.3000000,0.0000000,0.0000000,0.0000000); //
  150. Object[61] = CreateObject(2583,3397.5000000,-1889.1999500,9.6000000,0.0000000,0.0000000,269.9950000); //
  151. Object[62] = CreateObject(2582,3382.1001000,-1888.6999500,9.6000000,0.0000000,0.0000000,91.5000000); //
  152. Object[63] = CreateObject(3799,3360.1001000,-1759.1999500,10.0000000,0.0000000,0.0000000,0.2500000); //
  153. Object[64] = CreateObject(3799,3360.0000000,-1751.8000500,14.0000000,0.0000000,0.0000000,0.0000000); //
  154. Object[65] = CreateObject(3572,3385.8000500,-1891.0999800,7.3000000,0.0000000,0.0000000,0.0000000); //
  155. Object[66] = CreateObject(3572,3393.8000500,-1891.1999500,7.3000000,0.0000000,0.0000000,0.0000000); //
  156. Object[67] = CreateObject(2477,3382.0000000,-1887.0999800,9.2000000,0.0000000,0.0000000,80.0000000); //
  157. Object[68] = CreateObject(2935,3343.1001000,-1474.6999500,39.1000000,0.0000000,0.2470000,273.2460000); //
  158. Object[69] = CreateObject(3799,3360.1005900,-1756.5000000,12.0000000,0.0000000,0.0000000,0.0000000); //
  159. Object[70] = CreateObject(3572,3385.7998000,-1893.5996100,7.3000000,0.0000000,0.0000000,0.0000000); //
  160. Object[71] = CreateObject(3572,3393.6999500,-1893.5999800,7.3000000,0.0000000,0.0000000,0.0000000); //
  161. Object[72] = CreateObject(3572,3385.6001000,-1896.0000000,7.3000000,0.0000000,0.0000000,0.0000000); //
  162. Object[73] = CreateObject(3572,3393.6001000,-1896.0000000,7.3000000,0.0000000,0.0000000,0.0000000); //
  163. Object[74] = CreateObject(2935,3393.1001000,-1899.5999800,20.0000000,0.0000000,0.0000000,90.0000000); //
  164. Object[75] = CreateObject(2935,3386.1001000,-1899.5999800,20.0000000,0.0000000,0.0000000,90.0000000); //
  165. Object[76] = CreateObject(2935,3386.5000000,-1916.0999800,20.0000000,0.0000000,0.0000000,90.0000000); //
  166. Object[77] = CreateObject(2935,3393.6005900,-1916.0996100,20.0000000,0.0000000,0.0000000,90.0000000); //
  167. Object[78] = CreateObject(2935,3393.5000000,-1919.1999500,20.0000000,0.0000000,0.0000000,90.0000000); //
  168. Object[79] = CreateObject(2935,3386.6001000,-1919.1999500,20.0000000,0.0000000,0.0000000,90.0000000); //
  169. Object[80] = CreateObject(2935,3386.6001000,-1927.4000200,20.0000000,0.0000000,0.0000000,90.0000000); //
  170. Object[81] = CreateObject(2935,3393.6999500,-1927.4000200,20.0000000,0.0000000,0.0000000,90.0000000); //
  171. Object[82] = CreateObject(2934,3386.0000000,-1902.4000200,17.0000000,0.0000000,0.0000000,90.0000000); //
  172. Object[83] = CreateObject(2934,3393.1999500,-1902.4000200,17.0000000,0.0000000,0.0000000,90.0000000); //
  173. Object[84] = CreateObject(2934,3393.1001000,-1905.5000000,17.0000000,0.0000000,0.0000000,90.0000000); //
  174. Object[85] = CreateObject(2934,3386.0000000,-1905.5000000,17.0000000,0.0000000,0.0000000,90.0000000); //
  175. Object[86] = CreateObject(2934,3386.0000000,-1908.5999800,17.0000000,0.0000000,0.0000000,90.0000000); //
  176. Object[87] = CreateObject(2934,3393.1001000,-1908.5999800,17.0000000,0.0000000,0.0000000,90.0000000); //
  177. Object[88] = CreateObject(2935,3393.6999500,-1930.5000000,20.0000000,0.0000000,0.0000000,90.0000000); //
  178. Object[89] = CreateObject(2935,3386.6001000,-1930.5000000,20.0000000,0.0000000,0.0000000,90.0000000); //
  179. Object[90] = CreateObject(2935,3386.6001000,-1933.5999800,20.0000000,0.0000000,0.0000000,90.0000000); //
  180. Object[91] = CreateObject(2935,3393.6999500,-1933.5999800,20.0000000,0.0000000,0.0000000,90.0000000); //
  181. Object[92] = CreateObject(2935,3393.6999500,-1936.6999500,20.0000000,0.0000000,0.0000000,90.0000000); //
  182. Object[93] = CreateObject(2935,3386.6001000,-1936.6999500,20.0000000,0.0000000,0.0000000,90.0000000); //
  183. Object[94] = CreateObject(2935,3386.6005900,-1939.7998000,20.0000000,0.0000000,0.0000000,90.0000000); //
  184. Object[95] = CreateObject(2935,3393.6999500,-1939.8000500,20.0000000,0.0000000,0.0000000,90.0000000); //
  185. Object[96] = CreateObject(3529,3385.0000000,-1944.5000000,20.8900000,0.0000000,88.0000000,270.0000000); //
  186. Object[97] = CreateObject(3529,3395.0000000,-1949.4003900,21.0600000,0.0000000,87.9950000,270.0000000); //
  187. Object[98] = CreateObject(3529,3395.0000000,-1944.5000000,20.8900000,0.0000000,87.9950000,270.0000000); //
  188. Object[99] = CreateObject(3529,3390.0000000,-1949.4003900,21.0600000,0.0000000,87.9950000,270.0000000); //
  189. Object[100] = CreateObject(3529,3390.0000000,-1944.5000000,20.8900000,0.0000000,87.9950000,270.0000000); //
  190. Object[101] = CreateObject(3529,3385.0000000,-1949.4003900,21.0600000,0.0000000,87.9950000,270.0000000); //
  191. Object[102] = CreateObject(3529,3390.0000000,-1944.5000000,20.8900000,0.0000000,87.9950000,270.0000000); //
  192. Object[103] = CreateObject(3502,3390.0000000,-1955.6999500,23.3000000,0.0000000,0.0000000,0.0000000); //
  193. Object[104] = CreateObject(3502,3395.0000000,-1955.8000500,23.2000000,0.0000000,0.0000000,0.0000000); //
  194. Object[105] = CreateObject(3502,3385.1001000,-1955.8000500,23.3000000,0.0000000,0.0000000,0.0000000); //
  195. Object[106] = CreateObject(1437,3395.6999500,-1910.5000000,18.9000000,67.9000000,0.0000000,0.0000000); //
  196. Object[107] = CreateObject(1437,3385.0000000,-1910.7002000,18.9000000,67.8960000,0.0000000,0.0000000); //
  197. Object[108] = CreateObject(1437,3390.1001000,-1910.5999800,18.9000000,67.8960000,0.0000000,0.0000000); //
  198. Object[109] = CreateObject(2582,3382.1001000,-1890.1999500,9.6000000,0.0000000,0.0000000,91.5000000); //
  199. Object[110] = CreateObject(2582,3382.1999500,-1891.5000000,9.6000000,0.0000000,0.0000000,91.5000000); //
  200. Object[111] = CreateObject(2582,3382.3000500,-1892.9000200,9.6000000,0.0000000,0.0000000,91.5000000); //
  201. Object[112] = CreateObject(2583,3397.5000000,-1887.6999500,9.6000000,0.0000000,0.0000000,269.9950000); //
  202. Object[113] = CreateObject(2583,3397.5000000,-1886.1999500,9.6000000,0.0000000,0.0000000,269.9950000); //
  203. Object[114] = CreateObject(2579,3397.3999000,-1890.5000000,9.6000000,0.0000000,0.0000000,268.0000000); //
  204. Object[115] = CreateObject(2579,3397.3000500,-1892.0000000,9.6000000,0.0000000,0.0000000,267.9950000); //
  205. Object[116] = CreateObject(2579,3397.3999000,-1884.5999800,9.6000000,0.0000000,0.0000000,267.9950000); //
  206. Object[117] = CreateObject(942,3385.6001000,-1919.5000000,22.9000000,0.0000000,0.0000000,0.0000000); //
  207. Object[118] = CreateObject(942,3390.6999500,-1919.5000000,22.9000000,0.0000000,0.0000000,0.0000000); //
  208. Object[119] = CreateObject(942,3394.3999000,-1919.5000000,22.9000000,0.0000000,0.0000000,0.0000000); //
  209. Object[120] = CreateObject(2480,3382.5000000,-1892.3000500,9.2000000,0.0000000,0.0000000,0.0000000); //
  210. Object[121] = CreateObject(2480,3382.3000500,-1885.6999500,9.2000000,0.0000000,2.0000000,78.0000000); //
  211. Object[122] = CreateObject(2464,3383.1999500,-1884.5999800,8.8000000,0.0000000,0.0000000,0.0000000); //
  212. Object[123] = CreateObject(931,3392.0000000,-1847.5999800,4.0000000,0.0000000,0.0000000,180.0000000); //
  213. Object[124] = CreateObject(931,3389.8000500,-1847.5999800,4.0000000,0.0000000,0.0000000,177.9950000); //
  214. Object[125] = CreateObject(2465,3383.0000000,-1883.1999500,8.9000000,0.0000000,0.0000000,0.0000000); //
  215. Object[126] = CreateObject(2935,3384.8000500,-1963.4000200,20.3000000,0.0000000,0.0000000,176.0000000); //
  216. Object[127] = CreateObject(2935,3389.6999500,-1963.5999800,20.3000000,0.0000000,0.0000000,175.9950000); //
  217. Object[128] = CreateObject(2935,3394.8000500,-1963.8000500,20.3000000,0.0000000,0.0000000,175.9950000); //
  218. Object[129] = CreateObject(2935,3384.3000500,-1970.5000000,20.3000000,0.0000000,0.0000000,175.9950000); //
  219. Object[130] = CreateObject(2935,3389.1999500,-1970.6999500,20.3000000,0.0000000,0.0000000,175.9950000); //
  220. Object[131] = CreateObject(2935,3394.3000500,-1970.9000200,20.3000000,0.0000000,0.0000000,175.9950000); //
  221. Object[132] = CreateObject(980,3390.1001000,-1976.9000200,21.3000000,90.0000000,0.0000000,356.0000000); //
  222. Object[133] = CreateObject(980,3401.6838400,-1977.1383100,21.3000000,90.0000000,0.0000000,353.9950000); //
  223. Object[134] = CreateObject(980,3387.5000000,-1982.0000000,21.3000000,90.0000000,0.0000000,357.9950000); //
  224. Object[135] = CreateObject(980,3389.8000500,-1982.4000200,21.3000000,90.0000000,0.0000000,357.9950000); //
  225. Object[136] = CreateObject(980,3387.3000500,-1987.1999500,21.3000000,90.0000000,0.0000000,357.9950000); //
  226. Object[137] = CreateObject(980,3389.6999500,-1987.4000200,21.3000000,90.0000000,0.0000000,357.9950000); //
  227. Object[138] = CreateObject(980,3389.5000000,-1992.5999800,21.3000000,90.0000000,0.0000000,357.9950000); //
  228. Object[139] = CreateObject(980,3386.8999000,-1992.6999500,21.3000000,90.0000000,0.0000000,357.9950000); //
  229. Object[140] = CreateObject(2935,3342.8999000,-1471.6999500,39.1000000,0.0000000,0.2470000,273.2460000); //
  230. Object[141] = CreateObject(980,3401.0349100,-1988.1165800,21.3000000,90.0000000,0.0000000,357.9950000); //
  231. Object[142] = CreateObject(980,3400.9475100,-1993.0553000,21.3000000,90.0000000,0.0000000,357.9950000); //
  232. Object[143] = CreateObject(980,3401.3571800,-1982.4404300,21.3000000,90.0000000,0.0000000,357.9950000); //
  233. Object[144] = CreateObject(980,3378.6340300,-1976.5999800,21.3000000,90.0000000,0.0000000,356.0000000); //
  234. Object[145] = CreateObject(980,3378.3183600,-1981.7794200,21.3000000,90.0000000,0.0000000,357.9950000); //
  235. Object[146] = CreateObject(980,3378.0300300,-1987.3568100,21.3000000,90.0000000,0.0000000,357.9950000); //
  236. Object[147] = CreateObject(980,3377.8249500,-1992.6759000,21.3000000,90.0000000,0.0000000,357.9950000); //
  237. }
  238. #endif
  239.  
  240.  
  241. //==============================================================================
  242. // Basic vars
  243. //==============================================================================
  244.  
  245. new bool:MissionStarted;
  246. new bool:ObjectiveStarted;
  247. new bool:MissionCancelled;
  248.  
  249. new GMTimer;
  250. new GMSec;
  251. new TotalPlayers;
  252. new CurrentRacePos;
  253. new MAX_CPs;
  254. new RaceMin,RaceSec,RaceMili;
  255. new randA;
  256.  
  257. native IsValidVehicle(vehicleid);
  258.  
  259. enum playersdata
  260. {
  261. UserName[MAX_PLAYER_NAME],
  262. rSec,
  263. rMin,
  264. rMili,
  265. CurrentCheckpoint,
  266. MissionFinished,
  267. PlayerClassID,
  268. PlayerCounted,
  269. rBestMin,
  270. rBestSec,
  271. rBestMili
  272. };
  273.  
  274. new PlayerMissionInfo[MAX_PLAYERS][playersdata];
  275.  
  276. //==============================================================================
  277. // Basic script
  278. //==============================================================================
  279.  
  280. main()
  281. {
  282. print("----------------------------------");
  283. print(" Mission: "MISSION_NAME" started.");
  284. print("----------------------------------\n");
  285. }
  286.  
  287. public OnGameModeInit()
  288. {
  289. MissionStarted= true;
  290.  
  291. #if MAX_MAP_OBJECTS != 0
  292. CreateMap();
  293. #endif
  294.  
  295. for(new i=0; i<sizeof(PedInfo); i++)
  296. {
  297. 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);
  298. }
  299.  
  300. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  301.  
  302. GMTimer = SetTimer("GMClock",1000,true);
  303. MAX_CPs = sizeof(cp);
  304. randA=random(2);
  305. CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
  306. return 1;
  307. }
  308.  
  309. public OnGameModeExit()
  310. {
  311. #if MAX_MAP_OBJECTS != 0
  312. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  313. #endif
  314. KillTimer(GMTimer);
  315. return 1;
  316. }
  317.  
  318. FUNCTION GMClock()
  319. {
  320. GMSec++;
  321. switch(ObjectiveStarted)
  322. {
  323. case false:
  324. {
  325. switch(GMSec)
  326. {
  327. case 1:
  328. {
  329. new string[40];
  330. format(string,sizeof(string),"The parkour will start in %d seconds.",START_TIME);
  331. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
  332. }
  333. case START_TIME-4:
  334. {
  335. GameTextForAll("~r~~h~GET READY!",1000,3);
  336. PlaySoundForAll(1056);
  337. }
  338. case START_TIME-3:
  339. {
  340. GameTextForAll("~r~~h~~h~3",1000,3);
  341. PlaySoundForAll(1056);
  342. }
  343. case START_TIME-2:
  344. {
  345. GameTextForAll("~r~~h~~h~~h~2",1000,3);
  346. PlaySoundForAll(1056);
  347. }
  348. case START_TIME-1:
  349. {
  350. GameTextForAll("~y~1",1000,3);
  351. PlaySoundForAll(1056);
  352. }
  353. case START_TIME:
  354. {
  355. PlaySoundForAll(1057);
  356. CallRemoteFunction("StartMission","");
  357. GameTextForAll("~g~~h~~h~RUN!",1000,3);
  358. ObjectiveStarted= true;
  359. ToggleControllable(true);
  360. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" DAZZZ! The parkour has started. Good luck.");
  361. CallRemoteFunction("ShowInfoText", "iisi", -1, -1,"DAZZZ! The parkour has started. Good luck.",0);
  362. RaceMili=GetTickCount();
  363. }
  364. }
  365. }
  366. case true:
  367. {
  368. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  369. {
  370. if(IsPlayerConnected(i) && CallRemoteFunction("GetAliveState","i",i) && !PlayerMissionInfo[i][MissionFinished])
  371. {
  372. GetPlayerPosition(i);
  373. new Float:x,Float:y,Float:z;
  374. GetPlayerPos(i,x,y,z);
  375. if(z <= Z_LIMIT)
  376. {
  377. SpawnPlayer(i);
  378. CallRemoteFunction("UpdateAliveState","ii",i,0);
  379. CallRemoteFunction("UpdateLastCheckpoint","dfff",i,-1.0,-1.0,-1.0);
  380. }
  381. }
  382. }
  383. RaceSec++;
  384. if(RaceSec == 60)
  385. {
  386. RaceSec=0;
  387. RaceMin++;
  388. }
  389.  
  390. }
  391. }
  392. }
  393.  
  394. public OnPlayerDisconnect(playerid,reason)
  395. {
  396. if(!PlayerMissionInfo[playerid][MissionFinished])
  397. {
  398. if(PlayerMissionInfo[playerid][PlayerCounted])
  399. {
  400. TotalPlayers--;
  401. PlayerMissionInfo[playerid][PlayerCounted]= false;
  402. }
  403. }
  404. else PlayerMissionInfo[playerid][MissionFinished] = false;
  405.  
  406. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  407. DisablePlayerRaceCheckpoint(playerid);
  408. CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
  409. return 1;
  410. }
  411.  
  412. public OnPlayerRequestClass(playerid, classid)
  413. {
  414. SetPlayerPos(playerid,CLASS_POSTION);
  415. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  416. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  417. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  418.  
  419. CallRemoteFunction("ShowClassSelection","ddsddd",playerid, 2,"Parkour Artist", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  420. SetPlayerColor(playerid,COLOR_SERVER);
  421. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  422. return 1;
  423. }
  424.  
  425. public OnPlayerRequestSpawn(playerid)
  426. {
  427. CallRemoteFunction("UpdateRaceRecordsFunc","dd",INVALID_PLAYER_ID,0);
  428. return 1;
  429. }
  430.  
  431. public OnPlayerSpawn(playerid)
  432. {
  433. new string[124];
  434. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  435. SetPlayerHealth(playerid,Health);
  436.  
  437. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
  438. {
  439. back:
  440. new skin=random(312);
  441. if(skin == 74 || skin < 1) goto back;
  442. SetPlayerSkin(playerid,skin);
  443. }
  444.  
  445. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  446. SetPlayerColor(playerid,(randA == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
  447. SetPlayerTeam(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]);
  448. switch(ObjectiveStarted)
  449. {
  450. case false:
  451. {
  452. TogglePlayerControllable(playerid,false);
  453. format(string,sizeof(string),"The parkour will start in %d seconds. Get ready.",(GMSec-START_TIME)*-1);
  454. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,100);
  455. }
  456. case true:
  457. {
  458. TogglePlayerControllable(playerid,true);
  459. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"HURRY UP! The parkour has already started.",2000);
  460. }
  461. }
  462. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"Try to finish first!",2000);
  463. if(CallRemoteFunction("GetJailedStatus","d",playerid)) CallRemoteFunction("SetJailed","d",playerid);
  464. else
  465. {
  466. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  467. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX]-(random(3)),PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]+5);
  468. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  469. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  470. SetCameraBehindPlayer(playerid);
  471. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  472. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  473. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  474. if(!PlayerMissionInfo[playerid][MissionFinished])
  475. {
  476. PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
  477. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  478. 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);
  479. 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);
  480. }
  481. else
  482. {
  483. SetPlayerVirtualWorld(playerid,2);
  484. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  485. }
  486. if(!PlayerMissionInfo[playerid][PlayerCounted])
  487. {
  488. TotalPlayers++;
  489. PlayerMissionInfo[playerid][PlayerCounted]= true;
  490. }
  491. }
  492.  
  493. CallRemoteFunction("GetPlayerPersonalBest","d",playerid);
  494. 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);
  495. CallRemoteFunction("PlayerRaceRecords","dd",playerid,2);
  496. return 1;
  497. }
  498.  
  499. public OnPlayerDeath(playerid,killerid,reason)
  500. {
  501. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  502. if(!PlayerMissionInfo[playerid][MissionFinished]) PlayerMissionInfo[playerid][CurrentCheckpoint]= 0;
  503. CallRemoteFunction("PlayerRaceRecords","dd",playerid,1);
  504. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-1.0,-1.0,-1.0);
  505. return 1;
  506. }
  507.  
  508. public OnPlayerEnterRaceCheckpoint(playerid)
  509. {
  510. if(!MissionStarted || !ObjectiveStarted) return 0;
  511. new string[124],type;
  512. PlayerPlaySound(playerid,1139,0,0,0);
  513. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
  514. if(PlayerMissionInfo[playerid][CurrentCheckpoint] != MAX_CPs-1)
  515. {
  516. type=cp[PlayerMissionInfo[playerid][CurrentCheckpoint]+1][cp_type];
  517. }
  518. if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-2)
  519. {
  520. 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]);
  521. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  522. }
  523. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == MAX_CPs-1)
  524. {
  525. PlaySoundForAll(1058);
  526. PlayerMissionInfo[playerid][MissionFinished]= true;
  527. DisablePlayerRaceCheckpoint(playerid);
  528. RemovePlayerMapIcon(playerid,MAP_ICON_NEXT_CP);
  529. new Pos=GetPlayerPosition(playerid);
  530. CurrentRacePos++;
  531. PlayerMissionInfo[playerid][rMin]=RaceMin;
  532. PlayerMissionInfo[playerid][rSec]=RaceSec;
  533. new Prize=floatround(20000/Pos, floatround_round)+(1000*TotalPlayers);
  534. PlayerMissionInfo[playerid][rMili]=(((GetTickCount()-RaceMili)-(1000*PlayerMissionInfo[playerid][rSec]))-((1000*60)*PlayerMissionInfo[playerid][rMin]));
  535. while(PlayerMissionInfo[playerid][rMili] >= 1000)
  536. {
  537. PlayerMissionInfo[playerid][rMili]-=1000;
  538. PlayerMissionInfo[playerid][rSec]++;
  539. if(PlayerMissionInfo[playerid][rSec] == 60)
  540. {
  541. PlayerMissionInfo[playerid][rSec]=0;
  542. PlayerMissionInfo[playerid][rMin]++;
  543. }
  544. }
  545. 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);
  546. CallRemoteFunction("GivePlayerCash","ii",playerid,Prize);
  547. if(Pos == 1)
  548. {
  549. CallRemoteFunction("PlayerMissionStats","dd",playerid,3);
  550. 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);
  551. CallRemoteFunction("GivePlayerToken","dd",playerid,1);
  552. CallRemoteFunction("CheckForBetWinners","d",playerid);
  553. }
  554. 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);
  555. if(Pos == 2) CallRemoteFunction("PlayerMissionStats","dd",playerid,4);
  556. if(Pos == 3) CallRemoteFunction("PlayerMissionStats","dd",playerid,5);
  557. CallRemoteFunction("PlayerMissionStats","dd",playerid,0);
  558. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  559. new time = ((PlayerMissionInfo[playerid][rMin]*60000)+(PlayerMissionInfo[playerid][rSec]*1000)+(PlayerMissionInfo[playerid][rMili]));
  560. CallRemoteFunction("CheckRaceRecord","dd",playerid,time);
  561. SetPlayerVirtualWorld(playerid,2);
  562. SendClientMessageToAll(COLOR_SERVER,string);
  563. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  564. CallRemoteFunction("UpdateLastCheckpoint","dfff",playerid,-2.0,-2.0,-2.0);
  565. CallRemoteFunction("PlayerMissionStats","dd",playerid,11);
  566. }
  567. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] < MAX_CPs-1)
  568. {
  569. 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]);
  570. 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);
  571. }
  572. PlayerMissionInfo[playerid][CurrentCheckpoint]++;
  573. return 1;
  574. }
  575.  
  576.  
  577. FUNCTION EndTheMission()
  578. {
  579. if(!MissionStarted) return 1;
  580. MissionStarted= false;
  581. KillTimer(GMTimer);
  582. if(!MissionCancelled && ObjectiveStarted)
  583. {
  584. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The parkour has ended.");
  585. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The parkour has ended.",IRC_SERVER_COLOR);
  586. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The parkour has ended.",0);
  587. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  588. {
  589. if(IsPlayerConnected(i) && !PlayerMissionInfo[i][MissionFinished])
  590. {
  591. PlayerPlaySound(i,17004,0,0,0);
  592. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  593. DisablePlayerCheckpoint(i);
  594. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  595. }
  596. }
  597. }
  598. else
  599. {
  600. PlaySoundForAll(1058);
  601. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  602. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  603. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  604. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  605. {
  606. if(IsPlayerConnected(i))
  607. {
  608. GameTextForPlayer(i,"~R~MISSION CANCELLED~w~!",3000,3);
  609. DisablePlayerCheckpoint(i);
  610. RemovePlayerMapIcon(i,MAP_ICON_NEXT_CP);
  611. }
  612. }
  613. }
  614. return 1;
  615. }
  616.  
  617. //==============================================================================
  618. // Mission functions
  619. //==============================================================================
  620.  
  621. GetPlayerPosition(playerid)
  622. {
  623. if(!IsPlayerConnected(playerid)) return 0;
  624. if(PlayerMissionInfo[playerid][MissionFinished]) return GetPlayerScore(playerid);
  625. new PlayerPositon=CurrentRacePos+1;
  626. new Float:PlayerDistance=GetPlayerDistanceFromPoint(playerid,cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[playerid][CurrentCheckpoint]][cp_z]);
  627. new Float:OtherPlayerDistance;
  628. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  629. {
  630. if(!IsPlayerConnected(i)) continue;
  631. if(!CallRemoteFunction("GetAliveState","i",i) || !ObjectiveStarted || PlayerMissionInfo[i][MissionFinished]) continue;
  632. if(PlayerMissionInfo[playerid][CurrentCheckpoint] < PlayerMissionInfo[i][CurrentCheckpoint])
  633. {
  634. PlayerPositon++;
  635. continue;
  636. }
  637. else if(PlayerMissionInfo[playerid][CurrentCheckpoint] == PlayerMissionInfo[i][CurrentCheckpoint])
  638. {
  639. OtherPlayerDistance=GetPlayerDistanceFromPoint(i,cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_x],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_y],cp[PlayerMissionInfo[i][CurrentCheckpoint]][cp_z]);
  640. if(PlayerDistance > OtherPlayerDistance)
  641. {
  642. PlayerPositon++;
  643. continue;
  644. }
  645. }
  646. }
  647. SetPlayerScore(playerid,PlayerPositon);
  648. CallRemoteFunction("UpdateMissionHud","iiiiiiiiiiii",playerid,4,PlayerPositon,TotalPlayers,RaceMin,RaceSec,PlayerMissionInfo[playerid][CurrentCheckpoint],MAX_CPs,PlayerMissionInfo[playerid][rBestMin],PlayerMissionInfo[playerid][rBestSec],PlayerMissionInfo[playerid][rBestMili],-1);
  649. return PlayerPositon;
  650. }
  651.  
  652. GetEndStyle(pos)
  653. {
  654. new end[3];
  655. if(pos == 11 || pos == 12 || pos == 13) { end = "TH"; }
  656. else if(pos - (pos / 10) * 10 == 1) { end = "ST"; }
  657. else if(pos - (pos / 10) * 10 == 2) { end = "ND"; }
  658. else if(pos - (pos / 10) * 10 == 3) { end = "RD"; }
  659. else { end = "TH"; }
  660.  
  661. return end;
  662. }
  663.  
  664. PlaySoundForAll(sound)
  665. {
  666. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  667. {
  668. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  669. }
  670. }
  671.  
  672.  
  673. ToggleControllable(control)
  674. {
  675. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  676. {
  677. if(IsPlayerConnected(i))
  678. {
  679. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  680. }
  681. }
  682. return 1;
  683. }
  684.  
  685. //==============================================================================
  686. // Important functions required
  687. //==============================================================================
  688.  
  689. FUNCTION OnPlayerGetPersonalBest(playerid,Min,Sec,Mili)
  690. {
  691. PlayerMissionInfo[playerid][rBestMin]=Min;
  692. PlayerMissionInfo[playerid][rBestSec]=Sec;
  693. PlayerMissionInfo[playerid][rBestMili]=Mili;
  694. 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);
  695. return 1;
  696. }
  697.  
  698. FUNCTION CancelTheMission()
  699. {
  700. MissionCancelled= true;
  701. return 1;
  702. }
  703.  
  704. FUNCTION OnPlayerNameRecieve(playerid,name[])
  705. {
  706. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  707. return 1;
  708. }
  709.  
  710. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
Advertisement
Add Comment
Please, Sign In to add comment