Advertisement
Guest User

XF CH3WY's Fighter Jet v2 Source GTA IV

a guest
Jun 27th, 2016
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 29.17 KB | None | 0 0
  1. /*------------------------------------------------------------
  2.     Fighter Jet Source - XF CH3WY
  3.    
  4.     *Don't change anything unless you know what you're doing
  5.     *Do not leech
  6.   ------------------------------------------------------------*/
  7.    
  8. ///Includes
  9. #include <natives.h>
  10. #include <common.h>
  11. #include <consts.h>
  12. #include <types.h>
  13. #include <strings.h>
  14.  
  15. ///Defines
  16. #define BUTTON_SELECT 0xD
  17. #define BUTTON_START 0xC
  18. #define BUTTON_X 0xE
  19. #define BUTTON_Y 0xF
  20. #define BUTTON_A 0x10
  21. #define BUTTON_B 0x11
  22. #define DPAD_UP 0x8
  23. #define DPAD_DOWN 0x9
  24. #define DPAD_LEFT 0xA
  25. #define DPAD_RIGHT 0xB
  26. #define BUTTON_L 0x5
  27. #define BUTTON_R 0x7
  28. #define BUTTON_LB 0x4
  29. #define BUTTON_RB 0x6
  30. #define STICK_LEFT 0x12
  31. #define STICK_RIGHT 0x13
  32.  
  33. ///Bools
  34. bool modon = false;
  35. bool controlling = false;
  36. bool after = false;
  37. bool hydra = false;
  38. bool showSelection = false;
  39. bool homing = false;
  40. bool networkPlayers = false;
  41. bool rockets = true;
  42. bool bombs = false;
  43. bool napalms = false;
  44.  
  45. ///Declarations
  46. Vehicle myVeh;
  47. Object plane, rocket, bomb[10], napalm[10];
  48. Ped* players[15];
  49. Ped rped1, rped2;
  50. Weapon weapon1, weapon2;
  51.  
  52. ///Float
  53. float x, y, z, zGround, speed, heading;
  54. float cx, cy, cz, ox, oy, oz, fx, fy, fz;
  55. float objCarDist, objYouDist, pitch;
  56. float offx, offy, offz, distance;
  57. float offx1, offy1, offz1, offx2, offy2, offz2;
  58. float something1, something2, something3, something4;
  59.  
  60. ///Integers
  61. int select = 2, myVehId, planeId, rocketID;
  62. int groundDistance, tick, number = 0, anotherNumber = 0;
  63. uint ammo1, ammo2, max_ammo1, max_ammo2;
  64.  
  65. ////////////////////////////////////////////////////////////////////////////Start Source////////////////////////////////////////////////////////////////////////////
  66.  
  67. /*------------------------------------Control Panel------------------------------------*/
  68. void SET_UP_DRAW(float width, float height, uint r, uint g, uint b, uint a){
  69. #ifdef PC
  70.     SET_TEXT_FONT(7);
  71. #else
  72.     SET_TEXT_FONT(6);
  73. #endif
  74.     SET_TEXT_BACKGROUND(0);
  75.     SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
  76.     SET_TEXT_EDGE(1, 0, 0, 0, 255);
  77.     SET_TEXT_COLOUR(r, g, b, a);
  78.     SET_TEXT_SCALE(width, height);
  79.     SET_TEXT_PROPORTIONAL(1);
  80.     SET_TEXT_JUSTIFY(0);
  81.     SET_TEXT_CENTRE(0);
  82.     SET_TEXT_RIGHT_JUSTIFY(0);
  83. }
  84.  
  85. void SET_UP_DRAW_1(float width, float height, uint r, uint g, uint b, uint a){
  86. #ifdef PC
  87.     SET_TEXT_FONT(7);
  88. #else
  89.     SET_TEXT_FONT(2);
  90. #endif
  91.     SET_TEXT_BACKGROUND(0);
  92.     SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
  93.     SET_TEXT_EDGE(1, 0, 0, 0, 255);
  94.     SET_TEXT_COLOUR(r, g, b, a);
  95.     SET_TEXT_SCALE(width, height);
  96.     SET_TEXT_PROPORTIONAL(1);
  97.     SET_TEXT_JUSTIFY(0);
  98.     SET_TEXT_CENTRE(0);
  99.     SET_TEXT_RIGHT_JUSTIFY(0);
  100. }
  101.  
  102. void rect(void){
  103.     DRAW_RECT(0.0, 0.0, 0.8900, 0.7200, 0, 0, 0, 150);
  104. }
  105.  
  106. void control_show(void){
  107.     SET_UP_DRAW(0.3100, 0.4550, 255, 0, 0, 255);
  108.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.1150, 0.0340, "STRING", "CONTROLS");
  109. }
  110.  
  111. void close_show(void){
  112.     SET_UP_DRAW(0.3100, 0.4550, 255, 0, 0, 255);
  113.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.2900, 0.0340, "STRING", "CLOSE - ~PAD_B~");
  114. }
  115.  
  116. void spawn(void){
  117.     SET_UP_DRAW_1(0.3100, 0.4550, 159, 47, 173, 255);
  118.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.0590, "STRING", "SPAWN FIGHTER JET   ~PAD_A~ + ~PAD_B~");
  119. }
  120.  
  121. void gas(void){
  122.     SET_UP_DRAW_1(0.3100, 0.4550, 130, 74, 0, 255);
  123.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.0890, "STRING", "GAS   ~PAD_RT~");
  124. }
  125.  
  126. void brake(void){
  127.     SET_UP_DRAW_1(0.3100, 0.4550, 255, 255, 255, 255);
  128.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1190, "STRING", "BRAKE   ~PAD_LT~");
  129. }
  130.  
  131. void pivot(void){
  132.     SET_UP_DRAW_1(0.3100, 0.4550, 255, 0, 255, 255);
  133.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1490, "STRING", "PIVOT   ~PAD_LB~ + ~PAD_RB~");
  134. }
  135.  
  136. void afterburners(void){
  137.     SET_UP_DRAW_1(0.3100, 0.4550, 39, 194, 194, 255);
  138.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1790, "STRING", "AFTERBURNERS   ~PAD_LSTICK_ALL~");
  139. }
  140.  
  141. void hydramode(void){
  142.     SET_UP_DRAW_1(0.3100, 0.4550, 160, 194, 39, 255);
  143.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.2090, "STRING", "HYDRA MODE   ~PAD_RSTICK_ALL~");
  144. }
  145.  
  146. void weapons(void){
  147.     SET_UP_DRAW_1(0.3100, 0.4550, 78, 194, 39, 255);
  148.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.2390, "STRING", "OPEN WEAPON OPTIONS   ~PAD_LB~ & ~PAD_RB~");
  149. }
  150.  
  151. void scroll(void){
  152.     SET_UP_DRAW_1(0.3100, 0.4550, 39, 39, 194, 255);
  153.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.2690, "STRING", "SCROLL WEAPON OPTIONS   ~PAD_DPAD_LEFT~ + ~PAD_DPAD_RIGHT~");
  154. }
  155.  
  156. void selectwep(void){
  157.     SET_UP_DRAW_1(0.3100, 0.4550, 236, 255, 64, 255);
  158.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.2990, "STRING", "SELECT WEAPON   ~PAD_A~");
  159. }
  160.  
  161. void fire(void){
  162.     SET_UP_DRAW_1(0.3100, 0.4550, 201, 118, 0, 255);
  163.     DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.3290, "STRING", "FIRE WEAPONS   ~PAD_X~");
  164. }
  165.  
  166. void controls(void){
  167.     if(IS_BUTTON_PRESSED(0, BUTTON_LB) && IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
  168.         if(controlling){
  169.             controlling = false;
  170.         }
  171.         else{
  172.             controlling = true;
  173.         }
  174.     }
  175.     if(controlling){
  176.         if(IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
  177.             controlling = false;
  178.         }
  179.         rect();
  180.         control_show();
  181.         close_show();
  182.         spawn();
  183.         afterburners();
  184.         hydramode();
  185.         gas();
  186.         brake();
  187.         pivot();
  188.         weapons();
  189.         scroll();
  190.         selectwep();
  191.         fire();
  192.     }
  193. }
  194.  
  195.  
  196. /*--------------------------------------Functions--------------------------------------*/
  197. void print(char* text){
  198.     CLEAR_PRINTS();
  199.     PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 4500, true);
  200. }
  201.  
  202. void printShort(char* text){
  203.     CLEAR_PRINTS();
  204.     PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 500, true);
  205. }
  206.  
  207. void printLong(char* text){
  208.     CLEAR_PRINTS();
  209.     PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 8500, true);
  210. }
  211.  
  212. bool NETWORK_CONTROL(int ID){
  213.     uint ticker = 0;
  214.     REQUEST_CONTROL_OF_NETWORK_ID(ID);
  215.     do{
  216.         if(HAS_CONTROL_OF_NETWORK_ID(ID)){
  217.             return true;
  218.         }
  219.         else{
  220.             WAIT(0);
  221.             ticker++;
  222.             REQUEST_CONTROL_OF_NETWORK_ID(ID);
  223.         }
  224.     }while(ticker < 200);
  225.     print("~r~Error!");
  226.     return false;
  227. }
  228.  
  229. void EXPLODE(float x, float y, float z){
  230.     ADD_EXPLOSION(x, y, z, EXPLOSION_PETROL_PUMP, 5.0f, true, false, 0.8f);
  231. }
  232.  
  233. void BOMB_EXPLOSION(float x, float y, float z){
  234.     EXPLODE(x, y, z);
  235.     EXPLODE(x, y, z + 1);
  236.     EXPLODE(x, y, z + 2);
  237.     EXPLODE(x, y, z + 3);
  238.     EXPLODE(x + 1, y, z);
  239.     EXPLODE(x + 2, y, z);
  240.     EXPLODE(x + 3, y, z);
  241.     EXPLODE(x + 4, y, z);
  242.     EXPLODE(x + 5, y, z);
  243.     EXPLODE(x + 6, y, z);
  244.     EXPLODE(x + 7, y, z);
  245.     EXPLODE(x - 1, y, z);
  246.     EXPLODE(x - 2, y, z);
  247.     EXPLODE(x - 3, y, z);
  248.     EXPLODE(x - 4, y, z);
  249.     EXPLODE(x - 5, y, z);
  250.     EXPLODE(x - 6, y, z);
  251.     EXPLODE(x - 7, y, z);
  252.     EXPLODE(x, y + 1, z);
  253.     EXPLODE(x, y + 2, z);
  254.     EXPLODE(x, y + 3, z);
  255.     EXPLODE(x, y + 4, z);
  256.     EXPLODE(x, y + 5, z);
  257.     EXPLODE(x, y + 6, z);
  258.     EXPLODE(x, y + 7, z);
  259.     EXPLODE(x, y - 1, z);
  260.     EXPLODE(x, y - 2, z);
  261.     EXPLODE(x, y - 3, z);
  262.     EXPLODE(x, y - 4, z);
  263.     EXPLODE(x, y - 5, z);
  264.     EXPLODE(x, y - 6, z);
  265.     EXPLODE(x, y - 7, z);
  266. }
  267.  
  268. void MOLYS(float x,float y,float z){
  269.     ADD_EXPLOSION(x, y, z, EXPLOSION_MOLOTOV, 5.0f, 1, 0, 0.7f);
  270. }
  271.  
  272. void MOLY_EXPLOSION(float x, float y, float z){
  273.     MOLYS(x, y, z);
  274.     MOLYS(x, y, z + 1);
  275.     MOLYS(x, y, z + 2);
  276.     MOLYS(x, y, z + 3);
  277.     MOLYS(x, y, z + 4);
  278.     MOLYS(x + 1, y, z);
  279.     MOLYS(x + 2, y, z);
  280.     MOLYS(x + 3, y, z);
  281.     MOLYS(x + 4, y, z);
  282.     MOLYS(x + 5, y, z);
  283.     MOLYS(x + 6, y, z);
  284.     MOLYS(x + 7, y, z);
  285.     MOLYS(x + 8, y, z);
  286.     MOLYS(x + 9, y, z);
  287.     MOLYS(x + 10, y, z);
  288.     MOLYS(x - 1, y, z);
  289.     MOLYS(x - 2, y, z);
  290.     MOLYS(x - 3, y, z);
  291.     MOLYS(x - 4, y, z);
  292.     MOLYS(x - 5, y, z);
  293.     MOLYS(x - 6, y, z);
  294.     MOLYS(x - 7, y, z);
  295.     MOLYS(x - 8, y, z);
  296.     MOLYS(x - 9, y, z);
  297.     MOLYS(x - 10, y, z);
  298.     MOLYS(x, y + 1, z);
  299.     MOLYS(x, y + 2, z);
  300.     MOLYS(x, y + 3, z);
  301.     MOLYS(x, y + 4, z);
  302.     MOLYS(x, y + 5, z);
  303.     MOLYS(x, y + 6, z);
  304.     MOLYS(x, y + 7, z);
  305.     MOLYS(x, y + 8, z);
  306.     MOLYS(x, y + 9, z);
  307.     MOLYS(x, y + 10, z);
  308.     MOLYS(x, y - 1, z);
  309.     MOLYS(x, y - 2, z);
  310.     MOLYS(x, y - 3, z);
  311.     MOLYS(x, y - 4, z);
  312.     MOLYS(x, y - 5, z);
  313.     MOLYS(x, y - 6, z);
  314.     MOLYS(x, y - 7, z);
  315.     MOLYS(x, y - 8, z);
  316.     MOLYS(x, y - 9, z);
  317.     MOLYS(x, y - 10, z);
  318. }
  319.  
  320. void TELEPORT(float x, float y, float z){
  321.     if(IS_CHAR_IN_ANY_CAR(GetPlayerPed()) || IS_CHAR_IN_ANY_HELI(GetPlayerPed()) || IS_CHAR_IN_ANY_BOAT(GetPlayerPed())){
  322.         Vehicle pVeh;
  323.         uint vehID;
  324.         GET_CAR_CHAR_IS_USING(GetPlayerPed(), &pVeh);
  325.         GET_NETWORK_ID_FROM_VEHICLE(pVeh, &vehID);
  326.         if(NETWORK_CONTROL(vehID)){
  327.             DELETE_CAR(&pVeh);
  328.             MARK_CAR_AS_NO_LONGER_NEEDED(&pVeh);
  329.         }
  330.     }
  331.     SET_CHAR_COORDINATES(GetPlayerPed(), x, y, z);
  332.     SET_GAME_CAM_HEADING(0.0);
  333.     LOAD_ALL_OBJECTS_NOW();
  334.     REQUEST_COLLISION_AT_POSN(x, y, z);
  335. }
  336.  
  337. void SPAWN_VEHICLE(uint model){
  338.     Vehicle pVeh;
  339.     Ped driver;
  340.     if(!HAS_MODEL_LOADED(model)){
  341.         REQUEST_MODEL(model);
  342.         while(!HAS_MODEL_LOADED(model)){
  343.             REQUEST_MODEL(model);
  344.             WAIT(0);
  345.         }
  346.     }
  347.     GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
  348.     CREATE_CAR(model, x, y, z, &pVeh, 1);
  349.     WARP_CHAR_INTO_CAR(GetPlayerPed(), pVeh);
  350.     SET_CHAR_VISIBLE(GetPlayerPed(), false);
  351.     GET_NETWORK_ID_FROM_VEHICLE(pVeh, &myVehId);
  352.     SET_NETWORK_ID_CAN_MIGRATE(myVehId, false);
  353.     CHANGE_CAR_COLOUR(pVeh, 0, 0);
  354.     SET_ENGINE_HEALTH(pVeh, -10.0f); //to turn off the annoying helicopter noise
  355.     SET_EXTRA_CAR_COLOURS(pVeh, 0, 0);
  356.     SET_VEHICLE_DIRT_LEVEL(pVeh, 0);
  357.     WASH_VEHICLE_TEXTURES(pVeh, 255);
  358.     SET_CAR_ENGINE_ON(pVeh, true, true);
  359.     SET_CAR_PROOFS(pVeh, true, true, true, true, true);
  360.     SET_HELI_BLADES_FULL_SPEED(pVeh);
  361.     SET_CAR_HEADING(pVeh, 232.9778);
  362.     LOCK_CAR_DOORS(pVeh, VEHICLE_DOOR_LOCKED_BOTH_SIDES);
  363.     SET_ENGINE_HEALTH(pVeh, 99.0f); //to give the helicopter's health back so you don't fall
  364. }
  365.  
  366. void ATTACH_PLANE(Vehicle car){
  367.     GET_CAR_COORDINATES(car, &x, &y, &z);
  368.     if(!HAS_MODEL_LOADED(0xAF63749C)){
  369.         REQUEST_MODEL(0xAF63749C);
  370.         while(!HAS_MODEL_LOADED(0xAF63749C)){
  371.             REQUEST_MODEL(0xAF63749C);
  372.             WAIT(0);
  373.         }
  374.     }
  375.     CREATE_OBJECT(0xAF63749C, x, y, z, &plane, true);
  376.     if(DOES_OBJECT_EXIST(plane)){
  377.         SET_OBJECT_VISIBLE(plane, true);
  378.         GET_NETWORK_ID_FROM_OBJECT(plane, &planeId);
  379.         SET_NETWORK_ID_CAN_MIGRATE(planeId, false);
  380.         FREEZE_OBJECT_POSITION(plane, false);
  381.         SET_OBJECT_DYNAMIC(plane, true);
  382.         SET_OBJECT_LIGHTS(plane, true);
  383.         SET_OBJECT_INVINCIBLE(plane, true);
  384.         SET_OBJECT_COLLISION(plane, true);
  385.         SET_OBJECT_AS_STEALABLE(plane, false);
  386.         SET_CAR_VISIBLE(car, false);
  387.         ATTACH_OBJECT_TO_CAR(plane, car, 0.0f, 0, -3.5200, -1.1, 0, 0, -3.1676);
  388.     }
  389. }
  390.  
  391. void FOLLOW_COORDINATES(float *x, float *y, float *z, float scale){
  392.     float math = SQRT(POW(*x, 2) + POW(*y, 2) + POW(*z, 2));
  393.     *x = (*x / math) * scale;
  394.     *y = (*y / math) * scale;
  395.     *z = (*z / math) * scale;
  396. }
  397.  
  398. void GET_CAR_CHAR_IS_AIMING_AT(Vehicle *victim, float maxdistance){
  399.     uint i, player_count = 0;
  400.     Vehicle ocar;
  401.     float  mx, my, mz;
  402.     float distance, pitch, dist, offx, offy, offz;
  403.     if(!networkPlayers){
  404.         GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
  405.         GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
  406.         GET_CAR_PITCH(myVeh, &pitch);
  407.         for(distance = 0;distance < maxdistance; distance++){
  408.             GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, ((z + pitch) + 1), &offx, &offy, &offz);
  409.             if(DOES_VEHICLE_EXIST(GET_CLOSEST_CAR(offx, offy, offz, 14, 0, 70))){
  410.                 *victim = GET_CLOSEST_CAR(offx, offy, offz, 14, 0, 70);
  411.                 break;
  412.             }
  413.         }
  414.         distance = 0;
  415.     }
  416.     else{
  417.         if(IS_NETWORK_SESSION()){
  418.             for(i = 0;i < 16;i++){
  419.                 if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
  420.                 if(GET_PLAYER_ID() == i) continue;
  421.                 GET_PLAYER_CHAR(i, &players[player_count]);
  422.                 player_count++;
  423.             }
  424.             if(player_count > 0){
  425.                 for(i = 0;i <= player_count;i++){
  426.                     if(!DOES_CHAR_EXIST(players[i])) continue;
  427.                     if(IS_CHAR_ON_FOOT(players[i])) continue;
  428.                     if(IS_CHAR_IN_ANY_CAR(players[i]) || IS_CHAR_IN_ANY_HELI(players[i]) || IS_CHAR_IN_ANY_BOAT(players[i])){
  429.                         if(!DOES_VEHICLE_EXIST(*victim)){
  430.                             GET_CAR_CHAR_IS_USING(players[i], &ocar);
  431.                             if(DOES_VEHICLE_EXIST(ocar)){
  432.                                 GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
  433.                                 GET_CAR_PITCH(myVeh, &pitch);
  434.                                 for(distance = 0;distance < maxdistance; distance++){
  435.                                     GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, ((z + pitch) + 1), &offx, &offy, &offz);
  436.                                     GET_CAR_COORDINATES(ocar, &mx, &my, &mz);
  437.                                     GET_DISTANCE_BETWEEN_COORDS_3D(offx, offy, offz, mx, my, mz, &dist);
  438.                                     if(dist <= 15){
  439.                                         *victim = ocar;
  440.                                         break;
  441.                                     }
  442.                                 }
  443.                                 distance = 0;
  444.                             }
  445.                         }
  446.                     }
  447.                     else{
  448.                         print("~r~No one in the game is in a vehicle!");
  449.                     }
  450.                 }
  451.             }
  452.             else{
  453.                 print("~r~No one is in your game!");
  454.             }
  455.         }
  456.         else{
  457.             print("~r~You're in single player!");
  458.         }
  459.     }
  460. }
  461.  
  462. void FOLLOW(Vehicle victim){
  463.     if(DOES_VEHICLE_EXIST(victim)){
  464.         if(!HAS_MODEL_LOADED(0x48FA2738)){
  465.             REQUEST_MODEL(0x48FA2738);
  466.             while(!HAS_MODEL_LOADED(0x48FA2738)){
  467.                 REQUEST_MODEL(0x48FA2738);
  468.                 WAIT(0);
  469.             }
  470.         }
  471.         GET_CHAR_HEADING(GetPlayerPed(), &heading);
  472.         GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
  473.         GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, 1, -1, &offx, &offy, &offz);
  474.         CREATE_OBJECT_NO_OFFSET(0x48FA2738, offx, offy, offz, &rocket, true);
  475.         SET_OBJECT_VISIBLE(rocket, true);
  476.         if(DOES_OBJECT_EXIST(rocket)){
  477.             GET_NETWORK_ID_FROM_OBJECT(rocket, &rocketID);
  478.             SET_NETWORK_ID_CAN_MIGRATE(rocketID, false);
  479.             SET_OBJECT_INVINCIBLE(rocket, true);
  480.             SET_OBJECT_DYNAMIC(rocket, true);
  481.             SET_OBJECT_COLLISION(rocket, true);
  482.             SET_OBJECT_RECORDS_COLLISIONS(rocket, true);
  483.             SET_OBJECT_AS_STEALABLE(rocket, false);
  484.             START_PTFX_ON_OBJ("weap_rocket_player", rocket, 0.00000000, -0.04000000, 0.00000000, 0.00000000, 0.00000000, 2.00000000, 1);
  485.             RELEASE_SOUND_ID(-1);
  486.             while(DOES_OBJECT_EXIST(rocket) && DOES_VEHICLE_EXIST(victim)){
  487.                 WAIT(0);
  488.                 if(!DOES_VEHICLE_EXIST(victim)){
  489.                     FREEZE_OBJECT_POSITION(rocket, true);
  490.                     GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
  491.                     EXPLODE(ox, oy, oz);
  492.                     DELETE_OBJECT(&rocket);
  493.                     MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
  494.                     print("~r~Target has dissappeared!");
  495.                     break;
  496.                 }
  497.                 if((HAS_OBJECT_COLLIDED_WITH_ANYTHING(rocket)) || (objYouDist >= 450)){
  498.                     FREEZE_OBJECT_POSITION(rocket, true);
  499.                     GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
  500.                     EXPLODE(ox, oy, oz);
  501.                     DELETE_OBJECT(&rocket);
  502.                     MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
  503.                     break;
  504.                 }
  505.                 GET_CAR_COORDINATES(victim, &cx, &cy, &cz);
  506.                 GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
  507.                 fx = cx - ox;
  508.                 fy = cy - oy;
  509.                 fz = cz - oz;
  510.                 FOLLOW_COORDINATES(&fx, &fy, &fz, 250);
  511.                 GET_DISTANCE_BETWEEN_COORDS_2D(cx, cy, ox, oy, &objCarDist);
  512.                 if(objCarDist < 20 && objCarDist > 3){
  513.                     APPLY_FORCE_TO_OBJECT(rocket, 1, fx, fy, 5, 0, 0, 0, 1, 0, 1, 1);
  514.                 }
  515.                 else{
  516.                     APPLY_FORCE_TO_OBJECT(rocket, 1, fx, fy, fz, 0, 0, 0, 1, 0, 1, 1);
  517.                 }
  518.                 GET_CAR_COORDINATES(myVeh, &x, &y, &z);
  519.                 GET_DISTANCE_BETWEEN_COORDS_2D(x, y, ox, oy, &objYouDist);
  520.             }
  521.         }
  522.     }
  523. }
  524.  
  525. void SHOOT(Vehicle victim){
  526.     if(DOES_VEHICLE_EXIST(victim)){
  527.         float ix, iy, iz;
  528.         GET_CAR_COORDINATES(victim, &ix, &iy, &iz);
  529.         DRAW_COLOURED_CYLINDER(ix, iy, iz + 1, 1, 1, 0, 255, 0, 255);
  530.         DRAW_CHECKPOINT(ix, iy, iz, 1.0f, 0, 255, 0);
  531.         DRAW_CHECKPOINT(ix - 3, iy, iz, 1.0f, 0, 255, 0);
  532.         DRAW_CHECKPOINT(ix - 1, iy, iz, 1.0f, 0, 255, 0);
  533.         DRAW_CHECKPOINT(ix + 1, iy, iz, 1.0f, 0, 255, 0);
  534.         DRAW_CHECKPOINT(ix + 3, iy, iz, 1.0f, 0, 255, 0);
  535.         DRAW_CHECKPOINT(ix, iy - 3, iz, 1.0f, 0, 255, 0);
  536.         DRAW_CHECKPOINT(ix, iy - 1, iz, 1.0f, 0, 255, 0);
  537.         DRAW_CHECKPOINT(ix, iy + 1, iz, 1.0f, 0, 255, 0);
  538.         DRAW_CHECKPOINT(ix, iy + 3, iz, 1.0f, 0, 255, 0);
  539.         DRAW_CHECKPOINT(ix, iy, iz - 3, 1.0f, 0, 255, 0);
  540.         DRAW_CHECKPOINT(ix, iy, iz - 1, 1.0f, 0, 255, 0);
  541.         DRAW_CHECKPOINT(ix, iy, iz + 1, 1.0f, 0, 255, 0);
  542.         DRAW_CHECKPOINT(ix, iy, iz + 3, 1.0f, 0, 255, 0);
  543.         if(IS_BUTTON_JUST_PRESSED(0, BUTTON_X)){
  544.             FOLLOW(victim);
  545.         }
  546.     }
  547. }
  548.  
  549. void RESET_EVERYTHING(void){
  550.     if(DOES_OBJECT_EXIST(plane)){
  551.         DELETE_OBJECT(&plane);
  552.         MARK_OBJECT_AS_NO_LONGER_NEEDED(&plane);
  553.     }
  554.     if(DOES_VEHICLE_EXIST(myVeh)){
  555.         DELETE_CAR(&myVeh);
  556.         MARK_CAR_AS_NO_LONGER_NEEDED(&myVeh);
  557.     }
  558.     GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
  559.     GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zGround);
  560.     TELEPORT(x, y, zGround);
  561.     SET_CHAR_VISIBLE(GetPlayerPed(), true);
  562.     number = 0;
  563.     anotherNumber = 0;
  564.     controlling = false;
  565.     after = false;
  566.     hydra = false;
  567.     modon = false;
  568. }
  569.  
  570.  
  571. /*---------------------------------------Actions---------------------------------------*/
  572. void selectionLoops(void){
  573.     if(modon){
  574.         if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
  575.             if(select == 1){
  576.                 if(homing){
  577.                     if(IS_BUTTON_JUST_PRESSED(0, DPAD_DOWN)){
  578.                         if(!networkPlayers){
  579.                             networkPlayers = true;
  580.                             print("~g~Homing missiles will now lock onto Network Players' vehicles!");
  581.                         }
  582.                         else{
  583.                             networkPlayers = false;
  584.                             print("~g~Homing missiles will now lock onto Pedestrian vehicles!");
  585.                         }
  586.                     }
  587.                     if(IS_BUTTON_PRESSED(0, BUTTON_A)){
  588.                         Vehicle catch;
  589.                         bool found;
  590.                         GET_CAR_CHAR_IS_AIMING_AT(&catch, 250);
  591.                         if((DOES_VEHICLE_EXIST(catch)) && (!IS_CAR_DEAD(catch))){
  592.                             found = true;
  593.                         }
  594.                         if(found){
  595.                             SHOOT(catch);
  596.                             found = false;
  597.                         }
  598.                     }
  599.                 }
  600.             }
  601.             if(select == 2){
  602.                 if(rockets){
  603.                     if(IS_BUTTON_JUST_PRESSED(0, BUTTON_X)){
  604.                         if(!DOES_CHAR_EXIST(rped1) && !DOES_CHAR_EXIST(rped2)){
  605.                             GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, -3, 1.5, -3.5770, &offx1, &offy1, &offz1);
  606.                             CREATE_RANDOM_CHAR(offx1, offy1, offz1, &rped1);
  607.                             SET_CHAR_VISIBLE(rped1, false);
  608.                             SET_CHAR_COLLISION(rped1, false);
  609.                             GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 3, 1.5, -3.5770, &offx2, &offy2, &offz2);
  610.                             CREATE_RANDOM_CHAR(offx2, offy2, offz2, &rped2);
  611.                             SET_CHAR_VISIBLE(rped2, false);
  612.                             SET_CHAR_COLLISION(rped2, false);
  613.                             WAIT(10);
  614.                             if(DOES_CHAR_EXIST(rped1) && DOES_CHAR_EXIST(rped2)){
  615.                                 GIVE_WEAPON_TO_CHAR(rped1, WEAPON_RLAUNCHER, 30000, 0);
  616.                                 SET_CURRENT_CHAR_WEAPON(rped1, WEAPON_RLAUNCHER, 1);
  617.                                 GIVE_WEAPON_TO_CHAR(rped2, WEAPON_RLAUNCHER, 30000, 0);
  618.                                 SET_CURRENT_CHAR_WEAPON(rped2, WEAPON_RLAUNCHER, 1);
  619.                                 GET_CURRENT_CHAR_WEAPON(rped1, &weapon1);
  620.                                 GET_MAX_AMMO_IN_CLIP(rped1, weapon1, &ammo1);
  621.                                 GET_MAX_AMMO(rped1, weapon1, &max_ammo1);
  622.                                 ENABLE_MAX_AMMO_CAP(false);
  623.                                 SET_CHAR_AMMO(rped1, weapon1, max_ammo1);
  624.                                 SET_AMMO_IN_CLIP(rped1, weapon1, ammo1);
  625.                                 GET_CURRENT_CHAR_WEAPON(rped2, &weapon2);
  626.                                 GET_MAX_AMMO_IN_CLIP(rped2, weapon2, &ammo2);
  627.                                 GET_MAX_AMMO(rped2, weapon2, &max_ammo2);
  628.                                 ENABLE_MAX_AMMO_CAP(false);
  629.                                 SET_CHAR_AMMO(rped2, weapon2, max_ammo2);
  630.                                 SET_AMMO_IN_CLIP(rped2, weapon2, ammo2);
  631.                                 GET_CAR_HEADING(myVeh, &heading);
  632.                                 GET_CAR_PITCH(myVeh, &pitch);
  633.                                 GET_CAR_COORDINATES(myVeh, &x, &y, &z);
  634.                                 FIRE_PED_WEAPON(rped1, x + (60 * (SIN((-1 * heading)))), y + (60 * (COS((-1 * heading)))), z + pitch);
  635.                                 FIRE_PED_WEAPON(rped2, x + (60 * (SIN((-1 * heading)))), y + (60 * (COS((-1 * heading)))), z + pitch);
  636.                                 DELETE_CHAR(&rped1);
  637.                                 DELETE_CHAR(&rped2);
  638.                             }
  639.                         }
  640.                     }
  641.                 }
  642.             }
  643.             if(select == 3){
  644.                 if(bombs){
  645.                     if(IS_BUTTON_PRESSED(0, BUTTON_X)){
  646.                         if(number < 10){
  647.                             if(!HAS_MODEL_LOADED(0x7E339194)){
  648.                                 REQUEST_MODEL(0x7E339194);
  649.                                 while(!HAS_MODEL_LOADED(0x7E339194)){
  650.                                     WAIT(0);
  651.                                     REQUEST_MODEL(0x7E339194);
  652.                                 }
  653.                             }
  654.                             GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0.5, 0, -2.1, &offx, &offy, &offz);
  655.                             CREATE_OBJECT(0x7E339194, offx, offy, offz, &bomb[number], 1);
  656.                             SET_OBJECT_HEALTH(bomb[number], 100.0);
  657.                             SET_OBJECT_ROTATION(bomb[number], 90.0, 0.0, 0.0);
  658.                             SET_OBJECT_COLLISION(bomb[number], true);
  659.                             SET_OBJECT_RECORDS_COLLISIONS(bomb[number], true);
  660.                             SET_OBJECT_AS_STEALABLE(bomb[number], false);
  661.                             GET_VEHICLE_QUATERNION(myVeh, &something1, &something2, &something3, &something4);
  662.                             SET_OBJECT_QUATERNION(bomb[number], something1, something2, something3, something4);
  663.                             WAIT(0);
  664.                             APPLY_FORCE_TO_OBJECT(bomb[number], 1, 0, 0, -1000, 0, 0, 0, true, true, true, true);
  665.                             number++;
  666.                         }
  667.                         else{
  668.                             printShort("~r~Reloading...");
  669.                         }
  670.                     }
  671.                     anotherNumber++;
  672.                     if(anotherNumber > 9){
  673.                         anotherNumber = 0;
  674.                     }
  675.                     if(DOES_OBJECT_EXIST(bomb[anotherNumber])){
  676.                         GET_CAR_COORDINATES(myVeh, &x, &y, &z);
  677.                         GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
  678.                         GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, ox, oy, oz, &distance);
  679.                         if(distance >= 150){
  680.                             FREEZE_OBJECT_POSITION(bomb[anotherNumber], true);
  681.                             GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
  682.                             BOMB_EXPLOSION(ox, oy, oz);
  683.                             DELETE_OBJECT(&bomb[anotherNumber]);
  684.                             MARK_OBJECT_AS_NO_LONGER_NEEDED(&bomb[anotherNumber]);
  685.                             number--;
  686.                             if(number < 0){
  687.                                 number = 0;
  688.                             }
  689.                         }
  690.                         if(HAS_OBJECT_COLLIDED_WITH_ANYTHING(bomb[anotherNumber]) || IS_OBJECT_IN_WATER(bomb[anotherNumber])){
  691.                             FREEZE_OBJECT_POSITION(bomb[anotherNumber], true);
  692.                             GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
  693.                             BOMB_EXPLOSION(ox, oy, oz);
  694.                             DELETE_OBJECT(&bomb[anotherNumber]);
  695.                             MARK_OBJECT_AS_NO_LONGER_NEEDED(&bomb[anotherNumber]);
  696.                             number--;
  697.                             if(number < 0){
  698.                                 number = 0;
  699.                             }
  700.                         }
  701.                     }
  702.                 }
  703.             }
  704.             if(select == 4){
  705.                 if(napalms){
  706.                     if(IS_BUTTON_PRESSED(0, BUTTON_X)){
  707.                         if(number < 10){
  708.                             if(!HAS_MODEL_LOADED(0x7E339194)){
  709.                                 REQUEST_MODEL(0x7E339194);
  710.                                 while(!HAS_MODEL_LOADED(0x7E339194)){
  711.                                     WAIT(0);
  712.                                     REQUEST_MODEL(0x7E339194);
  713.                                 }
  714.                             }
  715.                             GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0.5, 0, -2.1, &offx, &offy, &offz);
  716.                             CREATE_OBJECT(0x7E339194, offx, offy, offz, &napalm[number], 1);
  717.                             SET_OBJECT_HEALTH(napalm[number], 100.0);
  718.                             SET_OBJECT_ROTATION(napalm[number], 90.0, 0.0, 0.0);
  719.                             SET_OBJECT_COLLISION(napalm[number], true);
  720.                             SET_OBJECT_RECORDS_COLLISIONS(napalm[number], true);
  721.                             SET_OBJECT_AS_STEALABLE(napalm[number], false);
  722.                             GET_VEHICLE_QUATERNION(myVeh, &something1, &something2, &something3, &something4);
  723.                             SET_OBJECT_QUATERNION(napalm[number], something1, something2, something3, something4);
  724.                             WAIT(0);
  725.                             APPLY_FORCE_TO_OBJECT(napalm[number], 1, 0, 0, -1000, 0, 0, 0, true, true, true, true);
  726.                             number++;
  727.                         }
  728.                         else{
  729.                             printShort("~r~Reloading...");
  730.                         }
  731.                     }
  732.                     anotherNumber++;
  733.                     if(anotherNumber > 9){
  734.                         anotherNumber = 0;
  735.                     }
  736.                     if(DOES_OBJECT_EXIST(napalm[anotherNumber])){
  737.                         GET_CAR_COORDINATES(myVeh, &x, &y, &z);
  738.                         GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
  739.                         GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, ox, oy, oz, &distance);
  740.                         if(distance >= 150){
  741.                             FREEZE_OBJECT_POSITION(napalm[anotherNumber], true);
  742.                             GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
  743.                             MOLY_EXPLOSION(ox, oy, oz);
  744.                             DELETE_OBJECT(&napalm[anotherNumber]);
  745.                             MARK_OBJECT_AS_NO_LONGER_NEEDED(&napalm[anotherNumber]);
  746.                             number--;
  747.                             if(number < 0){
  748.                                 number = 0;
  749.                             }
  750.                         }
  751.                         if(HAS_OBJECT_COLLIDED_WITH_ANYTHING(napalm[anotherNumber]) || IS_OBJECT_IN_WATER(napalm[anotherNumber])){
  752.                             FREEZE_OBJECT_POSITION(napalm[anotherNumber], true);
  753.                             GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
  754.                             MOLY_EXPLOSION(ox, oy, oz);
  755.                             DELETE_OBJECT(&napalm[anotherNumber]);
  756.                             MARK_OBJECT_AS_NO_LONGER_NEEDED(&napalm[anotherNumber]);
  757.                             number--;
  758.                             if(number < 0){
  759.                                 number = 0;
  760.                             }
  761.                         }
  762.                     }
  763.                 }
  764.             }
  765.         }
  766.     }
  767. }
  768.  
  769. void selections(void){
  770.     if(modon){
  771.         if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
  772.             if(IS_BUTTON_PRESSED(0, BUTTON_LB) && IS_BUTTON_JUST_PRESSED(0, BUTTON_RB)){
  773.                 if(!showSelection){
  774.                     showSelection = true;
  775.                 }
  776.                 else{
  777.                     showSelection = false;
  778.                 }
  779.             }
  780.             if(showSelection){
  781.                 if(IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
  782.                     showSelection = false;
  783.                 }
  784.                 if(IS_BUTTON_JUST_PRESSED(0, DPAD_LEFT)){
  785.                     select--;
  786.                 }
  787.                 if(IS_BUTTON_JUST_PRESSED(0, DPAD_RIGHT)){
  788.                     select++;
  789.                 }
  790.                 if(select > 4){
  791.                     select = 1;
  792.                 }
  793.                 if(select < 1){
  794.                     select = 4;
  795.                 }
  796.                 if(select == 1){
  797.                     if(homing){
  798.                         printShort("~b~Homing Missiles: ~g~ACTIVATED");
  799.                     }
  800.                     else{
  801.                         printShort("~b~Homing Missiles: ~r~DEACTIVATED");
  802.                     }
  803.                     if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
  804.                         if(homing){
  805.                             homing = false;
  806.                         }
  807.                         else{
  808.                             printLong("~PAD_DPAD_DOWN~ toggle Peds and Network Players~g~  ~PAD_A~ to lockon~b~  ~PAD_X~ to shoot!");
  809.                             showSelection = false;
  810.                             homing = true;
  811.                             rockets = false;
  812.                             bombs = false;
  813.                             napalms = false;
  814.                         }
  815.                     }
  816.                 }
  817.                 if(select == 2){
  818.                     if(rockets){
  819.                         printShort("~b~Rockets: ~g~ACTIVATED");
  820.                     }
  821.                     else{
  822.                         printShort("~b~Rockets: ~r~DEACTIVATED");
  823.                     }
  824.                     if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
  825.                         if(rockets){
  826.                             rockets = false;
  827.                         }
  828.                         else{
  829.                             print("~b~Rockets: ~g~ACTIVATED ~w~Press ~PAD_X~ to shoot!");
  830.                             showSelection = false;
  831.                             rockets = true;
  832.                             homing = false;
  833.                             bombs = false;
  834.                             napalms = false;
  835.                         }
  836.                     }
  837.                 }
  838.                 if(select == 3){
  839.                     if(bombs){
  840.                         printShort("~b~Bombs: ~g~ACTIVATED");
  841.                     }
  842.                     else{
  843.                         printShort("~b~Bombs: ~r~DEACTIVATED");
  844.                     }
  845.                     if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
  846.                         if(bombs){
  847.                             bombs = false;
  848.                         }
  849.                         else{
  850.                             print("~b~Bombs: ~g~ACTIVATED ~w~Hold ~PAD_X~ to drop!");
  851.                             showSelection = false;
  852.                             bombs = true;
  853.                             homing = false;
  854.                             rockets = false;
  855.                             napalms = false;
  856.                         }
  857.                     }
  858.                 }
  859.                 if(select == 4){
  860.                     if(napalms){
  861.                         printShort("~b~Napalms: ~g~ACTIVATED");
  862.                     }
  863.                     else{
  864.                         printShort("~b~Napalms: ~r~DEACTIVATED");
  865.                     }
  866.                     if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
  867.                         if(napalms){
  868.                             napalms = false;
  869.                         }
  870.                         else{
  871.                             print("~b~Napalms: ~g~ACTIVATED ~w~Hold ~PAD_X~ to drop!");
  872.                             showSelection = false;
  873.                             napalms = true;
  874.                             homing = false;
  875.                             rockets = false;
  876.                             bombs = false;
  877.                         }
  878.                     }
  879.                 }
  880.             }
  881.         }
  882.     }
  883. }
  884.  
  885. void flyingLoop(void){
  886.     if(modon){
  887.         if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
  888.             if(IS_BUTTON_JUST_PRESSED(0, STICK_LEFT)){
  889.                 if(!after){
  890.                     print("~b~Afterburners: ~g~ACTIVATED");
  891.                     after = true;
  892.                 }
  893.                 else{
  894.                     print("~b~Afterburners: ~r~DEACTIVATED");
  895.                     after = false;
  896.                 }
  897.             }
  898.             if(IS_BUTTON_JUST_PRESSED(0, STICK_RIGHT)){
  899.                 if(!hydra){
  900.                     print("~b~Hydra Mode: ~g~ACTIVATED");
  901.                     hydra = true;
  902.                 }
  903.                 else{
  904.                     print("~b~Hydra Mode: ~r~DEACTIVATED");
  905.                     hydra = false;
  906.                 }
  907.             }
  908.             if(IS_BUTTON_PRESSED(0, BUTTON_R)){
  909.                 if(after){
  910.                     GET_CAR_SPEED(myVeh, &speed);
  911.                     SET_CAR_FORWARD_SPEED(myVeh, (speed / 0.3));
  912.                 }
  913.                 if(hydra){
  914.                     //nothing goes here to give the helicopter effect back
  915.                 }
  916.                 if(hydra && after){
  917.                     print("~r~Only one can be activated! ~b~Hydra Mode: ~g~ACTIVATED");
  918.                     after = false;
  919.                 }
  920.                 if(!hydra && !after){ //can't be an else
  921.                     GET_CAR_SPEED(myVeh, &speed);
  922.                     SET_CAR_FORWARD_SPEED(myVeh, (speed * 1.02));
  923.                 }
  924.             }
  925.             if(IS_BUTTON_PRESSED(0, BUTTON_L)){
  926.                 if(!hydra){
  927.                     GET_CAR_SPEED(myVeh, &speed);
  928.                     SET_CAR_FORWARD_SPEED(myVeh, (speed - 1));
  929.                     if(speed < 30){
  930.                         APPLY_FORCE_TO_CAR(myVeh, true, 0, 9, 4, 0, 0, 0, true, true, true, true);
  931.                     }
  932.                 }
  933.             }
  934.             if(!IS_BUTTON_PRESSED(0, BUTTON_L) && !IS_BUTTON_PRESSED(0, BUTTON_R)){
  935.                 if(!hydra){
  936.                     GET_CAR_SPEED(myVeh, &speed);
  937.                     SET_CAR_FORWARD_SPEED(myVeh, (speed - 0.9));
  938.                     if(speed < 30){
  939.                         APPLY_FORCE_TO_CAR(myVeh, true, 0, 9, 4, 0, 0, 0, true, true, true, true);
  940.                     }
  941.                 }
  942.             }
  943.         }
  944.     }
  945. }
  946.  
  947. void loop(void){
  948.     if(modon){
  949.         DISABLE_FRONTEND_RADIO();
  950.         if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
  951.             GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
  952.             PLAY_SOUND_FROM_VEHICLE(GET_SOUND_ID(), "VEHICLES_AMBIENT_JETS_JET_ENGINE", myVeh);
  953.             SET_CAR_CAN_BE_DAMAGED(myVeh, false);
  954.             SET_CAR_CAN_BE_VISIBLY_DAMAGED(myVeh, false);
  955.             SET_CAN_BURST_CAR_TYRES(myVeh, false);
  956.         }
  957.         else{
  958.             STOP_SOUND(-1);
  959.         }
  960.     }
  961.     else{
  962.         ENABLE_FRONTEND_RADIO();
  963.     }
  964. }
  965.  
  966. void toggle(void){
  967.     if(IS_BUTTON_PRESSED(0, BUTTON_A) && IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
  968.         if(!modon){
  969.             TELEPORT(2264.2397, 894.4479, 6); //airport
  970.             WAIT(5);
  971.             SPAWN_VEHICLE(MODEL_POLMAV);
  972.             WAIT(5);
  973.             if(IS_CHAR_IN_MODEL(GetPlayerPed(), MODEL_POLMAV)){
  974.                 GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
  975.                 ATTACH_PLANE(myVeh);
  976.                 APPLY_FORCE_TO_CAR(myVeh, true, 0, 100, 6, 0, 0, 0, true, true, true, true);
  977.                 modon = true;
  978.                 print("~b~Fighter Jet: ~g~ON");
  979.             }
  980.         }
  981.         else{
  982.             RESET_EVERYTHING();
  983.             print("~b~Fighter Jet: ~r~OFF");
  984.         }
  985.     }
  986. }
  987.  
  988.  
  989. /*----------------------------------------Start----------------------------------------*/
  990. void main(void){
  991.     THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
  992.     print("~COL_NET_3~Fighter Jet v2 by XF CH3WY!");
  993.     WAIT(3000);
  994.     print("~COL_NET_2~Press ~PAD_LB~ + ~PAD_A~ for controls!");
  995.     do{
  996.         toggle();
  997.         controls();
  998.         loop();
  999.         flyingLoop();
  1000.         selections();
  1001.         selectionLoops();
  1002.         WAIT(0);
  1003.     }while(true);
  1004. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement