Bulletje

Untitled

Feb 20th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.93 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: IDK
  4. Mission Base: Last man standing
  5. Mission Type: Last man standing
  6. Mission Type ID: 4
  7. */
  8. //==============================================================================
  9. // Includes
  10. //==============================================================================
  11. #include <a_samp>
  12. #include <crashdetect>
  13. #include <float>
  14. #include <fixes2>
  15.  
  16. #include "..\filterscripts\MM\stuff\defines"
  17. #include "..\filterscripts\MM\stuff\serverkeymsg"
  18.  
  19. //==============================================================================
  20. // Defines
  21. //==============================================================================
  22.  
  23. #define MISSION_NAME "H2O"
  24. #define Health 99.0
  25. #define VEHICLE_HEALTH 999.0
  26. #define CLASS_POSTION -3707.8735,-3.6701,1.5306
  27. #define CLASS_CAMERA -3708.7627,-1.4937,1.5306
  28. #define CLASS_FACING_AGNLE 27.4554
  29. #define MAX_MAP_OBJECTS 140
  30. #define START_TIME 20
  31.  
  32. //==============================================================================
  33. // Per mission functions
  34. //==============================================================================
  35.  
  36. enum ped_enum
  37. {
  38. TeamID,
  39. Skin,
  40. Float:SpawnX,
  41. Float:SpawnY,
  42. Float:SpawnZ,
  43. Float:SpawnAngle,
  44. SpawnInterior,
  45. VirtualWorld,
  46. Weapon1,
  47. Ammo1,
  48. Weapon2,
  49. Ammo2,
  50. Weapon3,
  51. Ammo3,
  52. };
  53.  
  54. new PedInfo[][ped_enum] = {
  55. {NO_TEAM, 0, -784.0209, 494.7463, 1376.1953, 88.6274,0,0, WEAPON_DEAGLE, 500, WEAPON_AK47, 250, 0, 0}
  56. };
  57.  
  58. new Float:gSpawns[][] =
  59. {
  60. {-3747.3698, -46.0332, 3.3839, 358.4608}, 
  61. {-3739.9975, -46.5202, 3.3839, 356.5808}, 
  62. {-3732.5119, -45.7969, 3.5145, 358.4608}, 
  63. {-3725.4741, -46.6061, 3.3839, 1.2808}, 
  64. {-3746.3742, 22.7724, 3.3839, 178.0026}, 
  65. {-3739.0229, 22.6071, 3.3839, 178.6525}, 
  66. {-3731.6289, 22.3061, 3.3839, 177.7126}, 
  67. {-3724.6774, 22.1306, 3.3839, 185.2326}, 
  68. {-3720.2011, 74.3678, 2.0562, 176.7727}, 
  69. {-3716.7937, 49.8118, 2.0562, 263.5668}, 
  70. {-3675.0617, 53.0439, 2.0627, 125.6987}, 
  71. {-3718.8066, 38.8433, 2.0562, 233.1731}, 
  72. {-3678.1940, 20.8610, 2.0627, 84.3383}, 
  73. {-3621.1391, 70.3876, 11.2140, 179.2558}, 
  74. {-3638.2172, -1.3781, 1.6031, 5.3542}, 
  75. {-3627.2639, -14.1797, 1.4534, 86.7982}, 
  76. {-3630.8225, -58.5006, 1.8782, 26.3243}, 
  77. {-3631.9992, -88.0434, 4.5124, 51.3912}, 
  78. {-3667.6345, -87.8406, 1.3303, 28.5177}, 
  79. {-3717.7724, -56.6394, 1.2186, 0.9437}
  80. };
  81.  
  82. #if MAX_MAP_OBJECTS != 0
  83. new Object[MAX_MAP_OBJECTS];
  84.  
  85. CreateMap()
  86. {
  87. Object[0] = CreateObject(5835,-3774.5000000,-12.0000000,5.9000000,0.0000000,0.0000000,0.0000000); //
  88. Object[1] = CreateObject(10832,-3745.6999500,-22.9000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  89. Object[2] = CreateObject(10832,-3745.8000500,-12.5000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  90. Object[3] = CreateObject(10832,-3745.8999000,-2.1000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  91. Object[4] = CreateObject(3458,-3739.5000000,-11.0000000,0.0000000,0.0000000,0.0000000,90.0000000); //
  92. Object[5] = CreateObject(3458,-3734.3999000,-11.0000000,0.0000000,0.0000000,0.0000000,90.0000000); //
  93. Object[6] = CreateObject(3458,-3729.8000500,-11.1000000,0.0000000,0.0000000,0.0000000,90.0000000); //
  94. Object[7] = CreateObject(3776,-3735.6992200,-36.0000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  95. Object[8] = CreateObject(3776,-3735.1001000,14.2000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  96. Object[9] = CreateObject(16367,-3724.3999000,-22.4000000,1.0000000,0.0000000,0.0000000,0.0000000); //
  97. Object[10] = CreateObject(16367,-3724.5000000,-9.0000000,1.0000000,0.0000000,0.0000000,0.0000000); //
  98. Object[11] = CreateObject(16367,-3724.5000000,-15.8000000,1.0000000,0.0000000,0.0000000,0.0000000); //
  99. Object[12] = CreateObject(16367,-3724.1992200,-2.0000000,1.0000000,0.0000000,0.0000000,0.0000000); //
  100. Object[13] = CreateObject(8838,-3707.8999000,-23.2000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  101. Object[14] = CreateObject(8838,-3707.8000500,-18.1000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  102. Object[15] = CreateObject(8838,-3707.8000500,-13.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  103. Object[16] = CreateObject(8838,-3707.6999500,-8.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  104. Object[17] = CreateObject(8838,-3707.6999500,-3.2000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  105. Object[18] = CreateObject(8838,-3707.6001000,1.8000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  106. Object[19] = CreateObject(8838,-3708.0000000,-28.3000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  107. Object[20] = CreateObject(3577,-3707.7004400,-14.1800100,1.3000000,0.0000000,0.0000000,0.0000000); //
  108. Object[21] = CreateObject(3796,-3698.5000000,-11.3000000,0.5000000,0.0000000,0.0000000,287.9999700); //
  109. Object[22] = CreateObject(8838,-3675.0000000,-28.3000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  110. Object[23] = CreateObject(8838,-3674.5000000,1.7998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  111. Object[24] = CreateObject(10789,-3676.6999500,-12.8000000,-2.0000000,0.0000000,0.0000000,0.0000000); //
  112. Object[25] = CreateObject(8838,-3641.0996100,1.7998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  113. Object[26] = CreateObject(8838,-3641.5996100,-28.2998000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  114. Object[27] = CreateObject(3458,-3622.5000000,-13.0000000,-1.0000000,0.0000000,0.0000000,269.9890100); //
  115. Object[28] = CreateObject(11088,-3699.5000000,48.5996100,6.4000000,0.0000000,0.0000000,0.0000000); //
  116. Object[29] = CreateObject(10829,-3668.1999500,37.4000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
  117. Object[30] = CreateObject(10829,-3714.6001000,75.1000000,1.1000000,0.0000000,0.0000000,0.0000000); //
  118. Object[31] = CreateObject(10829,-3714.6001000,65.3000000,1.1000000,0.0000000,0.0000000,0.0000000); //
  119. Object[32] = CreateObject(3458,-3668.3000500,17.6000000,-1.0000000,0.0000000,0.0000000,269.9999400); //
  120. Object[33] = CreateObject(974,-3697.8000500,59.2000000,3.8000000,0.0000000,0.0000000,0.0000000); //
  121. Object[34] = CreateObject(974,-3705.6999500,59.4000000,3.8000000,0.0000000,0.0000000,0.0000000); //
  122. Object[35] = CreateObject(974,-3684.3000500,59.4000000,3.8000000,0.0000000,0.0000000,0.0000000); //
  123. Object[36] = CreateObject(974,-3678.6999500,59.5000000,3.8000000,0.0000000,0.0000000,0.0000000); //
  124. Object[37] = CreateObject(3578,-3663.1001000,-20.6000000,1.4000000,0.0000000,0.0000000,90.0000000); //
  125. Object[38] = CreateObject(3578,-3663.1001000,-10.3000000,1.4000000,0.0000000,0.0000000,90.0000000); //
  126. Object[39] = CreateObject(3578,-3663.1001000,-5.9000000,1.4000000,0.0000000,0.0000000,90.0000000); //
  127. Object[40] = CreateObject(3578,-3624.5996100,-20.3994100,1.4000000,0.0000000,0.0000000,270.0000000); //
  128. Object[41] = CreateObject(3578,-3624.6001000,-10.1000000,1.4000000,0.0000000,0.0000000,270.0000000); //
  129. Object[42] = CreateObject(3578,-3624.6001000,-6.0000000,1.4000000,0.0000000,0.0000000,270.0000000); //
  130. Object[43] = CreateObject(2932,-3626.5000000,-4.4000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  131. Object[44] = CreateObject(2932,-3626.5000000,-11.5996100,-1.0000000,0.0000000,0.0000000,0.0000000); //
  132. Object[45] = CreateObject(2932,-3626.5000000,-18.7000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  133. Object[46] = CreateObject(2932,-3626.5000000,-23.0000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  134. Object[47] = CreateObject(2934,-3660.8999000,-22.4000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  135. Object[48] = CreateObject(2934,-3660.8999000,-15.6000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  136. Object[49] = CreateObject(2934,-3660.8999000,-8.9000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  137. Object[50] = CreateObject(2934,-3660.8999000,-4.1000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  138. Object[51] = CreateObject(2935,-3623.5000000,-32.4000000,-0.9000000,0.0000000,0.0000000,90.0000000); //
  139. Object[52] = CreateObject(3458,-3622.5000000,19.2000000,-1.0000000,0.0000000,0.0000000,269.9890100); //
  140. Object[53] = CreateObject(3865,-3629.3999000,37.9000000,2.0000000,0.0000000,0.0000000,267.9950000); //
  141. Object[54] = CreateObject(3865,-3638.6001000,38.3000000,2.0000000,0.0000000,0.0000000,267.9950000); //
  142. Object[55] = CreateObject(3865,-3647.5000000,38.7000000,2.0000000,0.0000000,0.0000000,267.9950000); //
  143. Object[56] = CreateObject(3865,-3655.1999500,39.1000000,2.0000000,0.0000000,0.0000000,267.9950000); //
  144. Object[57] = CreateObject(1503,-3661.2998000,39.5000000,-0.3000000,0.0000000,0.0000000,93.9990200); //
  145. Object[58] = CreateObject(2935,-3623.5000000,-35.5000000,-0.9000000,0.0000000,0.0000000,90.0000000); //
  146. Object[59] = CreateObject(18245,-3622.0000000,74.0000000,3.3000000,0.0000000,0.0000000,87.7500000); //
  147. Object[60] = CreateObject(3776,-3736.5000000,-59.2000000,8.5000000,0.0000000,0.0000000,0.0000000); //
  148. Object[61] = CreateObject(3776,-3735.5000000,36.9000000,8.3000000,0.0000000,0.0000000,0.0000000); //
  149. Object[62] = CreateObject(3776,-3760.5000000,-38.1000000,9.5000000,0.0000000,0.0000000,0.0000000); //
  150. Object[63] = CreateObject(3776,-3760.0000000,17.8000000,8.3000000,0.0000000,0.0000000,0.0000000); //
  151. Object[64] = CreateObject(10166,-3678.6091300,-92.5729600,-10.8000000,0.0000000,349.9969500,29.9981700); //
  152. Object[65] = CreateObject(901,-3641.0000000,-48.2998000,-1.5000000,0.0000000,0.0000000,0.0000000); //
  153. Object[66] = CreateObject(10166,-3663.6001000,-110.3000000,-11.3000000,0.0000000,349.9969500,29.9981700); //
  154. Object[67] = CreateObject(901,-3630.6999500,-65.2000000,-1.5000000,0.0000000,0.0000000,0.0000000); //
  155. Object[68] = CreateObject(901,-3633.3000500,-46.7000000,-2.3000000,0.0000000,0.0000000,0.0000000); //
  156. Object[69] = CreateObject(901,-3626.9914600,-42.9819400,-2.3000000,0.0000000,0.0000000,0.0000000); //
  157. Object[70] = CreateObject(901,-3623.1001000,-41.3000000,-2.3000000,0.0000000,0.0000000,36.0000000); //
  158. Object[71] = CreateObject(901,-3630.3000500,-55.1000000,-2.3000000,0.0000000,0.0000000,0.0000000); //
  159. Object[72] = CreateObject(8356,-3801.7998000,1.0996100,15.6000000,0.0000000,270.0000000,0.0000000); //
  160. Object[73] = CreateObject(17011,-3691.1999500,-33.1000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
  161. Object[74] = CreateObject(17011,-3705.8000500,-33.1000000,-2.5000000,0.0000000,0.0000000,0.0000000); //
  162. Object[75] = CreateObject(8356,-3707.6999500,-92.2000000,15.6000000,0.0000000,270.0000000,89.9993600); //
  163. Object[76] = CreateObject(8356,-3607.3999000,1.2000000,15.6000000,0.0000000,270.0000000,175.9939600); //
  164. Object[77] = CreateObject(8356,-3709.2998000,91.7998000,15.6000000,0.0000000,270.0000000,267.9950000); //
  165. Object[78] = CreateObject(8356,-3684.3999000,92.3000000,15.6000000,0.0000000,270.0000000,267.9949600); //
  166. Object[79] = CreateObject(8356,-3684.3999000,92.3000000,-22.7000000,0.0000000,270.0000000,267.9949300); //
  167. Object[80] = CreateObject(8356,-3684.3999000,92.3000000,-62.3000000,0.0000000,270.0000000,267.9950000); //
  168. Object[81] = CreateObject(8356,-3607.3999000,1.2000000,-22.5000000,0.0000000,270.0000000,175.9899900); //
  169. Object[82] = CreateObject(8356,-3607.3994100,1.1992200,-51.8000000,0.0000000,270.0000000,175.9899900); //
  170. Object[83] = CreateObject(8356,-3707.6999500,-92.2000000,-19.6000000,0.0000000,270.0000000,89.9944800); //
  171. Object[84] = CreateObject(8356,-3707.6999500,-92.2000000,-56.6000000,0.0000000,270.0000000,89.9945100); //
  172. Object[85] = CreateObject(8356,-3801.8000500,1.1000000,-22.9000000,0.0000000,270.0000000,0.0000000); //
  173. Object[86] = CreateObject(8356,-3801.8000500,1.1000000,-50.9000000,0.0000000,270.0000000,0.0000000); //
  174. Object[87] = CreateObject(8356,-3709.3000500,91.8000000,-21.9000000,0.0000000,270.0000000,267.9949300); //
  175. Object[88] = CreateObject(8356,-3709.6001000,92.2000000,-51.4000000,0.0000000,270.0000000,267.9950000); //
  176. Object[89] = CreateObject(17015,-3671.3999000,-90.3000000,33.6000000,0.0000000,0.0000000,0.0000000); //
  177. Object[90] = CreateObject(17022,-3604.8999000,37.0000000,29.6000000,0.0000000,0.0000000,0.0000000); //
  178. Object[91] = CreateObject(17016,-3720.1999500,91.8000000,9.8000000,0.0000000,0.0000000,0.0000000); //
  179. Object[92] = CreateObject(17016,-3745.3000500,88.8000000,9.8000000,0.0000000,0.0000000,34.0000000); //
  180. Object[93] = CreateObject(17015,-3802.0000000,-31.6000000,11.0000000,0.0000000,0.0000000,0.0000000); //
  181. Object[94] = CreateObject(17015,-3802.3000500,-38.1000000,15.8000000,0.0000000,0.0000000,46.0000000); //
  182. Object[95] = CreateObject(3585,-3698.6001000,-21.0000000,2.3000000,0.0000000,0.0000000,334.0000000); //
  183. Object[96] = CreateObject(703,-3641.8994100,-15.5000000,-1.0000000,0.0000000,0.0000000,0.0000000); //
  184. Object[97] = CreateObject(3631,-3686.8000500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
  185. Object[98] = CreateObject(3631,-3694.3000500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
  186. Object[99] = CreateObject(3631,-3701.6999500,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
  187. Object[100] = CreateObject(3631,-3708.3999000,-38.4000000,0.2000000,0.0000000,0.0000000,0.0000000); //
  188. Object[101] = CreateObject(901,-3683.3000500,-35.1000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
  189. Object[102] = CreateObject(901,-3698.8000500,-35.6000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
  190. Object[103] = CreateObject(901,-3703.0000000,-35.7000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
  191. Object[104] = CreateObject(901,-3708.0000000,-36.2000000,-3.6000000,0.0000000,0.0000000,0.0000000); //
  192. Object[105] = CreateObject(12990,-3669.0000000,-45.0000000,0.6000000,0.0000000,0.0000000,0.0000000); //
  193. Object[106] = CreateObject(703,-3647.8999000,-68.8000000,1.8000000,0.0000000,0.0000000,0.0000000); //
  194. Object[107] = CreateObject(11495,-3636.1001000,-1.6000000,0.4000000,0.0000000,0.0000000,269.7500000); //
  195. Object[108] = CreateObject(11495,-3651.8000500,-1.5000000,0.4000000,0.0000000,0.0000000,269.7473100); //
  196. Object[109] = CreateObject(11495,-3636.1001000,-25.2000000,0.4000000,0.0000000,0.0000000,91.4972800); //
  197. Object[110] = CreateObject(11495,-3652.1999500,-25.6000000,0.4000000,0.0000000,0.0000000,91.4941400); //
  198. Object[111] = CreateObject(1503,-3661.3999000,-25.7000000,0.6000000,0.0000000,0.0000000,1.9990200); //
  199. Object[112] = CreateObject(1503,-3661.3999000,-21.3000000,0.6000000,0.0000000,0.0000000,179.9940200); //
  200. Object[113] = CreateObject(1503,-3661.1001000,-1.8000000,0.6000000,0.0000000,0.0000000,179.9890100); //
  201. Object[114] = CreateObject(1503,-3661.1001000,-6.0000000,0.6000000,0.0000000,0.0000000,1.9890100); //
  202. Object[115] = CreateObject(1503,-3626.3000500,-5.9000000,0.6000000,0.0000000,0.0000000,1.9885300); //
  203. Object[116] = CreateObject(1503,-3626.1999500,-1.6000000,0.6000000,0.0000000,0.0000000,179.9890100); //
  204. Object[117] = CreateObject(1503,-3626.6001000,-21.8000000,0.6000000,0.0000000,0.0000000,179.9890100); //
  205. Object[118] = CreateObject(1503,-3626.6001000,-25.9000000,0.6000000,0.0000000,0.0000000,1.9885300); //
  206. Object[119] = CreateObject(2991,-3654.3999000,-15.3000000,0.0000000,0.0000000,0.0000000,64.0000000); //
  207. Object[120] = CreateObject(2991,-3647.8000500,-22.1000000,0.0000000,0.0000000,0.0000000,135.9953600); //
  208. Object[121] = CreateObject(2991,-3649.3999000,-7.1000000,0.0000000,0.0000000,0.0000000,181.9942500); //
  209. Object[122] = CreateObject(2991,-3632.3999000,-9.7000000,0.0000000,0.0000000,0.0000000,219.9942500); //
  210. Object[123] = CreateObject(2991,-3641.5000000,18.1000000,0.0000000,0.0000000,0.0000000,217.9890300); //
  211. Object[124] = CreateObject(2991,-3651.6999500,12.0000000,0.0000000,0.0000000,0.0000000,293.9852300); //
  212. Object[125] = CreateObject(2991,-3647.6999500,22.4000000,0.0000000,0.0000000,0.0000000,359.9831500); //
  213. Object[126] = CreateObject(922,-3631.1999500,14.9000000,0.8000000,0.0000000,0.0000000,58.0000000); //
  214. Object[127] = CreateObject(3378,-3649.6001000,-39.2000000,-0.8000000,0.0000000,0.0000000,110.0000000); //
  215. Object[128] = CreateObject(18260,-3678.9824200,1.5732400,1.6271800,0.0000000,0.0000000,0.0000000); //
  216. Object[129] = CreateObject(1431,-3638.3999000,10.4000000,0.0000000,0.0000000,0.0000000,0.0000000); //
  217. Object[130] = CreateObject(2567,-3648.3000500,19.5000000,-0.3000000,72.9395800,290.0285000,69.1274700); //
  218. Object[131] = CreateObject(3569,-3648.5000000,49.9000000,-1.5000000,0.0000000,0.0000000,233.9966700); //
  219. Object[132] = CreateObject(3594,-3633.1001000,-18.3000000,0.0000000,0.0000000,0.0000000,80.0000000); //
  220. Object[133] = CreateObject(11443,-3659.1001000,20.7000000,0.0000000,0.0000000,0.0000000,60.0000000); //
  221. Object[134] = CreateObject(11458,-3635.8000500,28.8000000,0.0000000,0.0000000,0.0000000,38.0000000); //
  222. Object[135] = CreateObject(11420,-3711.6001000,-55.2000000,1.0000000,0.0000000,0.0000000,35.0000000); //
  223. Object[136] = CreateObject(9237,-3712.1001000,-55.9000000,9.6000000,0.0000000,0.0000000,243.2500300); //
  224. Object[137] = CreateObject(12990,-3685.6001000,-55.3000000,0.6000000,0.0000000,0.0000000,272.0000000); //
  225. Object[138] = CreateObject(1503,-3669.6999500,30.4000000,-0.3000000,0.0000000,0.0000000,357.9990200); //
  226. Object[139] = CreateObject(1503,-3667.1999500,30.3000000,-0.3000000,0.0000000,0.0000000,357.9950000); //
  227. }
  228. #endif
  229.  
  230. //==============================================================================
  231. // Basic vars
  232. //==============================================================================
  233.  
  234. new bool:MissionStarted;
  235. new bool:ObjectiveStarted;
  236. new bool:MissionCancelled;
  237.  
  238. native IsValidVehicle(vehicleid);
  239.  
  240. enum playersdata {
  241. UserName[MAX_PLAYER_NAME],
  242. Kills,
  243. bool:Counted,
  244. PlayerClassID,
  245. bool:AllowedToSpawn
  246. };
  247. new PlayerMissionInfo[MAX_PLAYERS][playersdata];
  248.  
  249. new PlayersAlive;
  250. new GMTimer;
  251. new GMSec;
  252. new RandomColor;
  253. new MaxSpawns;
  254.  
  255. //==============================================================================
  256. // Basic script
  257. //==============================================================================
  258.  
  259. main()
  260. {
  261. print("----------------------------------");
  262. print(" Mission: "MISSION_NAME" started.");
  263. print("----------------------------------\n");
  264. }
  265.  
  266. public OnGameModeInit()
  267. {
  268. MissionStarted= true;
  269. MaxSpawns=sizeof(gSpawns);
  270. GMTimer = SetTimer("GMClock",1000,true);
  271. RandomColor=random(2);
  272.  
  273. #if MAX_MAP_OBJECTS != 0
  274. CreateMap();
  275. #endif
  276.  
  277. for(new i=0; i<sizeof(PedInfo); i++)
  278. {
  279. 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);
  280. }
  281.  
  282. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  283. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  284. return 1;
  285. }
  286.  
  287. public OnGameModeExit()
  288. {
  289. #if MAX_MAP_OBJECTS != 0
  290. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  291. #endif
  292. for(new i=0; i<MAX_VEHICLES; i++)
  293. {
  294. DestroyVehicle(i);
  295. }
  296. return 1;
  297. }
  298.  
  299. FUNCTION GMClock()
  300. {
  301. GMSec++;
  302. switch(ObjectiveStarted)
  303. {
  304. case false:
  305. {
  306. switch(GMSec)
  307. {
  308. case 1:
  309. {
  310. new string[100];
  311. format(string,sizeof(string),"The last man standing deathmatch will start in %d seconds.",START_TIME);
  312. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
  313. }
  314. case START_TIME-3:
  315. {
  316. PlaySoundForAll(1056);
  317. GameTextForAll("~r~~h~3",1000,3);
  318. }
  319. case START_TIME-2:
  320. {
  321. PlaySoundForAll(1056);
  322. GameTextForAll("~r~~h~~h~2",1000,3);
  323. }
  324. case START_TIME-1:
  325. {
  326. PlaySoundForAll(1056);
  327. GameTextForAll("~y~1",1000,3);
  328. }
  329. case START_TIME:
  330. {
  331. PlaySoundForAll(1057);
  332. if(PlayersAlive > 1)
  333. {
  334. CallRemoteFunction("StartMission","");
  335. GameTextForAll("~r~Fight!",1000,3);
  336. ObjectiveStarted= true;
  337. ToggleControllable(true);
  338. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has started. KILL OR BE KILLED!");
  339. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last man standing deathmatch has started. KILL OR BE KILLED!",0);
  340. }
  341. else CallRemoteFunction("EndMission","");
  342. KillTimer(GMTimer);
  343. }
  344. }
  345. }
  346. }
  347. }
  348.  
  349. public OnPlayerDisconnect(playerid, reason)
  350. {
  351. if(PlayerMissionInfo[playerid][Counted])
  352. {
  353. PlayersAlive --;
  354. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  355. PlayerMissionInfo[playerid][Counted]= false;
  356. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  357. }
  358. return 1;
  359. }
  360.  
  361. public OnPlayerRequestClass(playerid,classid)
  362. {
  363. SetPlayerPos(playerid,CLASS_POSTION);
  364. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  365. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  366. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  367.  
  368. CallRemoteFunction("LmsHide","i",playerid);
  369. CallRemoteFunction("ShowClassSelection","iisiii",playerid, 2,"Deathmatcher", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  370. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  371.  
  372. if(PlayerMissionInfo[playerid][Counted])
  373. {
  374. PlayersAlive --;
  375. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  376. PlayerMissionInfo[playerid][Counted]= false;
  377. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  378. }
  379. return 1;
  380. }
  381.  
  382. public OnPlayerSpawn(playerid)
  383. {
  384. new string[124];
  385. CallRemoteFunction("LmsShow","i",playerid);
  386. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  387. SetPlayerHealth(playerid,Health);
  388.  
  389. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
  390. {
  391. back:
  392. new skin=random(312);
  393. if(skin == 74 || skin < 1) goto back;
  394. SetPlayerSkin(playerid,skin);
  395. }
  396. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  397. new rand=random(MaxSpawns);
  398. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  399. {
  400. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  401. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  402. SetPlayerTeam(playerid,NO_TEAM);
  403. SetPlayerColor(playerid,COLOR_GREY);
  404. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  405. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  406. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  407.  
  408. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  409. {
  410. if(PlayerMissionInfo[playerid][Counted])
  411. {
  412. PlayersAlive --;
  413. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  414. PlayerMissionInfo[playerid][Counted]= false;
  415. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  416. }
  417. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  418. SetPlayerVirtualWorld(playerid,2);
  419. }
  420. else
  421. {
  422. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  423. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  424. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  425. SetPlayerTeam(playerid,NO_TEAM);
  426. SetPlayerColor(playerid,(RandomColor == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
  427. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  428. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"Your mission is to kill other players and survive till the last.",2000);
  429. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"~r~~h~Eliminate ~w~others!",2000);
  430. if(!ObjectiveStarted)
  431. {
  432. format(string,sizeof(string),""SERVER_KEY_MSG" The last man standing deathmatch will start in %d seconds.",(GMSec-START_TIME)*-1);
  433. SendClientMessage(playerid,COLOR_SERVER,string);
  434. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  435. TogglePlayerControllable(playerid,false);
  436. }
  437. if(!PlayerMissionInfo[playerid][Counted])
  438. {
  439. PlayersAlive++;
  440. PlayerMissionInfo[playerid][Counted]= true;
  441. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  442. }
  443. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  444. }
  445. }
  446. else CallRemoteFunction("SetJailed","d",playerid);
  447. return 1;
  448. }
  449.  
  450.  
  451. public OnPlayerDeath(playerid, killerid, reason)
  452. {
  453. if(!MissionStarted)
  454. {
  455. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  456. return 1;
  457. }
  458. if(killerid != INVALID_PLAYER_ID)
  459. {
  460. PlayerMissionInfo[killerid][Kills]++;
  461. SetPlayerScore(killerid,PlayerMissionInfo[killerid][Kills]);
  462. }
  463. if(ObjectiveStarted && PlayerMissionInfo[playerid][Counted])
  464. {
  465. GameTextForPlayer(playerid,"~R~MISSION FAILED~w~!",3000,3);
  466. CallRemoteFunction("PlayerMissionStats","dd",playerid,1);
  467. }
  468. if(PlayerMissionInfo[playerid][Counted])
  469. {
  470. PlayersAlive--;
  471. PlayerMissionInfo[playerid][Counted]= false;
  472. }
  473. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  474. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  475. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  476. return 1;
  477. }
  478.  
  479. FUNCTION EndTheMission()
  480. {
  481. if(!MissionStarted) return 1;
  482. MissionStarted= false;
  483. KillTimer(GMTimer);
  484. if(!MissionCancelled && ObjectiveStarted)
  485. {
  486. new string[124];
  487. new winner = INVALID_PLAYER_ID;
  488. new bool:MoreThan1;
  489. if(PlayersAlive == 1)
  490. {
  491. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  492. {
  493. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  494. {
  495. winner=i;
  496. }
  497. }
  498.  
  499. }
  500. else if(PlayersAlive > 1)
  501. {
  502. new MostKills;
  503. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  504. {
  505. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  506. {
  507. if(PlayerMissionInfo[MostKills][Kills] < PlayerMissionInfo[i][Kills])
  508. {
  509. MostKills=i;
  510. MoreThan1=false;
  511. continue;
  512. }
  513. if(PlayerMissionInfo[MostKills][Kills] == PlayerMissionInfo[i][Kills])
  514. {
  515. MoreThan1= true;
  516. }
  517. }
  518. }
  519. new Float:TopHealth;
  520. new Float:OtherHealth;
  521. if(MoreThan1)
  522. {
  523. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  524. {
  525. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  526. {
  527. if(PlayerMissionInfo[winner][Kills] == PlayerMissionInfo[i][Kills])
  528. {
  529. GetPlayerHealth(winner,TopHealth);
  530. GetPlayerHealth(i,OtherHealth);
  531. if(OtherHealth > TopHealth)
  532. {
  533. winner=i;
  534. MoreThan1= false;
  535. continue;
  536. }
  537. else if(OtherHealth == TopHealth)
  538. {
  539. MoreThan1= true;
  540. }
  541. }
  542. }
  543. }
  544. }
  545. if(MoreThan1)
  546. {
  547. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.");
  548. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.",IRC_SERVER_COLOR);
  549. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  550. {
  551. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  552. {
  553. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  554. }
  555. }
  556. }
  557. }
  558. if(PlayersAlive > 0 && !MoreThan1 && winner != INVALID_PLAYER_ID)
  559. {
  560. new amount= (PlayerMissionInfo[winner][Kills]*1000)+(10000);
  561. format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has won the last man standing deathmatch. Reward: $%d + Token.",PlayerMissionInfo[winner][UserName],winner,amount);
  562. CallRemoteFunction("GivePlayerToken","dd",winner,1);
  563. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  564. SendClientMessageToAll(COLOR_SERVER,string);
  565. CallRemoteFunction("GivePlayerCash","ii",winner,amount);
  566. CallRemoteFunction("PlayerMissionStats","dd",winner,0);
  567. CallRemoteFunction("PlayerMissionStats","dd",winner,12);
  568. CallRemoteFunction("CheckForBetWinners","d",winner);
  569. }
  570. }
  571. else
  572. {
  573. PlaySoundForAll(1058);
  574. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  575. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  576. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  577. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  578. }
  579. return 1;
  580. }
  581.  
  582. //==============================================================================
  583. // Mission functions
  584. //==============================================================================
  585.  
  586. PlaySoundForAll(sound)
  587. {
  588. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  589. {
  590. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  591. }
  592. }
  593.  
  594.  
  595. ToggleControllable(control)
  596. {
  597. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  598. {
  599. if(IsPlayerConnected(i))
  600. {
  601. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  602. }
  603. }
  604. return 1;
  605. }
  606.  
  607. //==============================================================================
  608. // Important functions required
  609. //==============================================================================
  610.  
  611. FUNCTION CancelTheMission()
  612. {
  613. MissionCancelled= true;
  614. return 1;
  615. }
  616.  
  617. FUNCTION OnPlayerNameRecieve(playerid,name[])
  618. {
  619. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  620. return 1;
  621. }
  622.  
  623. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  624.  
  625. FUNCTION OnPlayerRespawned(playerid)
  626. {
  627. if(PlayerMissionInfo[playerid][Counted])
  628. {
  629. PlayersAlive--;
  630. PlayerMissionInfo[playerid][Counted]= false;
  631. }
  632. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  633. return 1;
  634. }
Add Comment
Please, Sign In to add comment