Bulletje

Untitled

Jan 21st, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.08 KB | None | 0 0
  1. /*
  2. Script by: Bullet
  3. Map by: Louay
  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 "Entaglement"
  24. #define Health 99.0
  25. #define VEHICLE_HEALTH 999.0
  26. #define CLASS_POSTION 4043.8320,-2773.2959,8.0844
  27. #define CLASS_CAMERA 4037.2986,-2779.1963,8.0844
  28. #define CLASS_FACING_AGNLE 133.7005
  29. #define MAX_MAP_OBJECTS 149
  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, 582.6169,642.9036,3.4126,289.7953,0,0, WEAPON_DEAGLE, 180, WEAPON_AK47, 300, 0, 0}
  56. };
  57.  
  58. new Float:gSpawns[][] =
  59. {
  60. {4123.2554,-2801.0217,7.8656,87.8267},
  61. {4094.2642,-2807.1353,7.8656,275.4918},
  62. {4107.4731,-2786.7212,7.8656,53.5242},
  63. {4083.5488,-2790.3008,7.8656,140.6109},
  64. {4086.7100,-2806.5330,7.8656,80.4086},
  65. {4049.1086,-2805.5913,8.0844,262.5590},
  66. {4054.2512,-2794.1174,8.0844,294.2686},
  67. {4038.5398,-2805.7212,8.0844,23.1933},
  68. {4007.5396,-2804.9507,7.8656,276.3456},
  69. {4033.4648,-2779.8105,8.0844,52.1456},
  70. {4017.0457,-2788.2197,7.8656,2.2833},
  71. {4016.5098,-2737.0593,7.8656,273.5882},
  72. {4053.0820,-2750.6714,7.8656,236.1340},
  73. {4087.6719,-2729.1831,7.8656,320.0037},
  74. {4063.7219,-2732.0986,7.8656,111.1989},
  75. {4008.0208,-2714.7810,7.8656,273.3583},
  76. {4050.0537,-2711.2783,7.8656,92.7507},
  77. {4042.3057,-2727.4988,7.8656,346.8222},
  78. {4063.1125,-2712.7764,7.8656,284.3221},
  79. {4112.5859,-2712.8970,7.8656,140.0203},
  80. {4093.3088,-2764.4858,7.8656,256.9045}
  81. };
  82.  
  83. #if MAX_MAP_OBJECTS != 0
  84. new Object[MAX_MAP_OBJECTS];
  85.  
  86. CreateMap()
  87. {
  88. Object[0] = CreateObject(2934,4124.2998000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  89. Object[1] = CreateObject(2934,4117.1001000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  90. Object[2] = CreateObject(2934,4102.8999000,-2797.8000500,11.0000000,0.0000000,0.0000000,270.0000000); //
  91. Object[3] = CreateObject(2934,4096.1001000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  92. Object[4] = CreateObject(2934,4089.1001000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  93. Object[5] = CreateObject(2934,4082.0000000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  94. Object[6] = CreateObject(2934,4068.3000500,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  95. Object[7] = CreateObject(2934,4061.5000000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  96. Object[8] = CreateObject(2934,4054.3000500,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  97. Object[9] = CreateObject(2934,4047.3000500,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  98. Object[10] = CreateObject(2934,4040.3000500,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  99. Object[11] = CreateObject(2934,4124.0000000,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  100. Object[12] = CreateObject(2934,4116.8999000,-2797.8000500,11.0000000,0.0000000,0.0000000,270.0000000); //
  101. Object[13] = CreateObject(2934,4102.8999000,-2797.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  102. Object[14] = CreateObject(2934,4109.7002000,-2797.6999500,11.0000000,0.0000000,0.0000000,270.0000000); //
  103. Object[15] = CreateObject(2934,4095.6999500,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  104. Object[16] = CreateObject(2934,4088.5000000,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  105. Object[17] = CreateObject(2934,4081.5000000,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  106. Object[18] = CreateObject(2934,4074.3999000,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  107. Object[19] = CreateObject(2934,4067.1999500,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  108. Object[20] = CreateObject(2934,4060.0000000,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  109. Object[21] = CreateObject(2934,4052.8000500,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  110. Object[22] = CreateObject(2934,4045.6999500,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  111. Object[23] = CreateObject(2934,4040.1999500,-2797.8000500,11.1000000,0.0000000,0.0000000,270.0000000); //
  112. Object[24] = CreateObject(2934,4042.3999000,-2800.3999000,8.2000000,0.0000000,0.0000000,180.0000000); //
  113. Object[25] = CreateObject(2934,4042.3999000,-2806.1999500,8.2000000,0.0000000,0.0000000,179.9950000); //
  114. Object[26] = CreateObject(2934,4042.4003900,-2806.2002000,11.1000000,0.0000000,0.0000000,179.9950000); //
  115. Object[27] = CreateObject(2934,4042.4003900,-2800.3994100,11.1000000,0.0000000,0.0000000,179.9950000); //
  116. Object[28] = CreateObject(2934,4022.1001000,-2796.3000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  117. Object[29] = CreateObject(2934,4015.1001000,-2796.3000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  118. Object[30] = CreateObject(2934,4008.1001000,-2796.3000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  119. Object[31] = CreateObject(2934,4034.1001000,-2806.1999500,8.2000000,0.0000000,0.0000000,179.9950000); //
  120. Object[32] = CreateObject(2934,4034.1005900,-2806.2002000,11.0000000,0.0000000,0.0000000,179.9950000); //
  121. Object[33] = CreateObject(2934,4022.1005900,-2796.3000500,11.0000000,0.0000000,0.0000000,270.0000000); //
  122. Object[34] = CreateObject(2934,4015.1005900,-2796.3000500,11.0000000,0.0000000,0.0000000,270.0000000); //
  123. Object[35] = CreateObject(2934,4008.1005900,-2796.3000500,11.0000000,0.0000000,0.0000000,270.0000000); //
  124. Object[36] = CreateObject(2934,4024.1001000,-2801.3999000,8.2000000,0.0000000,0.0000000,180.0000000); //
  125. Object[37] = CreateObject(2934,4024.1005900,-2801.3999000,11.0000000,0.0000000,0.0000000,179.9950000); //
  126. Object[38] = CreateObject(2932,4117.2002000,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  127. Object[39] = CreateObject(2932,4102.8999000,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  128. Object[40] = CreateObject(2932,4095.6999500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  129. Object[41] = CreateObject(2932,4088.6999500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  130. Object[42] = CreateObject(2932,4081.6999500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  131. Object[43] = CreateObject(2932,4067.5000000,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  132. Object[44] = CreateObject(2932,4060.3000500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  133. Object[45] = CreateObject(2932,4053.3000500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  134. Object[46] = CreateObject(2932,4046.3000500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  135. Object[47] = CreateObject(2932,4039.3000500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  136. Object[48] = CreateObject(2935,4115.2002000,-2792.6001000,11.0000000,0.0000000,0.0000000,0.0000000); //
  137. Object[49] = CreateObject(2935,4115.2002000,-2785.6001000,11.0000000,0.0000000,0.0000000,0.0000000); //
  138. Object[50] = CreateObject(2935,4115.2002000,-2778.5000000,8.3000000,0.0000000,0.0000000,0.0000000); //
  139. Object[51] = CreateObject(2935,4115.2002000,-2771.3999000,8.2000000,0.0000000,0.0000000,0.0000000); //
  140. Object[52] = CreateObject(2935,4115.2002000,-2764.3999000,8.3000000,0.0000000,0.0000000,0.0000000); //
  141. Object[53] = CreateObject(2935,4115.2002000,-2750.5000000,11.2000000,0.0000000,0.0000000,0.0000000); //
  142. Object[54] = CreateObject(2935,4115.2002000,-2743.5000000,11.0000000,0.0000000,0.0000000,0.0000000); //
  143. Object[55] = CreateObject(2935,4115.2002000,-2743.5000000,8.3000000,0.0000000,0.0000000,0.0000000); //
  144. Object[56] = CreateObject(2935,4115.2002000,-2736.3000500,8.3000000,0.0000000,0.0000000,0.0000000); //
  145. Object[57] = CreateObject(2935,4115.2002000,-2785.6001000,8.2000000,0.0000000,0.0000000,0.0000000); //
  146. Object[58] = CreateObject(2935,4115.2002000,-2778.5000000,11.2000000,0.0000000,0.0000000,0.0000000); //
  147. Object[59] = CreateObject(2935,4115.2002000,-2792.6001000,8.3000000,0.0000000,0.0000000,0.0000000); //
  148. Object[60] = CreateObject(2935,4115.2002000,-2771.3999000,11.0000000,0.0000000,0.0000000,0.0000000); //
  149. Object[61] = CreateObject(2935,4115.2002000,-2764.3999000,11.0000000,0.0000000,0.0000000,0.0000000); //
  150. Object[62] = CreateObject(2935,4115.2002000,-2757.3999000,8.3000000,0.0000000,0.0000000,0.0000000); //
  151. Object[63] = CreateObject(2935,4115.2002000,-2757.3999000,11.0000000,0.0000000,0.0000000,0.0000000); //
  152. Object[64] = CreateObject(2935,4115.2002000,-2750.3999000,8.3000000,0.0000000,0.0000000,0.0000000); //
  153. Object[65] = CreateObject(2935,4115.2002000,-2736.6999500,11.0000000,0.0000000,0.0000000,0.0000000); //
  154. Object[66] = CreateObject(2935,4115.2002000,-2721.8999000,8.3000000,0.0000000,0.0000000,0.0000000); //
  155. Object[67] = CreateObject(2935,4115.2002000,-2729.1001000,8.3000000,0.0000000,0.0000000,0.0000000); //
  156. Object[68] = CreateObject(2932,4117.2002000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  157. Object[69] = CreateObject(2932,4110.0000000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  158. Object[70] = CreateObject(2932,4102.9003900,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  159. Object[71] = CreateObject(2932,4095.7002000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  160. Object[72] = CreateObject(2932,4088.7002000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  161. Object[73] = CreateObject(2932,4081.8999000,-2718.0000000,11.1000000,0.0000000,0.0000000,90.0000000); //
  162. Object[74] = CreateObject(2932,4074.7002000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  163. Object[75] = CreateObject(2932,4067.5000000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  164. Object[76] = CreateObject(2932,4060.2998000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  165. Object[77] = CreateObject(2932,4053.2998000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  166. Object[78] = CreateObject(2932,4046.2998000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  167. Object[79] = CreateObject(2932,4039.2998000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  168. Object[80] = CreateObject(2932,4121.5000000,-2713.3000500,8.2000000,0.0000000,0.0000000,0.0000000); //
  169. Object[81] = CreateObject(2932,4121.5000000,-2713.3000500,11.0000000,0.0000000,0.0000000,0.0000000); //
  170. Object[82] = CreateObject(2932,4101.5000000,-2713.5000000,8.2000000,0.0000000,0.0000000,0.0000000); //
  171. Object[83] = CreateObject(2932,4101.5000000,-2713.5000000,11.0000000,0.0000000,0.0000000,0.0000000); //
  172. Object[84] = CreateObject(2932,4055.3999000,-2713.3999000,8.2000000,0.0000000,0.0000000,0.0000000); //
  173. Object[85] = CreateObject(2932,4055.4003900,-2713.3994100,11.0000000,0.0000000,0.0000000,0.0000000); //
  174. Object[86] = CreateObject(2935,4115.2002000,-2722.8000500,11.2000000,0.0000000,0.0000000,358.0000000); //
  175. Object[87] = CreateObject(2935,4115.2002000,-2729.6001000,11.2000000,0.0000000,0.0000000,180.0000000); //
  176. Object[88] = CreateObject(2934,4127.6001000,-2806.1999500,11.0000000,0.0000000,0.0000000,180.0000000); //
  177. Object[89] = CreateObject(2934,4127.6001000,-2800.0000000,8.2000000,0.0000000,0.0000000,179.9950000); //
  178. Object[90] = CreateObject(2934,4127.6001000,-2800.0000000,11.0000000,0.0000000,0.0000000,179.9950000); //
  179. Object[91] = CreateObject(2934,4127.6001000,-2806.2002000,8.2000000,0.0000000,0.0000000,179.9950000); //
  180. Object[92] = CreateObject(2932,4030.6001000,-2713.1999500,8.2000000,0.0000000,0.0000000,0.0000000); //
  181. Object[93] = CreateObject(2932,4030.6005900,-2713.2002000,11.0000000,0.0000000,0.0000000,0.0000000); //
  182. Object[94] = CreateObject(2932,4008.1999500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  183. Object[95] = CreateObject(2932,4008.2002000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  184. Object[96] = CreateObject(2932,4015.3000500,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  185. Object[97] = CreateObject(2932,4015.2998000,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  186. Object[98] = CreateObject(2932,4022.1001000,-2718.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  187. Object[99] = CreateObject(2932,4022.1005900,-2718.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  188. Object[100] = CreateObject(2932,4015.3000500,-2711.5000000,8.2000000,0.0000000,0.0000000,270.0000000); //
  189. Object[101] = CreateObject(2932,4015.2998000,-2711.5000000,11.0000000,0.0000000,0.0000000,270.0000000); //
  190. Object[102] = CreateObject(2932,4046.5000000,-2715.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  191. Object[103] = CreateObject(2932,4046.5000000,-2715.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  192. Object[104] = CreateObject(2932,4088.6001000,-2715.0000000,8.2000000,0.0000000,0.0000000,90.0000000); //
  193. Object[105] = CreateObject(2932,4088.6005900,-2715.0000000,11.0000000,0.0000000,0.0000000,90.0000000); //
  194. Object[106] = CreateObject(2934,4054.6001000,-2801.0000000,8.2000000,0.0000000,0.0000000,270.0000000); //
  195. Object[107] = CreateObject(2934,4054.6005900,-2801.0000000,11.0000000,0.0000000,0.0000000,270.0000000); //
  196. Object[108] = CreateObject(2934,4089.5000000,-2806.0000000,8.2000000,0.0000000,0.0000000,180.0000000); //
  197. Object[109] = CreateObject(2934,4089.3999000,-2806.0000000,11.0000000,0.0000000,0.0000000,179.9950000); //
  198. Object[110] = CreateObject(2934,4089.1001000,-2800.8000500,8.2000000,0.0000000,0.0000000,270.0000000); //
  199. Object[111] = CreateObject(2934,4089.1005900,-2800.7998000,11.0000000,0.0000000,0.0000000,270.0000000); //
  200. Object[112] = CreateObject(2934,4067.6999500,-2802.8000500,8.2000000,0.0000000,0.0000000,180.0000000); //
  201. Object[113] = CreateObject(2934,4067.7002000,-2802.7998000,11.0000000,0.0000000,0.0000000,179.9950000); //
  202. Object[114] = CreateObject(2934,4115.1001000,-2805.8999000,8.2000000,0.0000000,0.0000000,180.0000000); //
  203. Object[115] = CreateObject(2934,4115.1005900,-2805.8994100,11.0000000,0.0000000,0.0000000,179.9950000); //
  204. Object[116] = CreateObject(3575,4055.8000500,-2725.3000500,9.6000000,0.0000000,0.0000000,90.0000000); //
  205. Object[117] = CreateObject(3575,4055.7998000,-2725.2998000,12.3000000,0.0000000,0.0000000,90.0000000); //
  206. Object[118] = CreateObject(7025,4095.5000000,-2791.5000000,10.3000000,0.0000000,0.0000000,0.0000000); //
  207. Object[119] = CreateObject(7025,4095.5000000,-2791.5000000,13.7000000,0.0000000,0.0000000,0.0000000); //
  208. Object[120] = CreateObject(7102,4020.1001000,-2755.1001000,10.3000000,0.0000000,0.0000000,0.0000000); //
  209. Object[121] = CreateObject(7102,4020.1005900,-2755.0996100,14.0000000,0.0000000,0.0000000,0.0000000); //
  210. Object[122] = CreateObject(2669,4011.8999000,-2790.3000500,8.2000000,0.0000000,0.0000000,0.0000000); //
  211. Object[123] = CreateObject(2932,4011.8999000,-2791.1001000,11.0000000,0.0000000,0.0000000,0.0000000); //
  212. Object[124] = CreateObject(3502,4066.5000000,-2753.1999500,8.8000000,0.0000000,358.0000000,88.0000000); //
  213. Object[125] = CreateObject(3502,4086.3999000,-2740.8999000,8.8000000,0.0000000,0.0000000,360.0000000); //
  214. Object[126] = CreateObject(3502,4101.0000000,-2759.1001000,8.8000000,0.0000000,0.0000000,268.0000000); //
  215. Object[127] = CreateObject(3502,4081.1999500,-2771.1001000,8.8000000,0.0000000,0.0000000,180.0000000); //
  216. Object[128] = CreateObject(3799,4012.1999500,-2753.5000000,6.9000000,0.0000000,0.0000000,0.0000000); //
  217. Object[129] = CreateObject(3799,4012.1001000,-2734.1999500,6.9000000,0.0000000,0.0000000,0.0000000); //
  218. Object[130] = CreateObject(3799,4012.1005900,-2734.2002000,9.0000000,0.0000000,0.0000000,0.0000000); //
  219. Object[131] = CreateObject(3799,4012.2002000,-2753.5000000,9.0000000,0.0000000,0.0000000,0.0000000); //
  220. Object[132] = CreateObject(5262,4039.1999500,-2761.3999000,10.0000000,0.0000000,0.0000000,0.0000000); //
  221. Object[133] = CreateObject(5262,4031.2241200,-2761.3623000,10.0000000,0.0000000,0.0000000,179.9950000); //
  222. Object[134] = CreateObject(5262,4075.1001000,-2756.1001000,10.0000000,0.0000000,0.0000000,179.9950000); //
  223. Object[135] = CreateObject(5262,4083.8000500,-2749.3999000,10.0000000,0.0000000,0.0000000,89.9950000); //
  224. Object[136] = CreateObject(5262,4092.6001000,-2756.1001000,10.0000000,0.0000000,0.0000000,359.9890100); //
  225. Object[137] = CreateObject(5262,4083.8999000,-2762.8999000,10.0000000,0.0000000,0.0000000,269.9840100); //
  226. Object[138] = CreateObject(3798,4024.6001000,-2720.6001000,6.9000000,0.0000000,0.0000000,0.0000000); //
  227. Object[139] = CreateObject(3798,4024.6005900,-2720.5996100,8.9000000,0.0000000,0.0000000,0.0000000); //
  228. Object[140] = CreateObject(5262,4055.6923800,-2784.4445800,10.0000000,0.0000000,0.0000000,0.0000000); //
  229. Object[141] = CreateObject(5262,4047.5944800,-2784.4123500,10.0000000,0.0000000,0.0000000,179.9950000); //
  230. Object[142] = CreateObject(3612,4029.5764200,-2744.0202600,6.8567000,0.0000000,180.0000000,90.0000000); //
  231. Object[143] = CreateObject(3612,4023.1489300,-2780.1782200,6.8567000,0.0000000,180.0000000,180.0000000); //
  232. Object[144] = CreateObject(3612,4101.9106400,-2740.2404800,6.8567000,0.0000000,180.0000000,220.2200000); //
  233. Object[145] = CreateObject(3612,4069.7856400,-2737.9167500,6.8567000,0.0000000,180.0000000,305.4002700); //
  234. Object[146] = CreateObject(3612,4066.2700200,-2772.4370100,6.8567000,0.0000000,180.0000000,224.2199700); //
  235. Object[147] = CreateObject(13657,4043.2002000,-2781.5996100,10.1000000,0.0000000,0.0000000,0.0000000); //
  236. Object[148] = CreateObject(13657,4115.4624000,-2781.6491700,15.6000000,0.0000000,180.0000000,0.0000000); //
  237. }
  238. #endif
  239.  
  240. //==============================================================================
  241. // Basic vars
  242. //==============================================================================
  243.  
  244. new bool:MissionStarted;
  245. new bool:ObjectiveStarted;
  246. new bool:MissionCancelled;
  247.  
  248. native IsValidVehicle(vehicleid);
  249.  
  250. enum playersdata {
  251. UserName[MAX_PLAYER_NAME],
  252. Kills,
  253. bool:Counted,
  254. PlayerClassID,
  255. bool:AllowedToSpawn
  256. };
  257. new PlayerMissionInfo[MAX_PLAYERS][playersdata];
  258.  
  259. new PlayersAlive;
  260. new GMTimer;
  261. new GMSec;
  262. new RandomColor;
  263. new MaxSpawns;
  264.  
  265. //==============================================================================
  266. // Basic script
  267. //==============================================================================
  268.  
  269. main()
  270. {
  271. print("----------------------------------");
  272. print(" Mission: "MISSION_NAME" started.");
  273. print("----------------------------------\n");
  274. }
  275.  
  276. public OnGameModeInit()
  277. {
  278. MissionStarted= true;
  279. MaxSpawns=sizeof(gSpawns);
  280. GMTimer = SetTimer("GMClock",1000,true);
  281. RandomColor=random(2);
  282.  
  283. #if MAX_MAP_OBJECTS != 0
  284. CreateMap();
  285. #endif
  286.  
  287. for(new i=0; i<sizeof(PedInfo); i++)
  288. {
  289. 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);
  290. }
  291.  
  292. for(new i=0; i<MAX_VEHICLES; i++) if(IsValidVehicle(i)) SetVehicleHealth(i,VEHICLE_HEALTH);
  293. if(CallRemoteFunction("GetCurrentMissionCJWalk","")) UsePlayerPedAnims();
  294. return 1;
  295. }
  296.  
  297. public OnGameModeExit()
  298. {
  299. #if MAX_MAP_OBJECTS != 0
  300. for(new i=0;i<MAX_MAP_OBJECTS;i++) DestroyObject(Object[i]);
  301. #endif
  302. for(new i=0; i<MAX_VEHICLES; i++)
  303. {
  304. DestroyVehicle(i);
  305. }
  306. return 1;
  307. }
  308.  
  309. FUNCTION GMClock()
  310. {
  311. GMSec++;
  312. switch(ObjectiveStarted)
  313. {
  314. case false:
  315. {
  316. switch(GMSec)
  317. {
  318. case 1:
  319. {
  320. new string[40];
  321. format(string,sizeof(string),"The last man standing deathmatch will start in %d seconds.",START_TIME);
  322. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1, string,0);
  323. }
  324. case START_TIME-3:
  325. {
  326. PlaySoundForAll(1056);
  327. GameTextForAll("~r~~h~3",1000,3);
  328. }
  329. case START_TIME-2:
  330. {
  331. PlaySoundForAll(1056);
  332. GameTextForAll("~r~~h~~h~2",1000,3);
  333. }
  334. case START_TIME-1:
  335. {
  336. PlaySoundForAll(1056);
  337. GameTextForAll("~y~1",1000,3);
  338. }
  339. case START_TIME:
  340. {
  341. PlaySoundForAll(1057);
  342. if(PlayersAlive > 1)
  343. {
  344. CallRemoteFunction("StartMission","");
  345. GameTextForAll("~r~Fight!",1000,3);
  346. ObjectiveStarted= true;
  347. ToggleControllable(true);
  348. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has started. KILL OR BE KILLED!");
  349. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The last man standing deathmatch has started. KILL OR BE KILLED!",0);
  350. }
  351. else CallRemoteFunction("EndMission","");
  352. KillTimer(GMTimer);
  353. }
  354. }
  355. }
  356. }
  357. }
  358.  
  359. public OnPlayerDisconnect(playerid, reason)
  360. {
  361. if(PlayerMissionInfo[playerid][Counted])
  362. {
  363. PlayersAlive --;
  364. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  365. PlayerMissionInfo[playerid][Counted]= false;
  366. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  367. }
  368. return 1;
  369. }
  370.  
  371. public OnPlayerRequestClass(playerid,classid)
  372. {
  373. SetPlayerPos(playerid,CLASS_POSTION);
  374. SetPlayerCameraPos(playerid,CLASS_CAMERA);
  375. SetPlayerCameraLookAt(playerid,CLASS_POSTION);
  376. SetPlayerFacingAngle(playerid,CLASS_FACING_AGNLE);
  377.  
  378. CallRemoteFunction("LmsHide","i",playerid);
  379. CallRemoteFunction("ShowClassSelection","iisiii",playerid, 2,"Deathmatcher", PedInfo[classid][Weapon1], PedInfo[classid][Weapon2], PedInfo[classid][Weapon3]);
  380. PlayerMissionInfo[playerid][PlayerClassID]=classid;
  381.  
  382. if(PlayerMissionInfo[playerid][Counted])
  383. {
  384. PlayersAlive --;
  385. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  386. PlayerMissionInfo[playerid][Counted]= false;
  387. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  388. }
  389. return 1;
  390. }
  391.  
  392. public OnPlayerSpawn(playerid)
  393. {
  394. new string[124];
  395. CallRemoteFunction("LmsShow","i",playerid);
  396. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  397. SetPlayerHealth(playerid,Health);
  398.  
  399. if(PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Skin] == 0)
  400. {
  401. back:
  402. new skin=random(312);
  403. if(skin == 74 || skin < 1) goto back;
  404. SetPlayerSkin(playerid,skin);
  405. }
  406. if(CallRemoteFunction("GetSpectateStatus","d",playerid)) return CallRemoteFunction("SpecOffAdmin","d",playerid);
  407. new rand=random(MaxSpawns);
  408. if(!CallRemoteFunction("GetJailedStatus","d",playerid))
  409. {
  410. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  411. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  412. SetPlayerTeam(playerid,NO_TEAM);
  413. SetPlayerColor(playerid,COLOR_GREY);
  414. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon1],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo1]);
  415. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon2],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo2]);
  416. CallRemoteFunction("GivePlayerWeaponEx","ddd",playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Weapon3],PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][Ammo3]);
  417.  
  418. if(ObjectiveStarted && !PlayerMissionInfo[playerid][AllowedToSpawn])
  419. {
  420. if(PlayerMissionInfo[playerid][Counted])
  421. {
  422. PlayersAlive --;
  423. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  424. PlayerMissionInfo[playerid][Counted]= false;
  425. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  426. }
  427. CallRemoteFunction("OnPlayerMissionComplete","d",playerid);
  428. SetPlayerVirtualWorld(playerid,2);
  429. }
  430. else
  431. {
  432. PlayerMissionInfo[playerid][AllowedToSpawn]= false;
  433. SetPlayerPos(playerid,gSpawns[rand][0],gSpawns[rand][1],gSpawns[rand][2]);
  434. //SetPlayerFacingAngle(playerid,gSpawns[rand][3]);
  435. SetPlayerTeam(playerid,NO_TEAM);
  436. SetPlayerColor(playerid,(RandomColor == TEAM_ATTACK) ? COLOR_TEAM_ATTACK : COLOR_TEAM_DEFEND);
  437. SetPlayerVirtualWorld(playerid,PedInfo[PlayerMissionInfo[playerid][PlayerClassID]][VirtualWorld]);
  438. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,"Your mission is to kill other players and survive till the last.",2000);
  439. CallRemoteFunction("ShowInfoText", "iisi", playerid, -1,"~r~~h~Eliminate ~w~others!",2000);
  440. if(!ObjectiveStarted)
  441. {
  442. format(string,sizeof(string),""SERVER_KEY_MSG" The last man standing deathmatch will start in %d seconds.",(GMSec-START_TIME)*-1);
  443. SendClientMessage(playerid,COLOR_SERVER,string);
  444. CallRemoteFunction("ShowInfoBox", "iisi", playerid, -1,string,0);
  445. TogglePlayerControllable(playerid,false);
  446. }
  447. if(!PlayerMissionInfo[playerid][Counted])
  448. {
  449. PlayersAlive++;
  450. PlayerMissionInfo[playerid][Counted]= true;
  451. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  452. }
  453. CallRemoteFunction("UpdateAliveState","ii",playerid,1);
  454. }
  455. }
  456. else CallRemoteFunction("SetJailed","d",playerid);
  457. return 1;
  458. }
  459.  
  460.  
  461. public OnPlayerDeath(playerid, killerid, reason)
  462. {
  463. if(!MissionStarted)
  464. {
  465. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  466. return 1;
  467. }
  468. if(killerid != INVALID_PLAYER_ID)
  469. {
  470. PlayerMissionInfo[killerid][Kills]++;
  471. SetPlayerScore(killerid,PlayerMissionInfo[killerid][Kills]);
  472. }
  473. if(ObjectiveStarted && PlayerMissionInfo[playerid][Counted])
  474. {
  475. GameTextForPlayer(playerid,"~R~MISSION FAILED~w~!",3000,3);
  476. CallRemoteFunction("PlayerMissionStats","dd",playerid,1);
  477. }
  478. if(PlayerMissionInfo[playerid][Counted])
  479. {
  480. PlayersAlive--;
  481. PlayerMissionInfo[playerid][Counted]= false;
  482. }
  483. CallRemoteFunction("LmsUpdate","d",PlayersAlive);
  484. CallRemoteFunction("UpdateAliveState","ii",playerid,0);
  485. if(PlayersAlive < 2) CallRemoteFunction("EndMission","");
  486. return 1;
  487. }
  488.  
  489. FUNCTION EndTheMission()
  490. {
  491. if(!MissionStarted) return 1;
  492. MissionStarted= false;
  493. KillTimer(GMTimer);
  494. if(!MissionCancelled && ObjectiveStarted)
  495. {
  496. new string[124];
  497. new winner = INVALID_PLAYER_ID;
  498. new bool:MoreThan1;
  499. if(PlayersAlive == 1)
  500. {
  501. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  502. {
  503. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  504. {
  505. winner=i;
  506. }
  507. }
  508.  
  509. }
  510. else if(PlayersAlive > 1)
  511. {
  512. new MostKills;
  513. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  514. {
  515. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  516. {
  517. if(PlayerMissionInfo[MostKills][Kills] < PlayerMissionInfo[i][Kills])
  518. {
  519. MostKills=i;
  520. MoreThan1=false;
  521. continue;
  522. }
  523. if(PlayerMissionInfo[MostKills][Kills] == PlayerMissionInfo[i][Kills])
  524. {
  525. MoreThan1= true;
  526. }
  527. }
  528. }
  529. new Float:TopHealth;
  530. new Float:OtherHealth;
  531. if(MoreThan1)
  532. {
  533. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  534. {
  535. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  536. {
  537. if(PlayerMissionInfo[winner][Kills] == PlayerMissionInfo[i][Kills])
  538. {
  539. GetPlayerHealth(winner,TopHealth);
  540. GetPlayerHealth(i,OtherHealth);
  541. if(OtherHealth > TopHealth)
  542. {
  543. winner=i;
  544. MoreThan1= false;
  545. continue;
  546. }
  547. else if(OtherHealth == TopHealth)
  548. {
  549. MoreThan1= true;
  550. }
  551. }
  552. }
  553. }
  554. }
  555. if(MoreThan1)
  556. {
  557. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.");
  558. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The last man standing deathmatch has been drawn.",IRC_SERVER_COLOR);
  559. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  560. {
  561. if(CallRemoteFunction("GetAliveState","i",i) && IsPlayerConnected(i) && PlayerMissionInfo[i][Counted])
  562. {
  563. CallRemoteFunction("PlayerMissionStats","dd",i,2);
  564. }
  565. }
  566. }
  567. }
  568. if(PlayersAlive > 0 && !MoreThan1 && winner != INVALID_PLAYER_ID)
  569. {
  570. new amount= (PlayerMissionInfo[winner][Kills]*1000)+(10000);
  571. format(string,sizeof(string),""SERVER_KEY_MSG" %s (%d) has won the last man standing deathmatch. Reward: $%d + Token.",PlayerMissionInfo[winner][UserName],winner,amount);
  572. CallRemoteFunction("GivePlayerToken","dd",winner,1);
  573. CallRemoteFunction("IRC_SendMessage","ss",string,IRC_SERVER_COLOR);
  574. SendClientMessageToAll(COLOR_SERVER,string);
  575. CallRemoteFunction("GivePlayerCash","ii",winner,amount);
  576. CallRemoteFunction("PlayerMissionStats","dd",winner,0);
  577. CallRemoteFunction("PlayerMissionStats","dd",winner,12);
  578. CallRemoteFunction("CheckForBetWinners","d",winner);
  579. }
  580. }
  581. else
  582. {
  583. PlaySoundForAll(1058);
  584. SendClientMessageToAll(COLOR_SERVER,""SERVER_KEY_MSG" The mission has been cancelled.");
  585. CallRemoteFunction("IRC_SendMessage","ss",""SERVER_KEY_MSG" The mission has been cancelled.",IRC_SERVER_COLOR);
  586. CallRemoteFunction("ShowInfoBox", "iisi", -1, -1,"The mission has been cancelled.",0);
  587. GameTextForAll("~R~MISSION CANCELLED~w~!",3000,3);
  588. }
  589. return 1;
  590. }
  591.  
  592. //==============================================================================
  593. // Mission functions
  594. //==============================================================================
  595.  
  596. PlaySoundForAll(sound)
  597. {
  598. for (new i=0,j=GetPlayerPoolSize(); i <=j ; i++)
  599. {
  600. if(IsPlayerConnected(i)) PlayerPlaySound(i,sound,0,0,0);
  601. }
  602. }
  603.  
  604.  
  605. ToggleControllable(control)
  606. {
  607. for(new i=0,j=GetPlayerPoolSize(); i<=j; i++)
  608. {
  609. if(IsPlayerConnected(i))
  610. {
  611. if(CallRemoteFunction("GetAliveState","i",i)) TogglePlayerControllable(i,control);
  612. }
  613. }
  614. return 1;
  615. }
  616.  
  617. //==============================================================================
  618. // Important functions required
  619. //==============================================================================
  620.  
  621. FUNCTION CancelTheMission()
  622. {
  623. MissionCancelled= true;
  624. return 1;
  625. }
  626.  
  627. FUNCTION OnPlayerNameRecieve(playerid,name[])
  628. {
  629. format(PlayerMissionInfo[playerid][UserName],MAX_PLAYER_NAME,"%s",name);
  630. return 1;
  631. }
  632.  
  633. FUNCTION MissionObjectiveStarted() return ObjectiveStarted;
  634.  
  635. FUNCTION OnPlayerRespawned(playerid)
  636. {
  637. if(PlayerMissionInfo[playerid][Counted])
  638. {
  639. PlayersAlive--;
  640. PlayerMissionInfo[playerid][Counted]= false;
  641. }
  642. PlayerMissionInfo[playerid][AllowedToSpawn]= true;
  643. return 1;
  644. }
Advertisement
Add Comment
Please, Sign In to add comment