carrier.pwn 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <foreach>
  4. #define COLOR_WHITE 0xFFFFFFAA
  5. #define COLOR_YELLOW 0xFFFF00AA
  6. #define LIGHT_BLUE 0x33CCFFAA
  7. new backlift;
  8. new sidelift;
  9. new backhatch;
  10. new Carrier[17];
  11. new CarrierS[14];
  12. new NGVehicles[21];
  13. new Range;
  14. new RangeGuy[6];
  15. new control[MAX_PLAYERS];
  16. new controlspeed[MAX_PLAYERS];
  17. new controldistance[MAX_PLAYERS];
  18. new ControlTimer[MAX_PLAYERS];
  19. forward ControlCam(playerid);
  20. forward RedoRange();
  21. forward RedoRange2();
  22. new canmove;
  23. public OnFilterScriptInit()
  24. {
  25. sidelift = CreateObject(3114, 231.916656, 4615.134277, 17.269205, 0.0000, 0.0000, 0.0000); // Side Lift Up
  26. backhatch = CreateObject(3113, 180.344864, 4600.390137, 2.516232, 0.0000, 0.0000, 0.0000); // Back Hatch Closed
  27. backlift = CreateObject(3115, 189.694626, 4599.983398, 17.483730, 0.0000, 0.0000, 0.0000); // Back Lift Up
  28. Carrier[0] = CreateObject(10771, 288.665771, 4600.003418, 6.032381, 0.0000, 0.0000, 0.0000, 300);
  29. Carrier[1] = CreateObject(11145, 225.782196, 4600.015137, 4.754915, 0.0000, 0.0000, 0.0000, 300);
  30. Carrier[2] = CreateObject(11149, 282.526093, 4594.805176, 12.487646, 0.0000, 0.0000, 0.0000, 300);
  31. Carrier[3] = CreateObject(11146, 279.620544, 4600.541016, 12.893089, 0.0000, 0.0000, 0.0000, 300);
  32. Carrier[4] = CreateObject(10770, 291.858917, 4592.397949, 39.171509, 0.0000, 0.0000, 0.0000, 300);
  33. Carrier[5] = CreateObject(10772, 290.014313, 4599.787598, 17.833616, 0.0000, 0.0000, 0.0000, 300);
  34. Carrier[6] = CreateObject(1671, 354.860748, 4589.442383, 11.234554, 0.0000, 0.0000, 175.3254, 300);
  35. Carrier[7] = CreateObject(925, 304.330383, 4589.067383, 11.735489, 0.0000, 0.0000, 0.0000, 300);
  36. Carrier[8] = CreateObject(930, 301.851654, 4588.497070, 11.131838, 0.0000, 0.0000, 0.0000, 300);
  37. Carrier[9] = CreateObject(930, 301.856079, 4589.598145, 11.181837, 0.0000, 0.0000, 0.0000, 300);
  38. Carrier[10] = CreateObject(964, 300.513062, 4589.303711, 10.705961, 0.0000, 0.0000, 177.4217, 300);
  39. Carrier[11] = CreateObject(964, 299.024902, 4589.362793, 10.698584, 0.0000, 0.0000, 177.4217, 300);
  40. Carrier[12] = CreateObject(1271, 305.058319, 4591.442871, 11.048584, 0.0000, 0.0000, 359.1406, 300);
  41. Carrier[13] = CreateObject(1431, 303.009491, 4591.383789, 11.253574, 0.0000, 0.0000, 0.0000, 300);
  42. Carrier[14] = CreateObject(2567, 297.100800, 4591.239746, 12.558563, 0.0000, 0.0000, 91.1003, 300);
  43. Carrier[15] = CreateObject(3576, 301.050110, 4593.777344, 12.198634, 0.0000, 0.0000, 0.0000, 300);
  44. Carrier[16] = CreateObject(3633, 304.567841, 4593.262207, 11.173386, 0.0000, 0.0000, 0.0000, 300);
  45. CarrierS[0] = CreateDynamicObject(3267, 320.358582, 4592.519043, 21.567169, 0.0000, 0.0000, 0.0000);
  46. CarrierS[1] = CreateDynamicObject(11237, 291.557526, 4592.407715, 39.065594, 0.0000, 0.0000, 0.0000);
  47. CarrierS[2] = CreateDynamicObject(3395, 354.861725, 4590.989746, 10.797120, 0.0000, 0.0000, 88.0403);
  48. CarrierS[3] = CreateDynamicObject(1671, 356.571838, 4588.612793, 11.234554, 0.0000, 0.0000, 134.9316);
  49. CarrierS[4] = CreateDynamicObject(3393, 358.360016, 4588.834961, 10.797121, 0.0000, 0.0000, 0.0000);
  50. CarrierS[5] = CreateDynamicObject(3277, 320.391876, 4592.538086, 21.514416, 0.0000, 0.0000, 164.0483);
  51. NGVehicles[0] = AddStaticVehicleEx(520,248.0794,3594.3105,11.5239,2.7183,0,0,30000); // hydra 1
  52. NGVehicles[1] = AddStaticVehicleEx(520,237.9068,3594.1855,11.5200,359.5102,0,0,30000); // hydra2
  53. NGVehicles[2] = AddStaticVehicleEx(520,227.9109,3594.4126,11.5253,357.3820,0,0,30000); // hydra3
  54. NGVehicles[3] = AddStaticVehicleEx(430,199.3280,3591.4453,-0.6940,90.6359,0,110,30000); // Cop boat
  55. NGVehicles[4] = AddStaticVehicleEx(430,200.1194,3596.4458,-0.7851,91.4565,0,110,30000); // Cop boat 2
  56. NGVehicles[5] = AddStaticVehicleEx(595,201.8044,3609.0137,0.2197,92.5798,112,20,30000); // predator
  57. NGVehicles[6] = AddStaticVehicleEx(595,204.8774,3603.1533,-0.2992,89.2164,112,20,30000); // predator2
  58. NGVehicles[7] = AddStaticVehicleEx(539,221.6902,3609.5674,2.8996,89.0397,0,110,30000); // vortex 1
  59. NGVehicles[8] = AddStaticVehicleEx(539,221.7372,3603.2832,2.9000,91.7202,0,110,30000); // vortex 2
  60. NGVehicles[9] = AddStaticVehicleEx(425,251.1378,3595.0029,19.5374,38.5798,0,0,30000); // hunterondeck1
  61. NGVehicles[10] = AddStaticVehicleEx(425,239.3769,3595.5366,19.5370,34.9381,0,0,30000); // hunterondeck2
  62. NGVehicles[11] = AddStaticVehicleEx(425,227.2570,3595.8970,19.5330,36.2626,0,0,30000); // hunterondeck3
  63. NGVehicles[12] = AddStaticVehicleEx(548,339.1287,3592.5342,19.5370,318.6580,0,0,30000); // cargoondeck4
  64. NGVehicles[13] = AddStaticVehicleEx(548,350.7022,3592.5835,19.5370,322.3175,0,0,30000); // cargoondeck5
  65. NGVehicles[14] = AddStaticVehicleEx(548,362.1107,3592.6118,19.5370,323.1028,0,0,30000); // cargoondeck6
  66. NGVehicles[15] = AddStaticVehicleEx(548,373.5303,3592.8457,19.5370,324.9776,0,0,30000); // cargoondeck7
  67. NGVehicles[16] = AddStaticVehicleEx(417,213.0728,3592.1421,20.4642,269.6004,1,1,30000); // Leviathan
  68. NGVehicles[17] = AddStaticVehicleEx(417,384.6175,3592.6875,19.3947,90.9128,43,0,30000); // Leviathan
  69. NGVehicles[18] = AddStaticVehicleEx(520,351.6037,3607.6841,12.5242,88.6799,0,0,30000); // Hydra
  70. NGVehicles[19] = AddStaticVehicleEx(520,351.6037,3597.3706,12.5242,88.6799,0,0,30000); // Hydra
  71. NGVehicles[20] = AddStaticVehicleEx(583,308.3741,3591.9722,11.7993,266.5796,1,1,30000); // Caddy
  72. for(new x;x<sizeof(NGVehicles);x++)
  73. {
  74. OnVehicleSpawn(NGVehicles[x]);
  75. }
  76. return 1;
  77. }
  78. Float:GetPointDistanceToPoint(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
  79. {
  80. new Float:x, Float:y, Float:z;
  81. x = x1-x2;
  82. y = y1-y2;
  83. z = z1-z2;
  84. return floatsqroot(x*x+y*y+z*z);
  85. }
  86. Float:GetPointDistanceToPointEx(Float:x1,Float:y1,Float:x2,Float:y2)
  87. {
  88. new Float:x, Float:y;
  89. x = x1-x2;
  90. y = y1-y2;
  91. return floatsqroot(x*x+y*y);
  92. }
  93. stock LoadNGVehicles()
  94. {
  95. new Float:X, Float:Y, Float:Z;
  96. for(new x;x<sizeof(NGVehicles);x++)
  97. {
  98. GetVehiclePos(NGVehicles[x], X, Y, Z);
  99. if(GetPointDistanceToPointEx(X, Y, 20000, 20000) < 1000) SetVehicleToRespawn(NGVehicles[x]);
  100. }
  101. }
  102. stock UnloadNGVehicles()
  103. {
  104. new Float:X, Float:Y, Float:Z;
  105. new Float:XB, Float:YB, Float:ZB;
  106. GetObjectPos(Carrier[0], XB, YB, ZB);
  107. for(new x;x<sizeof(NGVehicles);x++)
  108. {
  109. GetVehiclePos(NGVehicles[x], X, Y, Z);
  110. if(GetPointDistanceToPoint(X, Y, Z, XB, YB, ZB) < 250) SetVehiclePos(NGVehicles[x], 20000, 20000, 20000);
  111. }
  112. }
  113. public OnVehicleSpawn(vehicleid)
  114. {
  115. for(new x;x<sizeof(NGVehicles);x++)
  116. {
  117. if(NGVehicles[x] == vehicleid)
  118. {
  119. new Float:X, Float:Y, Float:Z;
  120. GetObjectPos(Carrier[0], X, Y, Z);
  121. if(vehicleid == NGVehicles[0]) SetVehiclePos(vehicleid, (X-40.586371), (Y-5.692918), 11.5239);
  122. else if(vehicleid == NGVehicles[1]) SetVehiclePos(vehicleid, (X-50.758971), (Y-5.817918), 11.5200);
  123. else if(vehicleid == NGVehicles[2]) SetVehiclePos(vehicleid, (X-60.754871), (Y-5.590818), 11.5239);
  124. else if(vehicleid == NGVehicles[3]) SetVehiclePos(vehicleid, (X-89.337771), (Y-8.558118) ,-0.6940);
  125. else if(vehicleid == NGVehicles[4]) SetVehiclePos(vehicleid, (X-88.546371), (Y-3.55761), -0.7851);
  126. else if(vehicleid == NGVehicles[5]) SetVehiclePos(vehicleid, (X-83.861371), (Y+9.010282),0.2197);
  127. else if(vehicleid == NGVehicles[6]) SetVehiclePos(vehicleid, (X-83.788371), (Y+3.149882), -0.2992);
  128. else if(vehicleid == NGVehicles[7]) SetVehiclePos(vehicleid, (X-66.975571), (Y+2.436018), 2.8996);
  129. else if(vehicleid == NGVehicles[8]) SetVehiclePos(vehicleid, (X-66.928571), (Y+8.720218), 2.9000);
  130. else if(vehicleid == NGVehicles[9]) SetVehiclePos(vehicleid, (X-37.527971), (Y-5.000518), 19.5374);
  131. else if(vehicleid == NGVehicles[10]) SetVehiclePos(vehicleid, (X-49.288871), (Y-4.466818), 19.5374);
  132. else if(vehicleid == NGVehicles[11]) SetVehiclePos(vehicleid, (X-61.408771), (Y-4.106418), 19.5374);
  133. else if(vehicleid == NGVehicles[12]) SetVehiclePos(vehicleid, (X+50.462929), (Y-7.469218), 19.5374);
  134. else if(vehicleid == NGVehicles[13]) SetVehiclePos(vehicleid, (X+62.036429), (Y-7.419918), 19.5374);
  135. else if(vehicleid == NGVehicles[14]) SetVehiclePos(vehicleid, (X+73.444929), (Y-7.391618), 19.5374);
  136. else if(vehicleid == NGVehicles[15]) SetVehiclePos(vehicleid, (X+84.864529), (Y-7.157718), 19.5374);
  137. else if(vehicleid == NGVehicles[16]) SetVehiclePos(vehicleid, (X-75.592971), (Y-7.861318), 20.4642);
  138. else if(vehicleid == NGVehicles[17]) SetVehiclePos(vehicleid, (X+95.951729), (Y-7.315918), 19.3947);
  139. else if(vehicleid == NGVehicles[18]) SetVehiclePos(vehicleid, (X+62.937929), (Y+7.680682), 12.5242);
  140. else if(vehicleid == NGVehicles[19]) SetVehiclePos(vehicleid, (X+62.937929), (Y-2.632818), 12.5242);
  141. else if(vehicleid == NGVehicles[20]) SetVehiclePos(vehicleid, (X+19.708329), (Y-8.031218), 11.7993);
  142. }
  143. }
  144. }
  145. public OnFilterScriptExit()
  146. {
  147. for(new x;x<sizeof(Carrier);x++)
  148. {
  149. if(IsValidObject(Carrier[x]))
  150. {
  151. DestroyObject(Carrier[x]);
  152. }
  153. }
  154. for(new x;x<sizeof(RangeGuy);x++)
  155. {
  156. if(IsValidObject(RangeGuy[x])) DestroyObject(RangeGuy[x]);
  157. }
  158. DestroyObject(sidelift);
  159. DestroyObject(backhatch);
  160. DestroyObject(backlift);
  161. for(new x;x<sizeof(NGVehicles);x++)
  162. {
  163. DestroyVehicle(NGVehicles[x]);
  164. }
  165. }
  166. public OnPlayerDisconnect(playerid)
  167. {
  168. if(control[playerid] == 1)
  169. {
  170. control[playerid] = 0;
  171. KillTimer(ControlTimer[playerid]);
  172. }
  173. }
  174. public OnDynamicObjectMoved(objectid)
  175. {
  176. if(objectid == CarrierS[5])
  177. {
  178. canmove = 0;
  179. }
  180. }
  181. public ControlCam(playerid)
  182. {
  183. new Float:X, Float:Y, Float:Z;
  184. GetObjectPos(Carrier[0], X, Y, Z);
  185. SetPlayerCameraPos(playerid, X-200, Y, Z+40);
  186. SetPlayerCameraLookAt(playerid, X, Y, Z);
  187. }
  188. public OnPlayerUpdate(playerid)
  189. {
  190. if(control[playerid] == 1)
  191. {
  192. new Keys,ud,lr;
  193. GetPlayerKeys(playerid,Keys,ud,lr);
  194. if(ud > 0)
  195. {
  196. if(canmove == 1) return 1;
  197. else canmove = 1;
  198. new distance = controldistance[playerid];
  199. new speed = controlspeed[playerid];
  200. new Float:XA[17], Float:YA[17], Float:ZA[17];
  201. new Float:XB[14], Float:YB[14], Float:ZB[14];
  202. new Float:XC[3], Float:YC[3], Float:ZC[3];
  203. for(new x;x<sizeof(Carrier);x++)
  204. {
  205. GetObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
  206. }
  207. for(new x;x<sizeof(CarrierS);x++)
  208. {
  209. GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
  210. }
  211. GetObjectPos(sidelift, XC[0], YC[0], ZC[0]);
  212. GetObjectPos(backhatch, XC[1], YC[1], ZC[1]);
  213. GetObjectPos(backlift, XC[2], YC[2], ZC[2]);
  214. for(new x;x<sizeof(Carrier);x++)
  215. {
  216. MoveObject(Carrier[x], XA[x]-distance, YA[x], ZA[x], speed);
  217. }
  218. for(new x;x<sizeof(CarrierS);x++)
  219. {
  220. MoveDynamicObject(CarrierS[x], XB[x]-distance, YB[x], ZB[x], speed);
  221. }
  222. MoveObject(sidelift, XC[0]-distance, YC[0], ZC[0], speed);
  223. MoveObject(backhatch, XC[1]-distance, YC[1], ZC[1], speed);
  224. MoveObject(backlift, XC[2]-distance, YC[2], ZC[2], speed);
  225. }
  226. else if(ud < 0)
  227. {
  228. if(canmove == 1) return 1;
  229. else canmove = 1;
  230. new distance = controldistance[playerid];
  231. new speed = controlspeed[playerid];
  232. new Float:XA[17], Float:YA[17], Float:ZA[17];
  233. new Float:XB[14], Float:YB[14], Float:ZB[14];
  234. new Float:XC[3], Float:YC[3], Float:ZC[3];
  235. for(new x;x<sizeof(Carrier);x++)
  236. {
  237. GetObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
  238. }
  239. for(new x;x<sizeof(CarrierS);x++)
  240. {
  241. GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
  242. }
  243. GetObjectPos(sidelift, XC[0], YC[0], ZC[0]);
  244. GetObjectPos(backhatch, XC[1], YC[1], ZC[1]);
  245. GetObjectPos(backlift, XC[2], YC[2], ZC[2]);
  246. for(new x;x<sizeof(Carrier);x++)
  247. {
  248. MoveObject(Carrier[x], XA[x]+distance, YA[x], ZA[x], speed);
  249. }
  250. for(new x;x<sizeof(CarrierS);x++)
  251. {
  252. MoveDynamicObject(CarrierS[x], XB[x]+distance, YB[x], ZB[x], speed);
  253. }
  254. MoveObject(sidelift, XC[0]+distance, YC[0], ZC[0], speed);
  255. MoveObject(backhatch, XC[1]+distance, YC[1], ZC[1], speed);
  256. MoveObject(backlift, XC[2]+distance, YC[2], ZC[2], speed);
  257. }
  258. if(lr > 0)
  259. {
  260. if(canmove == 1) return 1;
  261. else canmove = 1;
  262. new distance = controldistance[playerid];
  263. new speed = controlspeed[playerid];
  264. new Float:XA[17], Float:YA[17], Float:ZA[17];
  265. new Float:XB[14], Float:YB[14], Float:ZB[14];
  266. new Float:XC[3], Float:YC[3], Float:ZC[3];
  267. for(new x;x<sizeof(Carrier);x++)
  268. {
  269. GetObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
  270. }
  271. for(new x;x<sizeof(CarrierS);x++)
  272. {
  273. GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
  274. }
  275. GetObjectPos(sidelift, XC[0], YC[0], ZC[0]);
  276. GetObjectPos(backhatch, XC[1], YC[1], ZC[1]);
  277. GetObjectPos(backlift, XC[2], YC[2], ZC[2]);
  278. for(new x;x<sizeof(Carrier);x++)
  279. {
  280. MoveObject(Carrier[x], XA[x], YA[x]-distance, ZA[x], speed);
  281. }
  282. for(new x;x<sizeof(CarrierS);x++)
  283. {
  284. MoveDynamicObject(CarrierS[x], XB[x], YB[x]-distance, ZB[x], speed);
  285. }
  286. MoveObject(sidelift, XC[0], YC[0]-distance, ZC[0], speed);
  287. MoveObject(backhatch, XC[1], YC[1]-distance, ZC[1], speed);
  288. MoveObject(backlift, XC[2], YC[2]-distance, ZC[2], speed);
  289. }
  290. else if(lr < 0)
  291. {
  292. if(canmove == 1) return 1;
  293. else canmove = 1;
  294. new distance = controldistance[playerid];
  295. new speed = controlspeed[playerid];
  296. new Float:XA[17], Float:YA[17], Float:ZA[17];
  297. new Float:XB[14], Float:YB[14], Float:ZB[14];
  298. new Float:XC[3], Float:YC[3], Float:ZC[3];
  299. for(new x;x<sizeof(Carrier);x++)
  300. {
  301. GetObjectPos(Carrier[x], XA[x], YA[x], ZA[x]);
  302. }
  303. for(new x;x<sizeof(CarrierS);x++)
  304. {
  305. GetDynamicObjectPos(CarrierS[x], XB[x], YB[x], ZB[x]);
  306. }
  307. GetObjectPos(sidelift, XC[0], YC[0], ZC[0]);
  308. GetObjectPos(backhatch, XC[1], YC[1], ZC[1]);
  309. GetObjectPos(backlift, XC[2], YC[2], ZC[2]);
  310. for(new x;x<sizeof(Carrier);x++)
  311. {
  312. MoveObject(Carrier[x], XA[x], YA[x]+distance, ZA[x], speed);
  313. }
  314. for(new x;x<sizeof(CarrierS);x++)
  315. {
  316. MoveDynamicObject(CarrierS[x], XB[x], YB[x]+distance, ZB[x], speed);
  317. }
  318. MoveObject(sidelift, XC[0], YC[0]+distance, ZC[0], speed);
  319. MoveObject(backhatch, XC[1], YC[1]+distance, ZC[1], speed);
  320. MoveObject(backlift, XC[2], YC[2]+distance, ZC[2], speed);
  321. }
  322. }
  323. return 1;
  324. }
  325. public OnPlayerCommandText(playerid, cmdtext[])
  326. {
  327. if (strcmp(cmdtext, "/showmeship", true)==0)
  328. {
  329. new Float:X, Float:Y, Float:Z;
  330. GetObjectPos(Carrier[0], X, Y, Z);
  331. SetPlayerCheckpoint(playerid,X, Y, Z, 4.0);
  332. GameTextForPlayer(playerid, "~w~Waypoint set ~r~USS Nimitz", 5000, 1);
  333. }
  334. if (strcmp(cmdtext, "/control", true)==0)
  335. {
  336. if(control[playerid] == 1)
  337. {
  338. TogglePlayerControllable(playerid, true);
  339. SetCameraBehindPlayer(playerid);
  340. KillTimer(ControlTimer[playerid]);
  341. LoadNGVehicles();
  342. control[playerid] = 0;
  343. SendClientMessage(playerid, COLOR_WHITE, "You are no longer controlling the Aircraft Carrier");
  344. }
  345. else
  346. {
  347. UnloadNGVehicles();
  348. new Float:X, Float:Y, Float:Z;
  349. GetObjectPos(Carrier[0], X, Y, Z);
  350. SetPlayerCameraPos(playerid, X-200, Y, Z+40);
  351. SetPlayerCameraLookAt(playerid, X, Y, Z);
  352. TogglePlayerControllable(playerid, false);
  353. ControlTimer[playerid] = SetTimerEx("ControlCam", 1000, true, "i", playerid);
  354. control[playerid] = 1;
  355. controlspeed[playerid] = 50;
  356. controldistance[playerid] = 100;
  357. SendClientMessage(playerid, COLOR_WHITE, "You are now controlling the Aircraft Carrier with Speed 50, Distance 100");
  358. }
  359. return 1;
  360. }
  361. if (strcmp(cmdtext, "/goslow", true)==0)
  362. {
  363. if(control[playerid] == 1)
  364. {
  365. controlspeed[playerid] = 10;
  366. controldistance[playerid] = 2;
  367. SendClientMessage(playerid, COLOR_WHITE, "slow");
  368. }
  369. }
  370. if (strcmp(cmdtext, "/gofast", true)==0)
  371. {
  372. if(control[playerid] == 1)
  373. {
  374. controlspeed[playerid] = 50;
  375. controldistance[playerid] = 100;
  376. SendClientMessage(playerid, COLOR_WHITE, "fast");
  377. }
  378. }
  379. if (strcmp(cmdtext, "/bldown", true)==0) // Command (changable)
  380. {
  381. if(canmove == 1) return 1;
  382. new Float:X, Float:Y, Float:Z;
  383. GetObjectPos(backlift, X, Y, Z);
  384. MoveObject (backlift,X, Y, 10.435794,1); // Back Lift (down position)
  385. SendClientMessage(playerid, LIGHT_BLUE, "The Back Lift Is Now Going Down!");
  386. return 1;
  387. }
  388. if (strcmp(cmdtext, "/blup", true)==0)
  389. {
  390. if(canmove == 1) return 1;
  391. new Float:X, Float:Y, Float:Z;
  392. GetObjectPos(backlift, X, Y, Z);
  393. MoveObject (backlift,X, Y, 17.483730,1); // Back Lift (up position)
  394. SendClientMessage(playerid, LIGHT_BLUE, "The Back Lift Is Now Going Up!");
  395. return 1;
  396. }
  397. if(!strcmp(cmdtext, "/sldown", true))
  398. {
  399. if(canmove == 1) return 1;
  400. new Float:X, Float:Y, Float:Z;
  401. GetObjectPos(sidelift, X, Y, Z);
  402. MoveObject (sidelift,X, Y, 10.271654,1); // Side Lift (down position)
  403. SendClientMessage(playerid, LIGHT_BLUE, "The Side Lift Is Now Going Down!");
  404. return 1;
  405. }
  406. if(!strcmp(cmdtext, "/slup", true))
  407. {
  408. if(canmove == 1) return 1;
  409. new Float:X, Float:Y, Float:Z;
  410. GetObjectPos(sidelift, X, Y, Z);
  411. MoveObject (sidelift,X, Y, 17.269205,1); // Side Lift (down position)
  412. SendClientMessage(playerid, LIGHT_BLUE, "The Side Lift Is Now Going Up!");
  413. return 1;
  414. }
  415. if(!strcmp(cmdtext, "/bhdown", true))
  416. {
  417. if(canmove == 1) return 1;
  418. new Float:X, Float:Y, Float:Z;
  419. GetObjectPos(backhatch, X, Y, Z);
  420. MoveObject (backhatch, X, Y, 2.516232,1); // Back Hatch (down position)
  421. SendClientMessage(playerid, LIGHT_BLUE, "The Back Hatch Is Now Going Down!");
  422. return 1;
  423. }
  424. if(!strcmp(cmdtext, "/bhup", true))
  425. {
  426. if(canmove == 1) return 1;
  427. new Float:X, Float:Y, Float:Z;
  428. GetObjectPos(backhatch, X, Y, Z);
  429. MoveObject (backhatch,X, Y, 17.280232,1); // Back Hatch (up position)
  430. SendClientMessage(playerid, LIGHT_BLUE, "The Back Hatch Is Now Going Up!");
  431. return 1;
  432. }
  433. if(strcmp(cmdtext, "/range1", true) == 0)
  434. {
  435. if(Range == 0)
  436. {
  437. if (IsPlayerInRangeOfPoint(playerid, 6.0, 300.1054,-164.4170,999.6105))
  438. {
  439. ShowPlayerDialog(playerid,999999,DIALOG_STYLE_MSGBOX,"Objective","Shooting Range: When the targets pop up, shoot them.\nTo stop the range type: /stoprange. ","OK","");
  440. Range = 1;
  441. SetTimer("RedoRange", 1000, 0);
  442. }
  443. else
  444. {
  445. SendClientMessage(playerid, COLOR_WHITE, " You are not at the shooting range!");
  446. }
  447. }
  448. else
  449. {
  450. SendClientMessage(playerid, COLOR_WHITE, " Someone is already doing the shooting range!");
  451. }
  452. return 1;
  453. }
  454. if(strcmp(cmdtext, "/stoprange1", true) == 0)
  455. {
  456. if(Range == 1)
  457. {
  458. if (IsPlayerInRangeOfPoint(playerid, 6.0,300.1054,-164.4170,999.6105))
  459. {
  460. Range = 0;
  461. for(new x;x<sizeof(RangeGuy);x++)
  462. {
  463. if(IsValidObject(RangeGuy[x])) DestroyObject(RangeGuy[x]);
  464. }
  465. SendClientMessage(playerid, COLOR_WHITE, " You have stopped the shooting range!");
  466. }
  467. else
  468. {
  469. SendClientMessage(playerid, COLOR_WHITE, " You are not at the shooting range!");
  470. }
  471. }
  472. else
  473. {
  474. SendClientMessage(playerid, COLOR_WHITE, " You are not is doing the shooting range!");
  475. }
  476. return 1;
  477. }
  478. return 0;
  479. }
  480. public RedoRange()
  481. {
  482. if(Range == 1)
  483. {
  484. new rand[6], model[6], Float:rand2[6], Float:rand3[6];
  485. rand[0] = Random(0,100); rand2[0] = Random(0,20); rand3[0] = Random(0,11);
  486. rand[1] = Random(0,100); rand2[1] = Random(0,20); rand3[1] = Random(0,11);
  487. rand[2] = Random(0,100); rand2[2] = Random(0,20); rand3[2] = Random(0,11);
  488. rand[3] = Random(0,100); rand2[3] = Random(0,20); rand3[3] = Random(0,11);
  489. rand[4] = Random(0,100); rand2[4] = Random(0,20); rand3[4] = Random(0,11);
  490. rand[5] = Random(0,100); rand2[5] = Random(0,20); rand3[5] = Random(0,11);
  491. for(new x;x<sizeof(rand);x++)
  492. {
  493. if(rand[x] < 20) model[x] = 1585;
  494. else if(rand[x] > 20 && rand[x] < 60) model[x] = 1584;
  495. else if(rand[x] > 60 && rand[x] <= 100) model[x] = 1583;
  496. }
  497. for(new x;x<sizeof(RangeGuy);x++)
  498. {
  499. RangeGuy[x] = CreateObject((model[x]), (294.0-rand2[x]), (-169.0+rand3[x]), 996, 0.000000, 0.00000, 90); //object (tar_gun1) (2)
  500. MoveObject(RangeGuy[x], (294-rand2[x]), (-169+rand3[x]), 998.5, 5);
  501. }
  502. SetTimer("RedoRange2", 4000, 0);
  503. }
  504. }
  505. public RedoRange2()
  506. {
  507. for(new x;x<sizeof(RangeGuy);x++)
  508. {
  509. if(IsValidObject(RangeGuy[x])) DestroyObject(RangeGuy[x]);
  510. }
  511. new rand = Random(2000,5000);
  512. SetTimer("RedoRange", rand, 0);
  513. }
  514. stock Random(min, max)
  515. {
  516. new a = random(max - min) + min;
  517. return a;
  518. }