Advertisement
Guest User

Untitled

a guest
May 15th, 2015
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.81 KB | None | 0 0
  1. #include "script.h"
  2. #include <random>
  3. #include <iostream>
  4. #include <string>
  5. #include <ctime>
  6.  
  7. #pragma warning(disable : 4244 4305) // double <-> float conversions
  8.  
  9. Ped playerPed;
  10. float x, y, z, sx, sy, sz;
  11. Any blip[20];
  12. Vector3 spawnPt, spawnPt1, spawnPt2, position;
  13. Vector3 vehPos;
  14. DWORD combatMdl, driverMdl;
  15. DWORD crusaderHash, tankHash, lazerHash, insurgentHash, barracksHash, annihilatorHash, insurgentGHash, buzzardHash;
  16. // 14 slots, if it's too much, so what ?
  17. Any mainVehicle[20];
  18. Any crua[20], crub[20], cruc[20], crud[20];
  19. bool wasWanted = false;
  20. bool firstStart = true;
  21. bool ready[20];
  22. int delFlag = 0;
  23. float dist;
  24. bool debugV = true;
  25.  
  26.  
  27. bool isInAir = false;
  28. //void set_spawn_points(Ped playerPed)
  29. //{
  30. //  spawnPt1.x = position.x + 200.0f;
  31. //  spawnPt1.y = position.y;
  32. //  spawnPt1.z = position.z + 4.0f;
  33. //  spawnPt2.x = position.x;
  34. //  spawnPt2.y = position.y + 150.0f;
  35. //  spawnPt1.z = position.z + 4.0f;
  36. //  x = position.x;
  37. //  y = position.y;
  38. //  z = position.z;
  39. //}
  40.  
  41. void debug_func()
  42. {
  43.     if (debugV) {
  44.         debugV = false;
  45.         DWORD vehHash = buzzardHash;
  46.         STREAMING::REQUEST_MODEL(GAMEPLAY::GET_HASH_KEY("WEAPON_CARBINERIFLE")); STREAMING::REQUEST_MODEL(driverMdl); STREAMING::REQUEST_MODEL(combatMdl); STREAMING::REQUEST_MODEL(vehHash); STREAMING::REQUEST_MODEL(GAMEPLAY::GET_HASH_KEY("WEAPON_COMBATMG"));
  47.         // WAITING FOR LOADING //
  48.         while (!STREAMING::HAS_MODEL_LOADED(driverMdl) && !STREAMING::HAS_MODEL_LOADED(combatMdl) && !STREAMING::HAS_MODEL_LOADED(vehHash) && !STREAMING::HAS_MODEL_LOADED(GAMEPLAY::GET_HASH_KEY("WEAPON_COMBATMG")) && !STREAMING::HAS_MODEL_LOADED((GAMEPLAY::GET_HASH_KEY("WEAPON_CARBINERIFLE"))))
  49.             WAIT(100);
  50.         mainVehicle[19] = VEHICLE::CREATE_VEHICLE(vehHash, position.x + 5.0f, position.y, position.z, ENTITY::GET_ENTITY_HEADING(playerPed), 0, true); WAIT(100);
  51.         crua[19] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[19], 3, combatMdl, -1, false, false);
  52.         WEAPON::SET_CURRENT_PED_WEAPON(crua[19], GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"), true);
  53.         WEAPON::SET_PED_INFINITE_AMMO(crua[19], true, GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"));
  54.         PED::SET_PED_SHOOT_RATE(crua[19], 1000);
  55.         AI::TASK_VEHICLE_SHOOT_AT_PED(crua[19], playerPed, 100.0f);
  56.     }
  57. }
  58.  
  59. void spawnIns(int type, int spawnId)
  60. {
  61.     bool gIns = false;
  62.     DWORD vehHash;
  63.     DWORD weapHash;
  64.     weapHash = GAMEPLAY::GET_HASH_KEY("WEAPON_CARBINERIFLE");
  65.     ready[spawnId] = false;
  66.     // DYNAMIC SPAWN PTS
  67.     spawnPt = spawnPt2;
  68.     if (rand() % 11 > 5) spawnPt = spawnPt1;
  69.     spawnPt.z += 15.0f;
  70.     if (type == 5 || type == 7) spawnPt.z += 250.0f;
  71.     // CRUSADER
  72.     if (type == 1) vehHash = crusaderHash;
  73.     if (type == 2) { vehHash = insurgentHash; if (rand() % 2 == 1) { vehHash = insurgentGHash; gIns = true; } }
  74.     if (type == 3) vehHash = barracksHash;
  75.     // TANK
  76.     if (type == 4) vehHash = tankHash;
  77.     // AIR VEHICLES
  78.     // ANIHILATOR
  79.     if (type == 5) vehHash = annihilatorHash;
  80.     if (type == 5) weapHash = GAMEPLAY::GET_HASH_KEY("WEAPON_COMBATMG");
  81.     // LAZERS
  82.     if (type == 6) vehHash = lazerHash;
  83.     if (type == 7) vehHash = buzzardHash;
  84.  
  85.     ////////// STREAMING AND SPAWNING //////////
  86.     // STREAMING REQUESTS //
  87.     STREAMING::REQUEST_MODEL(GAMEPLAY::GET_HASH_KEY("WEAPON_CARBINERIFLE")); STREAMING::REQUEST_MODEL(driverMdl); STREAMING::REQUEST_MODEL(combatMdl); STREAMING::REQUEST_MODEL(vehHash); STREAMING::REQUEST_MODEL(GAMEPLAY::GET_HASH_KEY("WEAPON_COMBATMG"));
  88.     // WAITING FOR LOADING //
  89.     while (!STREAMING::HAS_MODEL_LOADED(driverMdl) && !STREAMING::HAS_MODEL_LOADED(combatMdl) && !STREAMING::HAS_MODEL_LOADED(vehHash) && !STREAMING::HAS_MODEL_LOADED(GAMEPLAY::GET_HASH_KEY("WEAPON_COMBATMG")) && !STREAMING::HAS_MODEL_LOADED((GAMEPLAY::GET_HASH_KEY("WEAPON_CARBINERIFLE"))))
  90.         WAIT(100);
  91.  
  92.     // SPAWNING VEHICLE FIRST //
  93.     mainVehicle[spawnId] = VEHICLE::CREATE_VEHICLE(vehHash, spawnPt.x, spawnPt.y, spawnPt.z - 15.0f, ENTITY::GET_ENTITY_HEADING(playerPed) , 0, true); WAIT(100);
  94.     // WAITING 100ms
  95.     // SETTING ON GROUND AND CREATING PEDS [ONLY FOR GROUND VEHICLES!!]
  96.     if (type < 5) VEHICLE::SET_VEHICLE_ON_GROUND_PROPERLY(mainVehicle[spawnId]);
  97.     if (type < 5) WAIT(2000);
  98.     WAIT(100);
  99.     // ALWAYS SPAWNING PILOT
  100.     crua[spawnId] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[spawnId], 3, driverMdl, -1, false, false);
  101.     // ONLY SPAWNING SECOND PERSONNEL IF NOT AIR VEHICLE AND NOT TANK
  102.     if (type < 4) { if (gIns){ crub[spawnId] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[spawnId], 3, combatMdl, 7, false, false); } else { crub[spawnId] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[spawnId], 3, combatMdl, 0, false, false); } }
  103.     // ONLY SPAWNING IF IS ANNI CREW OR GROUND VEHICLES
  104.     if (type == 5 || type < 4) cruc[spawnId] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[spawnId], 3, combatMdl, 1, false, false);
  105.     if (type == 5 || type < 4) crud[spawnId] = PED::CREATE_PED_INSIDE_VEHICLE(mainVehicle[spawnId], 3, combatMdl, 2, false, false);
  106.  
  107.     ////////// TASKS ON SPAWN //////////
  108.     if (type < 5) AI::TASK_VEHICLE_DRIVE_TO_COORD(crua[spawnId], mainVehicle[spawnId], position.x, position.y, position.z, 70.0f, 1, ENTITY::GET_ENTITY_MODEL(mainVehicle[spawnId]), 1, 0xC00AB, -1);
  109.     if (type == 6){ VEHICLE::SET_VEHICLE_FORWARD_SPEED(mainVehicle[spawnId], 80.0f); }
  110.     else { VEHICLE::SET_VEHICLE_FORWARD_SPEED(mainVehicle[spawnId], 10.0f); }
  111.     if (type == 5 || type == 7) VEHICLE::SET_HELI_BLADES_FULL_SPEED(mainVehicle[spawnId]);
  112.     // ADDING ARMOUR TO 3 CREW MEMBERS, PILOT NEVER HAS ARMOR.
  113.     if (type < 4) PED::ADD_ARMOUR_TO_PED(crub[spawnId], 100);
  114.     if (type == 5 || type < 4) PED::ADD_ARMOUR_TO_PED(cruc[spawnId], 100);
  115.     if (type == 5 || type < 4) PED::ADD_ARMOUR_TO_PED(crud[spawnId], 100);
  116.     // WEAPON DELAYED
  117.     WEAPON::GIVE_DELAYED_WEAPON_TO_PED(crua[spawnId], weapHash, 100, false);
  118.     if (type < 4) WEAPON::GIVE_DELAYED_WEAPON_TO_PED(crub[spawnId], weapHash, 100, false);
  119.     if (type == 5 || type < 4) WEAPON::GIVE_DELAYED_WEAPON_TO_PED(cruc[spawnId], weapHash, 100, false);
  120.     if (type == 5 || type < 4) WEAPON::GIVE_DELAYED_WEAPON_TO_PED(crud[spawnId], weapHash, 100, false);
  121.     if (type == 5) WAIT(2000);
  122.     if (gIns) {
  123.         WEAPON::SET_CURRENT_PED_WEAPON(crub[spawnId], GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_TURRET_INSURGENT"), true);
  124.         WEAPON::SET_PED_INFINITE_AMMO(crub[spawnId], true, GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_TURRET_INSURGENT"));
  125.         PED::SET_PED_SHOOT_RATE(crub[spawnId], 1000);
  126.     }
  127.     if (type == 6) {
  128.         VEHICLE::SET_VEHICLE_STEER_BIAS(mainVehicle[spawnId], 250.0f);
  129.         VEHICLE::SET_VEHICLE_FORWARD_SPEED(mainVehicle[spawnId], 200.0f);
  130.         ENTITY::SET_ENTITY_MAX_SPEED(mainVehicle[spawnId], 200.0f);
  131.         AI::TASK_LOOK_AT_ENTITY(crua[spawnId], playerPed, -1, 2048, 3);
  132.         AI::TASK_PLANE_CHASE(crua[spawnId], playerPed, 150.0f, 150.0f, 250.0f);
  133.         WAIT(1000);
  134.     }
  135.     if (type == 7) {
  136.         WEAPON::SET_CURRENT_PED_WEAPON(crua[spawnId], GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"), true);
  137.         WEAPON::SET_PED_INFINITE_AMMO(crua[spawnId], true, GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"));
  138.         PED::SET_PED_SHOOT_RATE(crua[spawnId], 2000);
  139.         AI::TASK_VEHICLE_SHOOT_AT_PED(crua[spawnId], playerPed, 100.0f);
  140.         AI::TASK_VEHICLE_CHASE(crua[spawnId], playerPed);
  141.     }
  142.     if (spawnId > 8) {
  143.         blip[spawnId] = UI::GET_BLIP_FROM_ENTITY(mainVehicle[spawnId]);
  144.         UI::REMOVE_BLIP(&blip[spawnId]);
  145.         blip[spawnId] = UI::ADD_BLIP_FOR_ENTITY(mainVehicle[spawnId]);
  146.         UI::SET_BLIP_SPRITE(blip[spawnId], 16);
  147.         UI::SET_BLIP_AS_MISSION_CREATOR_BLIP(blip[spawnId], false);
  148.         UI::SET_BLIP_FADE(blip[spawnId], false, false);
  149.     }
  150.     if (spawnId < 7) {
  151.         blip[spawnId] = UI::ADD_BLIP_FOR_ENTITY(mainVehicle[spawnId]);
  152.         UI::SET_BLIP_SPRITE(blip[spawnId], 8);
  153.         UI::SET_BLIP_FLASHES(blip[spawnId], true);
  154.     }
  155.         UI::SET_BLIP_AS_SHORT_RANGE(blip[spawnId], false);
  156.         UI::SET_BLIP_COLOUR(blip[spawnId], 1);
  157.     // BLIP ID 16 IS JET FIGHTER
  158.  
  159. }
  160.  
  161. void set_spawn_points()
  162. {
  163.     //// setting offset
  164.     //y = 300.0f;
  165.     //x = 300.0f;
  166.  
  167.     //// setting up spawn pts
  168.     //spawnPt1 = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(playerPed, 0.0, y, 0.0);
  169.     //spawnPt2 = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(playerPed, x, 0.0, 0.0);
  170.     if (isInAir == false) {
  171.         float step = 0.0f;
  172.         if (rand() % 2 == 1){ step = -180.0f; }
  173.         else { step = 180.0f; }
  174.         spawnPt1 = position;
  175.         spawnPt1.x = position.x + step;
  176.         if (rand() % 2 == 1){ step = -180.0f; }
  177.         else { step = 180.0f; }
  178.         spawnPt2 = position;
  179.         spawnPt2.y = position.y + step;
  180.        
  181.  
  182.         if (rand() % 2 == 1){ step = -2.0f; }
  183.         else { step = 2.0f; }
  184.  
  185.         // set spawn points with a radius of 500
  186.         int maxStep = 50;
  187.         // finding spawnpt1 loop.
  188.         while (!PATHFIND::IS_POINT_ON_ROAD(spawnPt1.x, spawnPt1.y, spawnPt1.z, 0) && maxStep > 0)
  189.         {
  190.             spawnPt1.x += step;
  191.             maxStep--;
  192.         }
  193.         // resetting max step to 75
  194.         maxStep = 50;
  195.         if (rand() % 2 == 1){ step = -2.0f; }
  196.         else { step = 2.0f; }
  197.         // finding spawnpt2 loop.
  198.         while (!PATHFIND::IS_POINT_ON_ROAD(spawnPt2.x, spawnPt2.y, spawnPt2.z, 0) && maxStep > 0)
  199.         {
  200.             spawnPt2.y -= step;
  201.             maxStep--;
  202.         }
  203.         GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(spawnPt2.x, spawnPt2.y, spawnPt2.z + 100.0f, &spawnPt2.z);
  204.         GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(spawnPt1.x, spawnPt1.y, spawnPt1.z + 100.0f, &spawnPt1.z);
  205.     }
  206.     else {
  207.         float step = 0.0f;
  208.         if (rand() % 2 == 1){ step = -150.0f; }
  209.         else { step = 150.0f; }
  210.         spawnPt1 = position;
  211.         spawnPt2 = position;
  212.         spawnPt1.x = position.x + step;
  213.         if (rand() % 2 == 1){ step = -150.0f; }
  214.         else { step = 150.0f; }
  215.         spawnPt2.y = position.y + step;
  216.         spawnPt1.z = position.z + 150.0f;
  217.         spawnPt2.z = position.z + 150.0f;
  218.     }
  219.  
  220. }
  221.  
  222.  
  223. void update()
  224. {
  225.     if (firstStart){
  226.         // setting up models
  227.         driverMdl = GAMEPLAY::GET_HASH_KEY("S_M_Y_Marine_01");
  228.         combatMdl = GAMEPLAY::GET_HASH_KEY("S_M_Y_Marine_03");
  229.  
  230.         // setting up vehicles
  231.         buzzardHash = GAMEPLAY::GET_HASH_KEY("buzzard");
  232.         crusaderHash = GAMEPLAY::GET_HASH_KEY("crusader");
  233.         tankHash = GAMEPLAY::GET_HASH_KEY("rhino");
  234.         annihilatorHash = GAMEPLAY::GET_HASH_KEY("annihilator");
  235.         insurgentHash = GAMEPLAY::GET_HASH_KEY("insurgent2");
  236.         insurgentGHash = GAMEPLAY::GET_HASH_KEY("insurgent");
  237.         lazerHash = GAMEPLAY::GET_HASH_KEY("lazer");
  238.         barracksHash = GAMEPLAY::GET_HASH_KEY("barracks");
  239.         firstStart = false;
  240.         for (int i = 0; i <= 19; i++){ ready[i] = true; }
  241.     }
  242.  
  243.     // SPAWN ID SYSTEM ///////
  244.     // LAND VEHICLES :: 0-5 //
  245.     // TANK          :: 6   //
  246.     // ANNIHILATORS  :: 7-8 //
  247.     // JETS          :: 9-16//
  248.     //////////////////////////
  249.     Player player = PLAYER::PLAYER_ID();
  250.     playerPed = PLAYER::PLAYER_PED_ID();
  251.     Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
  252.     position = ENTITY::GET_ENTITY_COORDS(playerPed, 1);
  253.     WAIT(1000);
  254.     isInAir = false;
  255.     if (PED::IS_PED_IN_FLYING_VEHICLE(playerPed)) isInAir = true;
  256.  
  257.  
  258.     if (PLAYER::GET_PLAYER_WANTED_LEVEL(player) > 4)
  259.     {
  260.        
  261.         dist = 210.0f;
  262.         if (PED::IS_PED_IN_ANY_VEHICLE(playerPed, false)) dist = 180.0f;
  263.         set_spawn_points();
  264.         //CLEANING UP
  265.         for (int i = 0; i <= 19; i++)
  266.         {
  267.             delFlag = 0;
  268.             vehPos = ENTITY::GET_ENTITY_COORDS(mainVehicle[i], false);
  269.             if (isInAir && !ENTITY::DOES_ENTITY_EXIST(mainVehicle[i])) ready[i] = true;
  270.             if (ENTITY::IS_ENTITY_DEAD(mainVehicle[i])) { ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&mainVehicle[i]); ready[i] = true; }
  271.             if (ENTITY::IS_ENTITY_DEAD(crua[i])){ ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crua[i]); UI::REMOVE_BLIP(&blip[i]); delFlag++; }
  272.             if (ENTITY::IS_ENTITY_DEAD(crub[i])){ ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crub[i]); UI::REMOVE_BLIP(&blip[i]); delFlag++; }
  273.             if (ENTITY::IS_ENTITY_DEAD(cruc[i])){ ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&cruc[i]); UI::REMOVE_BLIP(&blip[i]); delFlag++; }
  274.             if (ENTITY::IS_ENTITY_DEAD(crud[i])){ ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crud[i]); UI::REMOVE_BLIP(&blip[i]); delFlag++; }
  275.             // DELFLAG IS USED TO CHECK IF ALL THE CREW IS DEAD. IF IT'S THE CASE, THEN WE DELETE THE VEHICLE
  276.             // DELFLAG ONLY WORKS ON GROUND VEHICLES.
  277.             if (delFlag == 4){ ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&mainVehicle[i]); ready[i] = true; }
  278.             if (i < 7 || (i > 8 && i < 16)){
  279.                 if (i > 8 && i < 16) dist = 900.0f;
  280.                 if (!ENTITY::IS_ENTITY_AT_COORD(mainVehicle[i], position.x, position.y, position.z, dist, dist, dist * 1.5f, 0, 1, 0)){
  281.                     ENTITY::DELETE_ENTITY(&mainVehicle[i]);
  282.                     ENTITY::DELETE_ENTITY(&crua[i]);
  283.                     ENTITY::DELETE_ENTITY(&crub[i]);
  284.                     ENTITY::DELETE_ENTITY(&cruc[i]);
  285.                     ENTITY::DELETE_ENTITY(&crud[i]);
  286.                     ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&mainVehicle[i]);
  287.                     ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crua[i]);
  288.                     ready[i] = true;
  289.                     UI::REMOVE_BLIP(&blip[i]);
  290.                 }
  291.             }
  292.  
  293.         }
  294.  
  295.  
  296.         // SPAWN INDEX SYSTEM ////
  297.         // LAND VEHICLES :: 0-5 //
  298.         // TANK          :: 6   //
  299.         // ANNIHILATORS  :: 7-8 //
  300.         // JETS          :: 9-15//
  301.         // BUZZARD       :: 16  //
  302.         //////////////////////////
  303.  
  304.         // SPAWN IDs
  305.         // CRUSADER    :: 1
  306.         // INSURGENT   :: 2
  307.         // BARRACKS    :: 3
  308.         // TANK        :: 4
  309.         // ANNIHILATOR :: 5
  310.         // LAZER       :: 6
  311.         // BUZZARD     :: 7
  312.  
  313.         // SPAWN SYSTEM V3.0
  314.         // SPAWNS 6 GROUND VEHICLES REGARDLESS. (3 CRUSADERS, 2 INSURGENTS, 1 BARRACKS)
  315.         // SPAWN NEW WAVE IF :
  316.         //      - VEHICLES AND CREW ARE DEAD OR DO NOT EXIST
  317.         //      - PLAYERS HAS LEFT THEM BEHIND
  318.         // DYNAMIC SPAWN FOR OTHER ENTITIES.
  319.         // TANK : 1 chance out of 200 per update
  320.         // ANNIHILATOR : 2 max
  321.         // LAZERS : only when in air and high in the sky
  322.         wasWanted = true;
  323.  
  324.         for (int i = 0; i <= 19; i++)
  325.         {
  326.             position = ENTITY::GET_ENTITY_COORDS(playerPed, 1);
  327.             set_spawn_points();
  328.             switch (i){
  329.             case 0:
  330.                 if (ready[i] && !isInAir) { spawnIns(1, i); }
  331.                 break;
  332.             case 1:
  333.                 if (ready[i] && !isInAir) { spawnIns(1, i); }
  334.                 break;
  335.             case 2:
  336.                 if (ready[i] && !isInAir) { spawnIns(1, i); }
  337.                 break;
  338.             case 3:
  339.                 if (ready[i] && !isInAir) { spawnIns(2, i); }
  340.                 break;
  341.             case 4:
  342.                 if (ready[i] && !isInAir) { spawnIns(2, i); }
  343.                 break;
  344.             case 5:
  345.                 if (ready[i] && !isInAir) { spawnIns(3, i); }
  346.                 break;
  347.             case 6:
  348.                 if (ready[i] && rand() % 101 == 0 && !isInAir) { spawnIns(4, i); }
  349.                 break;
  350.             case 7:
  351.                 if (ready[i] && !isInAir) { spawnIns(5, i); }
  352.                 break;
  353.             case 8:
  354.                 if (ready[i] && !isInAir) { spawnIns(5, i); }
  355.                 break;
  356.             case 9:
  357.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  358.                 break;
  359.             case 10:
  360.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  361.                 break;
  362.             case 11:
  363.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  364.                 break;
  365.             case 12:
  366.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  367.                 break;
  368.             case 13:
  369.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  370.                 break;
  371.             case 14:
  372.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  373.                 break;
  374.             case 15:
  375.                 if (ready[i] && isInAir) { spawnIns(6, i); }
  376.                 break;
  377.             case 16:
  378.                 if (ready[i] && !isInAir) { spawnIns(7, i); }
  379.                 break;
  380.             }
  381.  
  382.         }
  383.  
  384.         if (!ENTITY::IS_ENTITY_DEAD(mainVehicle[16])) {
  385.             WEAPON::SET_CURRENT_PED_WEAPON(crua[16], GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"), true);
  386.             WEAPON::SET_PED_INFINITE_AMMO(crua[16], true, GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLAYER_BUZZARD"));
  387.             PED::SET_PED_SHOOT_RATE(crua[16], 2000);
  388.             if (ENTITY::IS_ENTITY_A_VEHICLE(playerPed) && rand() % 11 == 5 ) {
  389.                 WEAPON::SET_CURRENT_PED_WEAPON(crua[16], GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET"), true);
  390.                 WEAPON::SET_PED_INFINITE_AMMO(crua[16], true, GAMEPLAY::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET"));
  391.                 PED::SET_PED_SHOOT_RATE(crua[16], 1);
  392.             }
  393.            
  394.             AI::TASK_VEHICLE_SHOOT_AT_PED(crua[16], playerPed, 100.0f);
  395.         }
  396.  
  397.         if (isInAir)
  398.         {
  399.             for (int i = 9; i <= 15; i++) {
  400.                 if (mainVehicle[i], position.x, position.y, position.z, 250.0f, 250.0f, 250.0f, 0, 1, 0) { ENTITY::DELETE_ENTITY(&mainVehicle[i]); ENTITY::DELETE_ENTITY(&crua[i]); }
  401.                 //AI::TASK_VEHICLE_CHASE(crua[i], playerPed);
  402.                 //VEHICLE::SET_VEHICLE_FORWARD_SPEED(mainVehicle[i], 80.0f);
  403.             }
  404.         }
  405.  
  406.         GAMEPLAY::SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS_MULTIPLIER(playerPed, 4.0f);
  407.     }
  408.     else {
  409.         if (wasWanted){
  410.             GAMEPLAY::SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS_MULTIPLIER(playerPed, 1.0f);
  411.             wasWanted = false;
  412.             for (int i = 0; i <= 19; i++)
  413.             {
  414.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&mainVehicle[i]);
  415.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crua[i]);
  416.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crub[i]);
  417.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&cruc[i]);
  418.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crud[i]);
  419.                 AI::CLEAR_PED_TASKS_IMMEDIATELY(crua[i]);
  420.                 AI::CLEAR_PED_TASKS_IMMEDIATELY(crub[i]);
  421.                 AI::CLEAR_PED_TASKS_IMMEDIATELY(cruc[i]);
  422.                 AI::CLEAR_PED_TASKS_IMMEDIATELY(crud[i]);
  423.                 UI::REMOVE_BLIP(&blip[i]);
  424.             }
  425.             for (int i = 9; i <= 15; i++) {
  426.                 ENTITY::DELETE_ENTITY(&mainVehicle[i]);
  427.                 ENTITY::DELETE_ENTITY(&crua[i]);
  428.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&crua[i]);
  429.                 ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&mainVehicle[i]);
  430.             }
  431.         }
  432.         // USE THIS TO TRY FUNKY STUFF
  433.         //debug_func();
  434.     }
  435. }
  436.  
  437.  
  438.  
  439.  
  440. void main()
  441. {
  442.     while (true)
  443.     {
  444.         update();
  445.     }
  446. }
  447.  
  448. void ScriptMain()
  449. {
  450.     srand(GetTickCount());
  451.     main();
  452. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement