Bulletje

Untitled

Feb 7th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.54 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: Bullet
  4. Mission Base: Capture The Flag
  5. Mission Type: Capture The Flag
  6. Mission Type ID: 6
  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 "Football"
  24. #define Health 1.0
  25. #define VEHICLE_HEALTH 999.0
  26. #define TEAM_ATTACK_NAME "FCB"
  27. #define TEAM_DEFEND_NAME "RMA"
  28. #define CP_POS 430.8839,1840.0945,816.9459
  29. #define CP_SIZE 3.0
  30. #define TEAM_DEFEND_CAPTURE 546.3444,1835.1923,816.9289
  31. #define TEAM_ATTACK_CAPTURE 320.3220,1851.1814,816.9060
  32. #define MAX_MAP_OBJECTS 228
  33. #define CLASS_POSTION 387.5333,1932.5371,823.1657
  34. #define CLASS_CAMERA 393.4571,1932.5048,823.1619
  35. #define CLASS_FACING_AGNLE 271.2317
  36. #define OBJ_NAME "Ball"
  37. #define OBJ_ID 1598
  38. #define SPAWN_PROTECTION true
  39.  
  40. //==============================================================================
  41. // Per mission functions
  42. //==============================================================================
  43.  
  44. enum ped_enum
  45. {
  46. TeamID,
  47. Skin,
  48. Float:SpawnX,
  49. Float:SpawnY,
  50. Float:SpawnZ,
  51. Float:SpawnAngle,
  52. SpawnInterior,
  53. VirtualWorld,
  54. Weapon1,
  55. Ammo1,
  56. Weapon2,
  57. Ammo2,
  58. Weapon3,
  59. Ammo3,
  60. };
  61.  
  62. new PedInfo[][ped_enum] = {
  63. {TEAM_ATTACK, 51, 495.5948,1836.9830,816.9289,86.8415,0,0,0,0,0,0,0,0},
  64. {TEAM_DEFEND, 52,379.5016,1843.5690,816.9060,271.6032,0,0,0,0,0,0,0,0}
  65. };
  66.  
  67. #if MAX_MAP_OBJECTS != 0
  68. new Object[MAX_MAP_OBJECTS];
  69.  
  70. CreateMap()
  71. {
  72. Object[0] = CreateObject(19550,373.1180700,1844.0456500,815.9060100,0.0000000,0.0000000,0.0000000); //
  73. Object[1] = CreateObject(19550,497.5884700,1843.9193100,815.9288900,0.0000000,0.0000000,0.0000000); //
  74. Object[2] = CreateObject(7900,430.6813700,1806.8488800,812.6658900,0.0000000,0.0000000,89.2801000); //
  75. Object[3] = CreateObject(7900,430.8496100,1823.7260700,812.6093800,0.0000000,0.0000000,89.2801000); //
  76. Object[4] = CreateObject(7900,431.0239300,1840.6024200,812.6099200,0.0000000,0.0000000,89.2801000); //
  77. Object[5] = CreateObject(7900,431.2365100,1856.8811000,812.6120600,0.0000000,0.0000000,89.2801000); //
  78. Object[6] = CreateObject(7900,431.4565100,1873.3748800,812.6658900,0.0000000,0.0000000,89.2801000); //
  79. Object[7] = CreateObject(7900,431.6573800,1887.5822800,812.5938700,0.0000000,0.0000000,89.2801000); //
  80. Object[8] = CreateObject(7900,445.0824900,1895.4675300,812.5938700,0.0000000,0.0000000,0.0001000); //
  81. Object[9] = CreateObject(7900,461.7403900,1895.3449700,812.5938700,0.0000000,0.0000000,0.0001000); //
  82. Object[10] = CreateObject(7900,478.3500100,1895.3315400,812.5938700,0.0000000,0.0000000,0.0001000); //
  83. Object[11] = CreateObject(7900,495.0946000,1895.3133500,812.5938700,0.0000000,0.0000000,0.0001000); //
  84. Object[12] = CreateObject(7900,511.9386900,1895.3038300,812.5938700,0.0000000,0.0000000,0.0001000); //
  85. Object[13] = CreateObject(7900,528.6965900,1895.2880900,812.5938700,0.0000000,0.0000000,0.0001000); //
  86. Object[14] = CreateObject(7900,540.9337200,1895.2840600,812.5938700,0.0000000,0.0000000,0.0001000); //
  87. Object[15] = CreateObject(7900,428.1706800,1895.5932600,812.5739100,0.0000000,0.0000000,0.0001000); //
  88. Object[16] = CreateObject(7900,411.4077100,1895.6660200,812.5739100,0.0000000,0.0000000,0.0001000); //
  89. Object[17] = CreateObject(7900,394.5100100,1895.6666300,812.5739100,0.0000000,0.0000000,0.0001000); //
  90. Object[18] = CreateObject(7900,377.7218000,1895.6793200,812.5739100,0.0000000,0.0000000,0.0001000); //
  91. Object[19] = CreateObject(7900,360.8898000,1895.7000700,812.5739100,0.0000000,0.0000000,0.0001000); //
  92. Object[20] = CreateObject(7900,344.1097100,1895.7067900,812.5739100,0.0000000,0.0000000,0.0001000); //
  93. Object[21] = CreateObject(7900,330.9110100,1895.7272900,812.5739100,0.0000000,0.0000000,0.0001000); //
  94. Object[22] = CreateObject(7900,430.5196800,1795.9541000,812.6658900,0.0000000,0.0000000,89.2801000); //
  95. Object[23] = CreateObject(7900,443.7977300,1788.0350300,812.6658900,0.0000000,0.0000000,0.0001000); //
  96. Object[24] = CreateObject(7900,460.6416900,1787.9976800,812.6658900,0.0000000,0.0000000,0.0001000); //
  97. Object[25] = CreateObject(7900,477.3940100,1787.9617900,812.6658900,0.0000000,0.0000000,0.0001000); //
  98. Object[26] = CreateObject(7900,494.1964400,1787.9339600,812.6658900,0.0000000,0.0000000,0.0001000); //
  99. Object[27] = CreateObject(7900,510.9321300,1787.9357900,812.6658900,0.0000000,0.0000000,0.0001000); //
  100. Object[28] = CreateObject(7900,527.7979100,1787.9207800,812.6658900,0.0000000,0.0000000,0.0001000); //
  101. Object[29] = CreateObject(7900,540.2019700,1788.0131800,812.6658900,0.0000000,0.0000000,0.0001000); //
  102. Object[30] = CreateObject(7900,426.9605700,1788.0395500,812.6658900,0.0000000,0.0000000,0.0001000); //
  103. Object[31] = CreateObject(7900,410.0744900,1788.0582300,812.6658900,0.0000000,0.0000000,0.0001000); //
  104. Object[32] = CreateObject(7900,393.1947900,1788.0457800,812.6658900,0.0000000,0.0000000,0.0001000); //
  105. Object[33] = CreateObject(7900,376.2899500,1788.0561500,812.6658900,0.0000000,0.0000000,0.0001000); //
  106. Object[34] = CreateObject(7900,359.4209300,1788.0675000,812.6658900,0.0000000,0.0000000,0.0001000); //
  107. Object[35] = CreateObject(7900,342.5521500,1788.0871600,812.6658900,0.0000000,0.0000000,0.0001000); //
  108. Object[36] = CreateObject(7900,325.7719100,1788.1242700,812.6658900,0.0000000,0.0000000,0.0001000); //
  109. Object[37] = CreateObject(7900,316.9927100,1796.0996100,812.5739100,0.0000000,0.0000000,89.2801000); //
  110. Object[38] = CreateObject(7900,317.2344100,1812.8394800,812.5739100,0.0000000,0.0000000,89.2801000); //
  111. Object[39] = CreateObject(7900,317.4743000,1829.6833500,812.5739100,0.0000000,0.0000000,89.2801000); //
  112. Object[40] = CreateObject(7900,317.6870100,1846.5760500,812.5739100,0.0000000,0.0000000,89.2801000); //
  113. Object[41] = CreateObject(7900,317.9562100,1863.3122600,812.5739100,0.0000000,0.0000000,89.2801000); //
  114. Object[42] = CreateObject(7900,318.2030000,1880.1892100,812.5739100,0.0000000,0.0000000,89.2801000); //
  115. Object[43] = CreateObject(7900,318.3522900,1887.6417200,812.5739100,0.0000000,0.0000000,89.2801000); //
  116. Object[44] = CreateObject(7900,326.4957900,1895.6845700,812.5739100,0.0000000,0.0000000,0.0001000); //
  117. Object[45] = CreateObject(7900,549.1419100,1795.9637500,812.5938700,0.0000000,0.0000000,-90.0599000); //
  118. Object[46] = CreateObject(7900,549.1593000,1812.7733200,812.5938700,0.0000000,0.0000000,-90.0599000); //
  119. Object[47] = CreateObject(7900,549.2188700,1829.5971700,812.5938700,0.0000000,0.0000000,-90.0599000); //
  120. Object[48] = CreateObject(7900,549.2009900,1846.4429900,812.5938700,0.0000000,0.0000000,-90.0599000); //
  121. Object[49] = CreateObject(7900,549.1818800,1863.2462200,812.5938700,0.0000000,0.0000000,-90.0599000); //
  122. Object[50] = CreateObject(7900,549.2211300,1880.1070600,812.5938700,0.0000000,0.0000000,-90.0599000); //
  123. Object[51] = CreateObject(7900,549.2011700,1887.1229200,812.5938700,0.0000000,0.0000000,-90.0599000); //
  124. Object[52] = CreateObject(8171,316.4280700,1846.1368400,833.1928700,0.0000000,90.0000000,-180.0000000); //
  125. Object[53] = CreateObject(8171,385.4823000,1787.8054200,833.1928700,0.0000000,90.0000000,-90.0000200); //
  126. Object[54] = CreateObject(8171,515.6575900,1787.7408400,833.1928700,0.0000000,90.0000000,-90.0000200); //
  127. Object[55] = CreateObject(8171,549.4631300,1844.3400900,833.1928700,0.0000000,90.0000000,0.0000100); //
  128. Object[56] = CreateObject(8171,492.2547900,1895.5170900,833.1928700,0.0000000,90.0000000,90.0000000); //
  129. Object[57] = CreateObject(8171,361.1026900,1895.5174600,833.1928700,0.0000000,90.0000000,90.0000000); //
  130. Object[58] = CreateObject(3452,307.7606500,1861.7233900,819.1463000,0.0000000,0.0000000,-90.0000600); //
  131. Object[59] = CreateObject(3452,307.7601300,1832.4711900,819.1463000,0.0000000,0.0000000,-90.0000600); //
  132. Object[60] = CreateObject(3452,307.7390700,1803.2166700,819.1463000,0.0000000,0.0000000,-90.0000600); //
  133. Object[61] = CreateObject(3453,314.0740100,1778.4112500,819.1463000,0.0000000,0.0000000,-90.0001000); //
  134. Object[62] = CreateObject(3452,344.1133700,1772.9152800,819.1463000,0.0000000,0.0000000,0.0000000); //
  135. Object[63] = CreateObject(3452,373.2525000,1772.8991700,819.1463000,0.0000000,0.0000000,0.0000000); //
  136. Object[64] = CreateObject(3452,402.4678000,1772.9421400,819.1463000,0.0000000,0.0000000,0.0000000); //
  137. Object[65] = CreateObject(3452,431.9068300,1772.9060100,819.1463000,0.0000000,0.0000000,0.0000000); //
  138. Object[66] = CreateObject(3452,461.3619700,1772.9161400,819.1463000,0.0000000,0.0000000,0.0000000); //
  139. Object[67] = CreateObject(3452,490.7168900,1772.8949000,819.1463000,0.0000000,0.0000000,0.0000000); //
  140. Object[68] = CreateObject(3452,520.2565900,1772.9049100,819.1463000,0.0000000,0.0000000,0.0000000); //
  141. Object[69] = CreateObject(3453,554.9220600,1779.3973400,819.1463000,0.0000000,0.0000000,-0.0000900); //
  142. Object[70] = CreateObject(3452,526.1590600,1773.0197800,819.1463000,0.0000000,0.0000000,0.0000000); //
  143. Object[71] = CreateObject(3452,560.4092400,1809.5612800,819.1463000,0.0000000,0.0000000,90.0000200); //
  144. Object[72] = CreateObject(3452,560.3909300,1838.8762200,819.1463000,0.0000000,0.0000000,90.0000200); //
  145. Object[73] = CreateObject(3452,560.4194300,1868.3460700,819.1463000,0.0000000,0.0000000,90.0000200); //
  146. Object[74] = CreateObject(3453,553.9694800,1905.2010500,819.1463000,0.0000000,0.0000000,89.9999800); //
  147. Object[75] = CreateObject(3452,560.4067400,1883.5920400,819.1463000,0.0000000,0.0000000,90.0000200); //
  148. Object[76] = CreateObject(3452,524.2199700,1910.6818800,819.1463000,0.0000000,0.0000000,180.0000000); //
  149. Object[77] = CreateObject(3452,494.8591300,1910.7258300,819.1463000,0.0000000,0.0000000,180.0000000); //
  150. Object[78] = CreateObject(3452,465.5202300,1910.7183800,819.1463000,0.0000000,0.0000000,180.0000000); //
  151. Object[79] = CreateObject(3452,436.1443200,1910.7196000,819.1463000,0.0000000,0.0000000,180.0000000); //
  152. Object[80] = CreateObject(3452,406.6861900,1910.6870100,819.1463000,0.0000000,0.0000000,180.0000000); //
  153. Object[81] = CreateObject(3452,377.2801200,1910.6945800,819.1463000,0.0000000,0.0000000,180.0000000); //
  154. Object[82] = CreateObject(3452,347.9960300,1910.7085000,819.1463000,0.0000000,0.0000000,180.0000000); //
  155. Object[83] = CreateObject(3453,313.1630200,1904.4648400,819.1463000,0.0000000,0.0000000,-180.0602100); //
  156. Object[84] = CreateObject(3452,307.8420100,1878.1785900,819.1463000,0.0000000,0.0000000,-90.0000600); //
  157. Object[85] = CreateObject(3452,335.4701800,1910.9235800,819.1463000,0.0000000,0.0000000,180.0000000); //
  158. Object[86] = CreateObject(7900,325.9444900,1862.2005600,812.5739100,0.0000000,0.0000000,0.0001000); //
  159. Object[87] = CreateObject(7900,333.8272100,1853.3221400,812.5739100,0.0000000,0.0000000,89.2801000); //
  160. Object[88] = CreateObject(7900,333.6470900,1843.5336900,812.5739100,0.0000000,0.0000000,89.2801000); //
  161. Object[89] = CreateObject(7900,325.5033900,1834.7116700,812.5739100,0.0000000,0.0000000,0.0001000); //
  162. Object[90] = CreateObject(7900,326.3584000,1872.4592300,812.5739100,0.0000000,0.0000000,0.0001000); //
  163. Object[91] = CreateObject(7900,338.1913100,1872.4896200,812.5739100,0.0000000,0.0000000,0.0001000); //
  164. Object[92] = CreateObject(7900,346.1124000,1863.6755400,812.5739100,0.0000000,0.0000000,89.2801000); //
  165. Object[93] = CreateObject(7900,345.9050000,1846.8557100,812.5739100,0.0000000,0.0000000,89.2801000); //
  166. Object[94] = CreateObject(7900,345.6742900,1830.0672600,812.5739100,0.0000000,0.0000000,89.2801000); //
  167. Object[95] = CreateObject(7900,336.7066000,1822.2380400,812.5739100,0.0000000,0.0000000,0.0001000); //
  168. Object[96] = CreateObject(7900,325.7240900,1822.2478000,812.5739100,0.0000000,0.0000000,0.0001000); //
  169. Object[97] = CreateObject(7617,275.4694200,1851.2648900,856.1573500,0.0000000,0.0000000,90.0000200); //
  170. Object[98] = CreateObject(7617,592.5603000,1830.8085900,855.5890500,0.0000000,0.0000000,261.9601400); //
  171. Object[99] = CreateObject(7900,540.9886500,1822.9343300,812.6658900,0.0000000,0.0000000,0.0001000); //
  172. Object[100] = CreateObject(7900,533.0379000,1831.7375500,812.6658900,0.0000000,0.0000000,-90.0598800); //
  173. Object[101] = CreateObject(7900,533.0131200,1839.6458700,812.6658900,0.0000000,0.0000000,-90.0598800); //
  174. Object[102] = CreateObject(7900,541.0136100,1848.5167200,812.6658900,0.0000000,0.0000000,0.0001000); //
  175. Object[103] = CreateObject(7900,540.5437000,1813.0430900,812.5979000,0.0000000,0.0000000,0.0001000); //
  176. Object[104] = CreateObject(7900,529.2583000,1813.0460200,812.5979000,0.0000000,0.0000000,0.0001000); //
  177. Object[105] = CreateObject(7900,521.2249800,1821.8786600,812.5979000,0.0000000,0.0000000,-90.0599000); //
  178. Object[106] = CreateObject(7900,521.2484700,1838.7423100,812.5979000,0.0000000,0.0000000,-90.0599000); //
  179. Object[107] = CreateObject(7900,521.2642800,1851.2390100,812.5979000,0.0000000,0.0000000,-90.0599000); //
  180. Object[108] = CreateObject(7900,530.0966200,1859.2349900,812.5979000,0.0000000,0.0000000,0.0001000); //
  181. Object[109] = CreateObject(7900,540.7282700,1859.1977500,812.5979000,0.0000000,0.0000000,0.0001000); //
  182. Object[110] = CreateObject(7900,516.7520800,1827.8907500,812.5979000,0.0000000,0.0000000,-53.9399000); //
  183. Object[111] = CreateObject(7900,516.7006200,1841.5050000,812.5979000,0.0000000,0.0000000,-122.8199000); //
  184. Object[112] = CreateObject(7900,350.4012100,1841.5105000,812.5739100,0.0000000,0.0000000,53.9399000); //
  185. Object[113] = CreateObject(7900,350.7110900,1854.7717300,812.5739100,0.0000000,0.0000000,122.8199000); //
  186. Object[114] = CreateObject(7900,443.0543200,1895.5703100,812.5941800,0.0000000,0.0000000,0.0001000); //
  187. Object[115] = CreateObject(228,478.8563800,1895.8291000,816.9173000,90.0000000,270.0000000,90.0000000); //
  188. Object[116] = CreateObject(187,407.4004800,1896.3178700,816.8458900,90.0000000,180.0000000,180.0000000); //
  189. Object[117] = CreateObject(1722,480.7311100,1898.0537100,815.9234600,0.0000000,0.0000000,180.0000300); //
  190. Object[118] = CreateObject(1722,479.9740600,1898.0388200,815.9234600,0.0000000,0.0000000,180.0000300); //
  191. Object[119] = CreateObject(1722,479.2406000,1898.0389400,815.9234600,0.0000000,0.0000000,180.0000300); //
  192. Object[120] = CreateObject(1722,478.5181000,1898.0373500,815.9234600,0.0000000,0.0000000,180.0000300); //
  193. Object[121] = CreateObject(1722,477.7608300,1898.0417500,815.9234600,0.0000000,0.0000000,180.0000300); //
  194. Object[122] = CreateObject(1722,476.9804100,1898.0675000,815.9234600,0.0000000,0.0000000,180.0000300); //
  195. Object[123] = CreateObject(1722,409.4780900,1897.6219500,815.9043000,0.0000000,0.0000000,-180.0000600); //
  196. Object[124] = CreateObject(1722,408.6779800,1897.6213400,815.9043000,0.0000000,0.0000000,-180.0000600); //
  197. Object[125] = CreateObject(1722,407.8378000,1897.6184100,815.9043000,0.0000000,0.0000000,-180.0000600); //
  198. Object[126] = CreateObject(1722,407.0376900,1897.6173100,815.9043000,0.0000000,0.0000000,-180.0000600); //
  199. Object[127] = CreateObject(1722,406.2375800,1897.6160900,815.9043000,0.0000000,0.0000000,-180.0000600); //
  200. Object[128] = CreateObject(1722,405.3969400,1897.5974100,815.9043000,0.0000000,0.0000000,-180.0000600); //
  201. Object[129] = CreateObject(16101,318.2452700,1895.5664100,807.1652200,0.0000000,0.0000000,0.0000000); //
  202. Object[130] = CreateObject(19306,318.2890900,1895.6038800,817.5881300,0.0000000,0.0000000,-115.2599900); //
  203. Object[131] = CreateObject(16101,549.4392100,1895.5789800,807.1652200,0.0000000,0.0000000,0.0000000); //
  204. Object[132] = CreateObject(19306,549.4695400,1895.5505400,817.5926500,0.0000000,0.0000000,-211.4999500); //
  205. Object[133] = CreateObject(16101,549.5280800,1787.6223100,807.1652200,0.0000000,0.0000000,0.0000000); //
  206. Object[134] = CreateObject(19306,549.5576800,1787.6618700,817.5943600,0.0000000,0.0000000,-126.9000100); //
  207. Object[135] = CreateObject(16101,317.3187300,1787.6716300,807.1652200,0.0000000,0.0000000,0.0000000); //
  208. Object[136] = CreateObject(19306,317.3219000,1787.7064200,817.6091300,0.0000000,0.0000000,-26.9400000); //
  209. Object[137] = CreateObject(7900,416.3907800,1840.4592300,812.5931400,0.0000000,0.0000000,86.8199200); //
  210. Object[138] = CreateObject(7900,424.0292700,1852.5782500,812.5931400,0.0000000,0.0000000,208.7397300); //
  211. Object[139] = CreateObject(7900,423.0388800,1828.4472700,812.5930800,0.0000000,0.0000000,-208.7397000); //
  212. Object[140] = CreateObject(7900,438.8191800,1852.2575700,812.5931400,0.0000000,0.0000000,148.5599700); //
  213. Object[141] = CreateObject(7900,437.6875600,1827.9566700,812.5930800,0.0000000,0.0000000,-152.8798500); //
  214. Object[142] = CreateObject(7900,445.4082900,1839.8535200,812.5931400,0.0000000,0.0000000,86.8199200); //
  215. Object[143] = CreateObject(3452,348.3287700,1928.2808800,827.8922700,0.0000000,0.0000000,180.0000000); //
  216. Object[144] = CreateObject(3452,377.9127200,1928.2963900,827.8922700,0.0000000,0.0000000,180.0000000); //
  217. Object[145] = CreateObject(3452,407.4949300,1928.3234900,827.8884300,0.0000000,0.0000000,180.0000000); //
  218. Object[146] = CreateObject(3452,437.0893900,1928.3404500,827.8884300,0.0000000,0.0000000,180.0000000); //
  219. Object[147] = CreateObject(3452,466.6598200,1928.3172600,827.8997800,0.0000000,0.0000000,180.0000000); //
  220. Object[148] = CreateObject(3452,496.2372700,1928.3479000,827.8997800,0.0000000,0.0000000,180.0000000); //
  221. Object[149] = CreateObject(3452,525.8317900,1928.3183600,827.8997800,0.0000000,0.0000000,180.0000000); //
  222. Object[150] = CreateObject(3453,570.4583700,1922.4437300,827.8614500,0.0000000,0.0000000,92.3399500); //
  223. Object[151] = CreateObject(3452,578.3884300,1868.2381600,827.5474200,0.0000000,0.0000000,90.0000200); //
  224. Object[152] = CreateObject(3452,578.3775000,1838.6245100,827.5474200,0.0000000,0.0000000,90.0000200); //
  225. Object[153] = CreateObject(3452,578.3909300,1809.0295400,827.5474200,0.0000000,0.0000000,90.0000200); //
  226. Object[154] = CreateObject(3453,576.6384900,1771.9334700,827.5549300,0.0000000,0.0000000,13.1999100); //
  227. Object[155] = CreateObject(3452,578.3173200,1801.5435800,827.5474200,0.0000000,0.0000000,90.0000200); //
  228. Object[156] = CreateObject(3452,549.7556800,1759.3184800,827.5500500,0.0000000,0.0000000,12.1800000); //
  229. Object[157] = CreateObject(3452,289.8812900,1881.1036400,827.9346900,0.0000000,0.0000000,-90.0000600); //
  230. Object[158] = CreateObject(3452,290.1751700,1860.6717500,828.1132200,0.0000000,0.0000000,-90.0000600); //
  231. Object[159] = CreateObject(3452,290.0816700,1831.2100800,827.9965200,0.0000000,0.0000000,-90.0000600); //
  232. Object[160] = CreateObject(3452,290.1034900,1801.6569800,827.9965200,0.0000000,0.0000000,-90.0000600); //
  233. Object[161] = CreateObject(3452,520.8095100,1755.3409400,827.1380000,0.0000000,0.0000000,0.0000000); //
  234. Object[162] = CreateObject(3452,529.9641700,1755.0443100,827.1380000,0.0000000,0.0000000,5.4600000); //
  235. Object[163] = CreateObject(3452,491.2486000,1755.3397200,827.1380000,0.0000000,0.0000000,0.0000000); //
  236. Object[164] = CreateObject(3452,461.8261700,1755.3376500,827.1380000,0.0000000,0.0000000,0.0000000); //
  237. Object[165] = CreateObject(3452,432.2650100,1755.3241000,827.1380000,0.0000000,0.0000000,0.0000000); //
  238. Object[166] = CreateObject(3452,402.6955300,1755.3388700,827.1380000,0.0000000,0.0000000,0.0000000); //
  239. Object[167] = CreateObject(3452,373.1048000,1755.3420400,827.1380000,0.0000000,0.0000000,0.0000000); //
  240. Object[168] = CreateObject(3452,343.5268900,1755.3311800,827.1380000,0.0000000,0.0000000,0.0000000); //
  241. Object[169] = CreateObject(3452,326.1619900,1755.4705800,827.5437000,0.0000000,0.0000000,0.0000000); //
  242. Object[170] = CreateObject(3453,296.2919000,1761.0041500,827.7017200,0.0000000,0.0000000,-90.0001000); //
  243. Object[171] = CreateObject(3452,290.0665000,1789.9914600,827.8054800,0.0000000,0.0000000,-90.0000600); //
  244. Object[172] = CreateObject(3452,322.9494000,1927.9575200,827.9431200,0.0000000,0.0000000,180.0000000); //
  245. Object[173] = CreateObject(3452,291.8265400,1890.8835400,827.9346900,0.0000000,0.0000000,-90.0000600); //
  246. Object[174] = CreateObject(3453,295.9925800,1920.3012700,827.9239500,0.0000000,0.0000000,-174.3603400); //
  247. Object[175] = CreateObject(3452,578.0948500,1880.6391600,827.5474200,0.0000000,0.0000000,90.0000200); //
  248. Object[176] = CreateObject(3452,540.3212900,1927.5362500,827.8997800,0.0000000,0.0000000,180.0000000); //
  249. Object[177] = CreateObject(3452,577.8139600,1894.3309300,827.5474200,0.0000000,0.0000000,90.0000200); //
  250. Object[178] = CreateObject(7418,361.8798200,1853.9217500,815.8941000,0.0000000,0.0000000,-90.0000200); //
  251. Object[179] = CreateObject(7418,503.7931500,1853.4245600,815.8941000,0.0000000,0.0000000,-180.0001500); //
  252. Object[180] = CreateObject(7418,363.0884700,1832.1584500,815.8765900,0.0000000,0.0000000,-0.0000400); //
  253. Object[181] = CreateObject(7418,505.0179400,1833.2971200,815.8941000,0.0000000,0.0000000,-270.0003400); //
  254. Object[182] = CreateObject(8332,446.8378000,1784.3328900,814.8439900,0.0000000,0.0000000,180.0000000); //
  255. Object[183] = CreateObject(8329,446.1549100,1901.9626500,814.6157800,0.0000000,0.0000000,125.0399000); //
  256. Object[184] = CreateObject(8327,418.1900900,1902.7028800,814.5835000,0.0000000,0.0000000,34.8599900); //
  257. Object[185] = CreateObject(8327,431.7802400,1903.0445600,814.5835000,0.0000000,0.0000000,-163.1398800); //
  258. Object[186] = CreateObject(8329,419.3050800,1783.9532500,814.5592000,0.0000000,0.0000000,140.4001300); //
  259. Object[187] = CreateObject(8328,432.6423600,1782.9491000,814.4990200,0.0000000,0.0000000,-2.1000000); //
  260. Object[188] = CreateObject(974,548.8340500,1831.9270000,817.6554600,0.0000000,0.0000000,89.9999900); //
  261. Object[189] = CreateObject(974,548.7955900,1838.5389400,817.6913500,0.0000000,0.0000000,89.9999900); //
  262. Object[190] = CreateObject(974,545.5203200,1841.8056600,817.7268700,0.0000000,0.0000000,180.0001800); //
  263. Object[191] = CreateObject(974,545.4923100,1828.6118200,817.6215800,0.0000000,0.0000000,180.0001800); //
  264. Object[192] = CreateObject(974,545.4970100,1831.4145500,820.4074700,90.0000000,0.0000000,180.0002000); //
  265. Object[193] = CreateObject(974,545.4818100,1839.0094000,820.4320700,90.0000000,0.0000000,180.0002000); //
  266. Object[194] = CreateObject(974,545.4752200,1836.4857200,820.4156500,90.0000000,0.0000000,180.0002000); //
  267. Object[195] = CreateObject(974,321.2908600,1855.0152600,820.4321300,90.0000000,0.0000000,180.0002000); //
  268. Object[196] = CreateObject(974,321.2872900,1849.5166000,820.4155900,90.0000000,0.0000000,180.0002000); //
  269. Object[197] = CreateObject(974,321.2964800,1847.0826400,820.4074700,90.0000000,0.0000000,180.0002000); //
  270. Object[198] = CreateObject(974,321.2494200,1844.3917200,817.6215800,0.0000000,0.0000000,180.0002000); //
  271. Object[199] = CreateObject(974,317.9759200,1847.7695300,817.6555200,0.0000000,0.0000000,90.0000000); //
  272. Object[200] = CreateObject(974,317.9923400,1854.4514200,817.6912800,0.0000000,0.0000000,90.0000000); //
  273. Object[201] = CreateObject(974,321.2864700,1857.7932100,817.7269300,0.0000000,0.0000000,180.0002000); //
  274. Object[202] = CreateObject(10955,503.7023000,1967.6514900,848.6874400,0.0000000,180.0000000,0.0000000); //
  275. Object[203] = CreateObject(10955,409.6324500,1967.6552700,848.6874400,0.0000000,180.0000000,0.0000000); //
  276. Object[204] = CreateObject(10955,345.8071600,1967.7661100,848.6873800,0.0000000,180.0000000,0.0000000); //
  277. Object[205] = CreateObject(10955,305.1061100,1968.1530800,848.6873800,0.0000000,180.0000000,0.0000000); //
  278. Object[206] = CreateObject(10955,271.8701200,1982.8250700,848.6873800,0.0000000,180.0000000,34.2000000); //
  279. Object[207] = CreateObject(10955,235.0415500,1964.3245800,848.6873800,0.0000000,180.0000000,59.0399900); //
  280. Object[208] = CreateObject(10955,218.8567200,1938.6107200,848.6873800,0.0000000,180.0000000,63.4199800); //
  281. Object[209] = CreateObject(10955,245.7636600,1892.1655300,848.6873800,0.0000000,180.0000000,71.6999800); //
  282. Object[210] = CreateObject(10955,544.9042400,1967.6992200,848.6874400,0.0000000,180.0000000,0.0000000); //
  283. Object[211] = CreateObject(10955,233.7693300,1822.0006100,848.6873800,0.0000000,180.0000000,83.0399200); //
  284. Object[212] = CreateObject(10955,232.8741500,1761.2822300,848.6873800,0.0000000,180.0000000,98.9399400); //
  285. Object[213] = CreateObject(10955,239.9401900,1733.9721700,848.6873800,0.0000000,180.0000000,114.3599400); //
  286. Object[214] = CreateObject(10955,280.3840300,1714.2995600,848.7451200,0.0000000,180.0000000,161.9399300); //
  287. Object[215] = CreateObject(10955,368.4550800,1696.3313000,848.6873800,0.0000000,180.0000000,173.7598300); //
  288. Object[216] = CreateObject(10955,457.1938500,1692.7011700,848.6873800,0.0000000,180.0000000,181.1998300); //
  289. Object[217] = CreateObject(10955,534.3227500,1695.8732900,848.6873800,0.0000000,180.0000000,181.1998300); //
  290. Object[218] = CreateObject(10955,606.2207000,1696.2054400,848.6873800,0.0000000,180.0000000,181.1998300); //
  291. Object[219] = CreateObject(10955,610.2581800,1737.1195100,848.6873800,0.0000000,180.0000000,235.1399200); //
  292. Object[220] = CreateObject(10955,631.4610000,1800.0893600,848.6873800,0.0000000,180.0000000,257.0998500); //
  293. Object[221] = CreateObject(10955,649.9525100,1880.8504600,848.6873800,0.0000000,180.0000000,257.0998500); //
  294. Object[222] = CreateObject(10955,614.7302200,1947.6099900,848.6873800,0.0000000,180.0000000,325.5599700); //
  295. Object[223] = CreateObject(3472,281.6041300,1765.3048100,846.6871900,0.0000000,0.0000000,0.0000000); //
  296. Object[224] = CreateObject(3472,554.0593300,1749.7672100,845.2481100,0.0000000,0.0000000,0.0000000); //
  297. Object[225] = CreateObject(3472,586.7396900,1909.0607900,845.1118200,0.0000000,0.0000000,0.0000000); //
  298. Object[226] = CreateObject(3472,308.5879800,1913.1444100,845.1118200,0.0000000,0.0000000,0.0000000); //
  299. Object[227] = CreateObject(19334,416.6543000,1847.0609100,918.1276200,0.0000000,0.0000000,0.0000000); //
  300. }
  301. #endif
  302.  
  303. //==============================================================================
  304. // Basic vars
  305. //==============================================================================
  306.  
  307. new bool:MissionStarted;
  308. new bool:ObjectiveStarted;
  309. new bool:MissionCancelled;
  310.  
  311. native IsValidVehicle(vehicleid);
  312.  
  313. enum teamdata
  314. {
  315. Kills,
  316. Name[32],
  317. Members,
  318. Points
  319. };
  320.  
  321. enum playerdata
  322. {
  323. UserName[MAX_PLAYER_NAME],
  324. bool:TeamChosen,
  325. TeamSelection,
  326. PlayerClassID,
  327. PlayerPointsTaken,
  328. Counted
  329. };
  330.  
  331. new Team[2][teamdata];
  332. new PlayerMissionInfo[MAX_PLAYERS][playerdata];
  333.  
  334. new Collecting= INVALID_PLAYER_ID;
  335. new ObjectiveObj;
  336.  
  337. //==============================================================================
  338. // Basic script
  339. //==============================================================================
  340.  
  341. main()
  342. {
  343. print("----------------------------------");
  344. print(" Mission: "MISSION_NAME" started.");
  345. print("----------------------------------\n");
  346. }
  347.  
  348. public OnGameModeInit()
  349. {
  350. MissionStarted= true;
  351.  
  352. format(Team[TEAM_DEFEND][Name],32,"%s",TEAM_DEFEND_NAME);
  353. format(Team[TEAM_ATTACK][Name],32,"%s",TEAM_ATTACK_NAME);
  354.  
  355. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  356.  
  357. #if MAX_MAP_OBJECTS != 0
  358. CreateMap();
  359. #endif
  360.  
  361. for(new i=0; i<sizeof(PedInfo); i++)AddPlayerClassEx(PedInfo[i][TeamID],PedInfo[i][Skin],PedInfo[i][SpawnX],PedInfo[i][SpawnY],PedInfo[i][SpawnZ],PedInfo[i][SpawnAngle],0,0,0,0,0,0);
  362.  
  363. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  364. for(new i=0; i<MAX_PLAYERS; i++) PlayerMissionInfo[i][TeamSelection]= NO_TEAM;
  365.  
  366. ObjectiveObj=CreateObject(OBJ_ID,CP_POS,0.0,0.0,0.0);
  367. Collecting=INVALID_PLAYER_ID;
  368.  
  369. SetTimer("StartMissionFunc",3000,false);
  370. return 1;
  371. }
  372.  
  373. FUNCTION StartMissionFunc()
  374. {
  375. CallRemoteFunction("StartMission","");
  376. ObjectiveStarted= true;
  377. return 1;
  378. }
  379.  
  380. public OnGameModeExit()
  381. {
  382. #if MAX_MAP_OBJECTS != 0
  383. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  384. #endif
  385. DestroyObject(ObjectiveObj);
  386. return 1;
  387. }
  388.  
  389. public OnPlayerDisconnect(playerid)
  390. {
  391. if(PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && PlayerMissionInfo[playerid][TeamChosen])
  392. {
  393. Team[PlayerMissionInfo[playerid][TeamSelection]][Members] --;
  394. PlayerMissionInfo[playerid][TeamChosen] = false;
  395. }
  396. new string[70];
  397. if(Collecting == playerid)
  398. {
  399. if(!MissionStarted) return 1;
  400. format(string,sizeof(string),"%s has dropped the "OBJ_NAME"",PlayerMissionInfo[Collecting][UserName]);
  401. CallRemoteFunction("ShowInfoBox", "iisi", -1, Collecting,string,0);
  402. new Float:x,Float:y,Float:z;
  403. GetPlayerPos(playerid,x,y,z);
  404. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  405. {
  406. if(!IsPlayerConnected(i)) continue;
  407. if(!CallRemoteFunction("GetAliveState","i",i)) continue;
  408. SetPlayerCheckpoint(i,x,y,z,3.0);
  409. }
  410. RemovePlayerAttachedObject(playerid,0);
  411. ObjectiveObj=CreateObject(OBJ_ID,x,y,z+2.0,0.0,0.0,0.0);
  412. Collecting=INVALID_PLAYER_ID;
  413. }
  414. return 1;
  415. }
  416.  
  417. public OnPlayerRequestClass(playerid,classid)
  418. {
  419. SetPlayerPos(playerid,CLASS_POSTION);
  420. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  421. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  422. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  423.  
  424. CallRemoteFunction("TdmHide","i",playerid);
  425. CallRemoteFunction("ShowClassSelection","ddsddd",playerid, PedInfo[classid][TeamID],Team[PedInfo[classid][TeamID]][Name], PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  426.  
  427. if(PlayerMissionInfo[playerid][Counted] && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM)
  428. {
  429. Team[PlayerMissionInfo[playerid][TeamSelection]][Members]--;
  430. PlayerMissionInfo[playerid][Counted] = false;
  431. }
  432. PlayerMissionInfo[playerid][TeamSelection] = PedInfo[classid][TeamID];
  433. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  434. return 1;
  435. }
  436.  
  437. public OnPlayerRequestSpawn(playerid)
  438. {
  439. new opp_team = (PlayerMissionInfo[playerid][TeamSelection] == 1)? 0:1;
  440. if(Team[PlayerMissionInfo[playerid][TeamSelection]][Members] > Team[opp_team][Members])
  441. {
  442. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"This Team is full, choose another!",100);
  443. return 0;
  444. }
  445.  
  446. return 1;
  447. }
  448.  
  449. public OnPlayerSpawn(playerid)
  450. {
  451. SetPlayerHealth(playerid,Health);
  452. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  453. CallRemoteFunction("TdmShow","i",playerid);
  454. CallRemoteFunction("TdmUpdate","sssdd",OBJ_NAME,Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Points],Team[TEAM_ATTACK][Points]);
  455. new string[124];
  456. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  457. if(CallRemoteFunction("GetJailedStatus","d",playerid)) CallRemoteFunction("SetJailed","d",playerid);
  458. else
  459. {
  460. SetPlayerPos(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnX],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnY],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnZ]);
  461. SetPlayerFacingAngle(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnAngle]);
  462. SetPlayerInterior(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][SpawnInterior]);
  463. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  464. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  465. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  466. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  467. if(!PlayerMissionInfo[playerid][Counted])
  468. {
  469. PlayerMissionInfo[playerid][Counted] = true;
  470. Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Members]++;
  471. format(string,sizeof(string),"You have chosen team %s, Your mission is to capture &s.",Team[PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID]][Name],OBJ_NAME);
  472. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,100);
  473. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][TeamID] == TEAM_ATTACK) format(string,sizeof(string),"~r~~h~Stop ~w~%s.",Team[TEAM_DEFEND][Name]);
  474. else format(string,sizeof(string),"~r~~h~Stop ~w~%s.",Team[TEAM_ATTACK][Name]);
  475. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,string,100);
  476. }
  477. if(Collecting == INVALID_PLAYER_ID) SetPlayerCheckpoint(playerid,CP_POS,3.0);
  478. else
  479. {
  480. if(PlayerMissionInfo[Collecting][TeamSelection] == TEAM_ATTACK) SetPlayerCheckpoint(playerid,TEAM_ATTACK_CAPTURE,3.0);
  481. else SetPlayerCheckpoint(playerid,TEAM_DEFEND_CAPTURE,3.0);
  482. }
  483. }
  484. SetPlayerTeam(playerid,PlayerMissionInfo[playerid][TeamSelection]);
  485. if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
  486. else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
  487. TogglePlayerControllable(playerid,true);
  488. #if SPAWN_PROTECTION == true
  489. CallRemoteFunction("SetSpawnProtection","df",playerid,Health);
  490. #endif
  491. return 1;
  492. }
  493.  
  494. public OnPlayerDeath(playerid, killerid, reason)
  495. {
  496. if(killerid != INVALID_PLAYER_ID && PlayerMissionInfo[playerid][TeamSelection] != NO_TEAM && MissionStarted)
  497. {
  498. Team[PlayerMissionInfo[killerid][TeamSelection]][Kills]++;
  499. }
  500. new string[70];
  501. if(Collecting == playerid)
  502. {
  503. if(!MissionStarted) return 1;
  504. format(string,sizeof(string),"%s has dropped the "OBJ_NAME"",PlayerMissionInfo[Collecting][UserName]);
  505. CallRemoteFunction("ShowInfoBox", "iisi", -1, Collecting,string,0);
  506. new Float:x,Float:y,Float:z;
  507. GetPlayerPos(playerid,x,y,z);
  508. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  509. {
  510. if(!IsPlayerConnected(i)) continue;
  511. if(!CallRemoteFunction("GetAliveState","i",i)) continue;
  512. DisablePlayerCheckpoint(i);
  513. SetPlayerCheckpoint(i,x,y,z,3.0);
  514. }
  515. RemovePlayerAttachedObject(playerid,0);
  516. ObjectiveObj=CreateObject(OBJ_ID,x,y,z+2.0,0.0,0.0,0.0);
  517. Collecting=INVALID_PLAYER_ID;
  518. }
  519. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  520. return 1;
  521. }
  522.  
  523.  
  524. public OnPlayerEnterCheckpoint(playerid)
  525. {
  526. new string[128];
  527. if(!MissionStarted || MissionCancelled) return 1;
  528. if(IsPlayerInAnyVehicle(playerid)) return 1;
  529. if(Collecting == INVALID_PLAYER_ID)
  530. {
  531. DisablePlayerCheckpoint(Collecting);
  532. Collecting= playerid;
  533. CallRemoteFunction("ShowInfoBox", "iisi", Collecting, -1,"Try to Score a goal",0);
  534. PlayerPlaySound(playerid, 4602,0,0,0);
  535. format(string,sizeof(string),"the ball is with %s",PlayerMissionInfo[Collecting][UserName],Team[PlayerMissionInfo[Collecting][TeamSelection]][Name]);
  536. CallRemoteFunction("ShowInfoBox", "iisi", -1, Collecting,string,0);
  537. SetPlayerColor(playerid,COLOR_SERVER);
  538. DisablePlayerCheckpoint(Collecting);
  539. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  540. {
  541. if(!IsPlayerConnected(i)) continue;
  542. if(!CallRemoteFunction("GetAliveState","i",i)) continue;
  543. DisablePlayerCheckpoint(i);
  544. if(PlayerMissionInfo[Collecting][TeamSelection] == TEAM_ATTACK) SetPlayerCheckpoint(i,TEAM_ATTACK_CAPTURE,3.0);
  545. else SetPlayerCheckpoint(i,TEAM_DEFEND_CAPTURE,3.0);
  546. }
  547. DestroyObject(ObjectiveObj);
  548. SetPlayerAttachedObject(playerid, 0, OBJ_ID, 10, 0.000000,0.442999,-0.078000,0.000000,0.000000,0.000000,0.832001,0.777001,0.776001);
  549. }
  550. else if(Collecting == playerid)
  551. {
  552. format(string,sizeof(string),"GOAL! %s has scored a Goal for %s",PlayerMissionInfo[Collecting][UserName],Team[PlayerMissionInfo[Collecting][TeamSelection]][Name]);
  553. CallRemoteFunction("ShowInfoBox", "iisi", -1, Collecting,string,0);
  554. PlayerMissionInfo[playerid][PlayerPointsTaken]++;
  555. CallRemoteFunction("PlayerMissionStats","dd",playerid,7);
  556. Team[PlayerMissionInfo[playerid][TeamSelection]][Points]++;
  557. SetPlayerScore(playerid,PlayerMissionInfo[playerid][PlayerPointsTaken]);
  558. CallRemoteFunction("TdmUpdate","sssdd",OBJ_NAME,Team[TEAM_DEFEND][Name],Team[TEAM_ATTACK][Name],Team[TEAM_DEFEND][Points],Team[TEAM_ATTACK][Points]);
  559. if(PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) SetPlayerColor(playerid,COLOR_TEAM_ATTACK);
  560. else SetPlayerColor(playerid,COLOR_TEAM_DEFEND);
  561. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  562. {
  563. if(!IsPlayerConnected(i)) continue;
  564. if(!CallRemoteFunction("GetAliveState","i",i)) continue;
  565. DisablePlayerCheckpoint(i);
  566. PlayerPlaySound(playerid,4604,0,0,0);
  567. PlaySoundForAll(36205);
  568. SetPlayerCheckpoint(i,CP_POS,3.0);
  569. }
  570. RemovePlayerAttachedObject(playerid,0);
  571. ObjectiveObj=CreateObject(OBJ_ID,CP_POS+2.0,0.0,0.0,0.0);
  572. Collecting=INVALID_PLAYER_ID;
  573. }
  574. return 1;
  575. }
  576.  
  577. FUNCTION EndTheMission()
  578. {
  579. if(!MissionStarted) return 1;
  580. MissionStarted= false;
  581. if(!MissionCancelled)
  582. {
  583. new string[256];
  584. new amount= 10000;
  585. new winning_team;
  586. if(Team[TEAM_DEFEND][Points] == Team[TEAM_ATTACK][Points]) { winning_team = 2; }
  587. else if(Team[TEAM_DEFEND][Points] > Team[TEAM_ATTACK][Points]) { winning_team = 0; }
  588. else { winning_team = 1; }
  589.  
  590. if(winning_team != 2)
  591. {
  592. amount =amount+(Team[winning_team][Points]*60);
  593. format(string,sizeof(string),""SERVER_KEY_MSG" %s has won the match! Reward: $%d",Team[winning_team][Name],amount);
  594. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  595. SendClientMessageToAll(COLOR_SERVER,string);
  596. format(string,sizeof(string),""SERVER_KEY_MSG" You have received $%i because your team has won the match !",amount);
  597. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++)
  598. {
  599. if(PlayerMissionInfo[i][TeamSelection] == winning_team && PlayerMissionInfo[i][Counted])
  600. {
  601. PlayerPlaySound(i,3200,0,0,0);
  602. SendClientMessage(i,COLOR_SERVER,string);
  603. CallRemoteFunction("GivePlayerCash","ii",i,amount);
  604. CallRemoteFunction("PlayerMissionStats","dd",i,0);
  605. CallRemoteFunction("PlayerMissionStats","dd",i,6);
  606. }
  607. if(PlayerMissionInfo[i][TeamSelection] != winning_team && PlayerMissionInfo[i][Counted])
  608. {
  609. PlayerPlaySound(i,17004,0,0,0);
  610. GameTextForPlayer(i,"~R~MISSION FAILED~w~!",3000,3);
  611. CallRemoteFunction("PlayerMissionStats","dd",i,1);
  612. }
  613. }
  614. }
  615. else
  616. {
  617. PlaySoundForAll(1058);
  618. format(string,sizeof(string),""SERVER_KEY_MSG" IT'S A DRAW! No team has won match.");
  619. SendClientMessageToAll(COLOR_SERVER,string);
  620. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  621. for(new i=0,j=GetPlayerPoolSize(); i <= j; i++) if(IsPlayerConnected(i) && PlayerMissionInfo[i][Counted]) CallRemoteFunction("PlayerMissionStats","dd",i,2);
  622. }
  623. }
  624. else
  625. {
  626. PlaySoundForAll(1058);
  627. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The match has been cancelled.");
  628. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The match has been cancelled.",IRC_SERVER_COLOR);
  629. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The match has been cancelled.",0);
  630. GameTextForAll("~R~MATCH CANCELLED~w~!",3000,3);
  631. }
  632. return 1;
  633. }
  634.  
  635. //==============================================================================
  636. // Mission functions
  637. //==============================================================================
  638.  
  639. PlaySoundForAll(sound)
  640. {
  641. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  642. {
  643. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  644. }
  645. }
  646.  
  647. //==============================================================================
  648. // Important functions required
  649. //==============================================================================
  650.  
  651. FUNCTION OnPlayerNameRecieve(playerid,name[])
  652. {
  653. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  654. return 1;
  655. }
  656.  
  657.  
  658. FUNCTION CancelTheMission()
  659. {
  660. MissionCancelled= true;
  661. return 1;
  662. }
  663.  
  664. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  665.  
  666. FUNCTION OnPlayerSpectateObjective(playerid)
  667. {
  668. SetPlayerCameraPos(playerid, CP_POS + 2.5);
  669. SetPlayerCameraLookAt(playerid, CP_POS);
  670. SetPlayerPos(playerid, CP_POS - 5);
  671.  
  672. SetPlayerColor(playerid, (PlayerMissionInfo[playerid][TeamSelection] == TEAM_ATTACK) ? COLOR_TEAM_ATTACK_INV : COLOR_TEAM_DEFEND_INV);
  673. return 1;
  674. }
Advertisement
Add Comment
Please, Sign In to add comment