Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*------------------------------------------------------------
- Fighter Jet Source - XF CH3WY
- *Don't change anything unless you know what you're doing
- *Do not leech
- ------------------------------------------------------------*/
- ///Includes
- #include <natives.h>
- #include <common.h>
- #include <consts.h>
- #include <types.h>
- #include <strings.h>
- ///Defines
- #define BUTTON_SELECT 0xD
- #define BUTTON_START 0xC
- #define BUTTON_X 0xE
- #define BUTTON_Y 0xF
- #define BUTTON_A 0x10
- #define BUTTON_B 0x11
- #define DPAD_UP 0x8
- #define DPAD_DOWN 0x9
- #define DPAD_LEFT 0xA
- #define DPAD_RIGHT 0xB
- #define BUTTON_L 0x5
- #define BUTTON_R 0x7
- #define BUTTON_LB 0x4
- #define BUTTON_RB 0x6
- #define STICK_LEFT 0x12
- #define STICK_RIGHT 0x13
- ///Bools
- bool modon = false;
- bool controlling = false;
- bool after = false;
- bool hydra = false;
- bool showSelection = false;
- bool homing = false;
- bool networkPlayers = false;
- bool rockets = true;
- bool bombs = false;
- bool napalms = false;
- ///Declarations
- Vehicle myVeh;
- Object plane, rocket, bomb[10], napalm[10];
- Ped* players[15];
- Ped rped1, rped2;
- Weapon weapon1, weapon2;
- ///Float
- float x, y, z, zGround, speed, heading;
- float cx, cy, cz, ox, oy, oz, fx, fy, fz;
- float objCarDist, objYouDist, pitch;
- float offx, offy, offz, distance;
- float offx1, offy1, offz1, offx2, offy2, offz2;
- float something1, something2, something3, something4;
- ///Integers
- int select = 2, myVehId, planeId, rocketID;
- int groundDistance, tick, number = 0, anotherNumber = 0;
- uint ammo1, ammo2, max_ammo1, max_ammo2;
- ////////////////////////////////////////////////////////////////////////////Start Source////////////////////////////////////////////////////////////////////////////
- /*------------------------------------Control Panel------------------------------------*/
- void SET_UP_DRAW(float width, float height, uint r, uint g, uint b, uint a){
- #ifdef PC
- SET_TEXT_FONT(7);
- #else
- SET_TEXT_FONT(6);
- #endif
- SET_TEXT_BACKGROUND(0);
- SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
- SET_TEXT_EDGE(1, 0, 0, 0, 255);
- SET_TEXT_COLOUR(r, g, b, a);
- SET_TEXT_SCALE(width, height);
- SET_TEXT_PROPORTIONAL(1);
- SET_TEXT_JUSTIFY(0);
- SET_TEXT_CENTRE(0);
- SET_TEXT_RIGHT_JUSTIFY(0);
- }
- void SET_UP_DRAW_1(float width, float height, uint r, uint g, uint b, uint a){
- #ifdef PC
- SET_TEXT_FONT(7);
- #else
- SET_TEXT_FONT(2);
- #endif
- SET_TEXT_BACKGROUND(0);
- SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
- SET_TEXT_EDGE(1, 0, 0, 0, 255);
- SET_TEXT_COLOUR(r, g, b, a);
- SET_TEXT_SCALE(width, height);
- SET_TEXT_PROPORTIONAL(1);
- SET_TEXT_JUSTIFY(0);
- SET_TEXT_CENTRE(0);
- SET_TEXT_RIGHT_JUSTIFY(0);
- }
- void rect(void){
- DRAW_RECT(0.0, 0.0, 0.8900, 0.7200, 0, 0, 0, 150);
- }
- void control_show(void){
- SET_UP_DRAW(0.3100, 0.4550, 255, 0, 0, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.1150, 0.0340, "STRING", "CONTROLS");
- }
- void close_show(void){
- SET_UP_DRAW(0.3100, 0.4550, 255, 0, 0, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.2900, 0.0340, "STRING", "CLOSE - ~PAD_B~");
- }
- void spawn(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 159, 47, 173, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.0590, "STRING", "SPAWN FIGHTER JET ~PAD_A~ + ~PAD_B~");
- }
- void gas(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 130, 74, 0, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.0890, "STRING", "GAS ~PAD_RT~");
- }
- void brake(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 255, 255, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1190, "STRING", "BRAKE ~PAD_LT~");
- }
- void pivot(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 255, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1490, "STRING", "PIVOT ~PAD_LB~ + ~PAD_RB~");
- }
- void afterburners(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 39, 194, 194, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.1790, "STRING", "AFTERBURNERS ~PAD_LSTICK_ALL~");
- }
- void hydramode(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 160, 194, 39, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.2090, "STRING", "HYDRA MODE ~PAD_RSTICK_ALL~");
- }
- void weapons(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 78, 194, 39, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0750, 0.2390, "STRING", "OPEN WEAPON OPTIONS ~PAD_LB~ & ~PAD_RB~");
- }
- void scroll(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 39, 39, 194, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.2690, "STRING", "SCROLL WEAPON OPTIONS ~PAD_DPAD_LEFT~ + ~PAD_DPAD_RIGHT~");
- }
- void selectwep(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 236, 255, 64, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.2990, "STRING", "SELECT WEAPON ~PAD_A~");
- }
- void fire(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 201, 118, 0, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0900, 0.3290, "STRING", "FIRE WEAPONS ~PAD_X~");
- }
- void controls(void){
- if(IS_BUTTON_PRESSED(0, BUTTON_LB) && IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
- if(controlling){
- controlling = false;
- }
- else{
- controlling = true;
- }
- }
- if(controlling){
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
- controlling = false;
- }
- rect();
- control_show();
- close_show();
- spawn();
- afterburners();
- hydramode();
- gas();
- brake();
- pivot();
- weapons();
- scroll();
- selectwep();
- fire();
- }
- }
- /*--------------------------------------Functions--------------------------------------*/
- void print(char* text){
- CLEAR_PRINTS();
- PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 4500, true);
- }
- void printShort(char* text){
- CLEAR_PRINTS();
- PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 500, true);
- }
- void printLong(char* text){
- CLEAR_PRINTS();
- PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", text, 8500, true);
- }
- bool NETWORK_CONTROL(int ID){
- uint ticker = 0;
- REQUEST_CONTROL_OF_NETWORK_ID(ID);
- do{
- if(HAS_CONTROL_OF_NETWORK_ID(ID)){
- return true;
- }
- else{
- WAIT(0);
- ticker++;
- REQUEST_CONTROL_OF_NETWORK_ID(ID);
- }
- }while(ticker < 200);
- print("~r~Error!");
- return false;
- }
- void EXPLODE(float x, float y, float z){
- ADD_EXPLOSION(x, y, z, EXPLOSION_PETROL_PUMP, 5.0f, true, false, 0.8f);
- }
- void BOMB_EXPLOSION(float x, float y, float z){
- EXPLODE(x, y, z);
- EXPLODE(x, y, z + 1);
- EXPLODE(x, y, z + 2);
- EXPLODE(x, y, z + 3);
- EXPLODE(x + 1, y, z);
- EXPLODE(x + 2, y, z);
- EXPLODE(x + 3, y, z);
- EXPLODE(x + 4, y, z);
- EXPLODE(x + 5, y, z);
- EXPLODE(x + 6, y, z);
- EXPLODE(x + 7, y, z);
- EXPLODE(x - 1, y, z);
- EXPLODE(x - 2, y, z);
- EXPLODE(x - 3, y, z);
- EXPLODE(x - 4, y, z);
- EXPLODE(x - 5, y, z);
- EXPLODE(x - 6, y, z);
- EXPLODE(x - 7, y, z);
- EXPLODE(x, y + 1, z);
- EXPLODE(x, y + 2, z);
- EXPLODE(x, y + 3, z);
- EXPLODE(x, y + 4, z);
- EXPLODE(x, y + 5, z);
- EXPLODE(x, y + 6, z);
- EXPLODE(x, y + 7, z);
- EXPLODE(x, y - 1, z);
- EXPLODE(x, y - 2, z);
- EXPLODE(x, y - 3, z);
- EXPLODE(x, y - 4, z);
- EXPLODE(x, y - 5, z);
- EXPLODE(x, y - 6, z);
- EXPLODE(x, y - 7, z);
- }
- void MOLYS(float x,float y,float z){
- ADD_EXPLOSION(x, y, z, EXPLOSION_MOLOTOV, 5.0f, 1, 0, 0.7f);
- }
- void MOLY_EXPLOSION(float x, float y, float z){
- MOLYS(x, y, z);
- MOLYS(x, y, z + 1);
- MOLYS(x, y, z + 2);
- MOLYS(x, y, z + 3);
- MOLYS(x, y, z + 4);
- MOLYS(x + 1, y, z);
- MOLYS(x + 2, y, z);
- MOLYS(x + 3, y, z);
- MOLYS(x + 4, y, z);
- MOLYS(x + 5, y, z);
- MOLYS(x + 6, y, z);
- MOLYS(x + 7, y, z);
- MOLYS(x + 8, y, z);
- MOLYS(x + 9, y, z);
- MOLYS(x + 10, y, z);
- MOLYS(x - 1, y, z);
- MOLYS(x - 2, y, z);
- MOLYS(x - 3, y, z);
- MOLYS(x - 4, y, z);
- MOLYS(x - 5, y, z);
- MOLYS(x - 6, y, z);
- MOLYS(x - 7, y, z);
- MOLYS(x - 8, y, z);
- MOLYS(x - 9, y, z);
- MOLYS(x - 10, y, z);
- MOLYS(x, y + 1, z);
- MOLYS(x, y + 2, z);
- MOLYS(x, y + 3, z);
- MOLYS(x, y + 4, z);
- MOLYS(x, y + 5, z);
- MOLYS(x, y + 6, z);
- MOLYS(x, y + 7, z);
- MOLYS(x, y + 8, z);
- MOLYS(x, y + 9, z);
- MOLYS(x, y + 10, z);
- MOLYS(x, y - 1, z);
- MOLYS(x, y - 2, z);
- MOLYS(x, y - 3, z);
- MOLYS(x, y - 4, z);
- MOLYS(x, y - 5, z);
- MOLYS(x, y - 6, z);
- MOLYS(x, y - 7, z);
- MOLYS(x, y - 8, z);
- MOLYS(x, y - 9, z);
- MOLYS(x, y - 10, z);
- }
- void TELEPORT(float x, float y, float z){
- if(IS_CHAR_IN_ANY_CAR(GetPlayerPed()) || IS_CHAR_IN_ANY_HELI(GetPlayerPed()) || IS_CHAR_IN_ANY_BOAT(GetPlayerPed())){
- Vehicle pVeh;
- uint vehID;
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &pVeh);
- GET_NETWORK_ID_FROM_VEHICLE(pVeh, &vehID);
- if(NETWORK_CONTROL(vehID)){
- DELETE_CAR(&pVeh);
- MARK_CAR_AS_NO_LONGER_NEEDED(&pVeh);
- }
- }
- SET_CHAR_COORDINATES(GetPlayerPed(), x, y, z);
- SET_GAME_CAM_HEADING(0.0);
- LOAD_ALL_OBJECTS_NOW();
- REQUEST_COLLISION_AT_POSN(x, y, z);
- }
- void SPAWN_VEHICLE(uint model){
- Vehicle pVeh;
- Ped driver;
- if(!HAS_MODEL_LOADED(model)){
- REQUEST_MODEL(model);
- while(!HAS_MODEL_LOADED(model)){
- REQUEST_MODEL(model);
- WAIT(0);
- }
- }
- GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
- CREATE_CAR(model, x, y, z, &pVeh, 1);
- WARP_CHAR_INTO_CAR(GetPlayerPed(), pVeh);
- SET_CHAR_VISIBLE(GetPlayerPed(), false);
- GET_NETWORK_ID_FROM_VEHICLE(pVeh, &myVehId);
- SET_NETWORK_ID_CAN_MIGRATE(myVehId, false);
- CHANGE_CAR_COLOUR(pVeh, 0, 0);
- SET_ENGINE_HEALTH(pVeh, -10.0f); //to turn off the annoying helicopter noise
- SET_EXTRA_CAR_COLOURS(pVeh, 0, 0);
- SET_VEHICLE_DIRT_LEVEL(pVeh, 0);
- WASH_VEHICLE_TEXTURES(pVeh, 255);
- SET_CAR_ENGINE_ON(pVeh, true, true);
- SET_CAR_PROOFS(pVeh, true, true, true, true, true);
- SET_HELI_BLADES_FULL_SPEED(pVeh);
- SET_CAR_HEADING(pVeh, 232.9778);
- LOCK_CAR_DOORS(pVeh, VEHICLE_DOOR_LOCKED_BOTH_SIDES);
- SET_ENGINE_HEALTH(pVeh, 99.0f); //to give the helicopter's health back so you don't fall
- }
- void ATTACH_PLANE(Vehicle car){
- GET_CAR_COORDINATES(car, &x, &y, &z);
- if(!HAS_MODEL_LOADED(0xAF63749C)){
- REQUEST_MODEL(0xAF63749C);
- while(!HAS_MODEL_LOADED(0xAF63749C)){
- REQUEST_MODEL(0xAF63749C);
- WAIT(0);
- }
- }
- CREATE_OBJECT(0xAF63749C, x, y, z, &plane, true);
- if(DOES_OBJECT_EXIST(plane)){
- SET_OBJECT_VISIBLE(plane, true);
- GET_NETWORK_ID_FROM_OBJECT(plane, &planeId);
- SET_NETWORK_ID_CAN_MIGRATE(planeId, false);
- FREEZE_OBJECT_POSITION(plane, false);
- SET_OBJECT_DYNAMIC(plane, true);
- SET_OBJECT_LIGHTS(plane, true);
- SET_OBJECT_INVINCIBLE(plane, true);
- SET_OBJECT_COLLISION(plane, true);
- SET_OBJECT_AS_STEALABLE(plane, false);
- SET_CAR_VISIBLE(car, false);
- ATTACH_OBJECT_TO_CAR(plane, car, 0.0f, 0, -3.5200, -1.1, 0, 0, -3.1676);
- }
- }
- void FOLLOW_COORDINATES(float *x, float *y, float *z, float scale){
- float math = SQRT(POW(*x, 2) + POW(*y, 2) + POW(*z, 2));
- *x = (*x / math) * scale;
- *y = (*y / math) * scale;
- *z = (*z / math) * scale;
- }
- void GET_CAR_CHAR_IS_AIMING_AT(Vehicle *victim, float maxdistance){
- uint i, player_count = 0;
- Vehicle ocar;
- float mx, my, mz;
- float distance, pitch, dist, offx, offy, offz;
- if(!networkPlayers){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
- GET_CAR_PITCH(myVeh, &pitch);
- for(distance = 0;distance < maxdistance; distance++){
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, ((z + pitch) + 1), &offx, &offy, &offz);
- if(DOES_VEHICLE_EXIST(GET_CLOSEST_CAR(offx, offy, offz, 14, 0, 70))){
- *victim = GET_CLOSEST_CAR(offx, offy, offz, 14, 0, 70);
- break;
- }
- }
- distance = 0;
- }
- else{
- if(IS_NETWORK_SESSION()){
- for(i = 0;i < 16;i++){
- if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
- if(GET_PLAYER_ID() == i) continue;
- GET_PLAYER_CHAR(i, &players[player_count]);
- player_count++;
- }
- if(player_count > 0){
- for(i = 0;i <= player_count;i++){
- if(!DOES_CHAR_EXIST(players[i])) continue;
- if(IS_CHAR_ON_FOOT(players[i])) continue;
- if(IS_CHAR_IN_ANY_CAR(players[i]) || IS_CHAR_IN_ANY_HELI(players[i]) || IS_CHAR_IN_ANY_BOAT(players[i])){
- if(!DOES_VEHICLE_EXIST(*victim)){
- GET_CAR_CHAR_IS_USING(players[i], &ocar);
- if(DOES_VEHICLE_EXIST(ocar)){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- GET_CAR_PITCH(myVeh, &pitch);
- for(distance = 0;distance < maxdistance; distance++){
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, ((z + pitch) + 1), &offx, &offy, &offz);
- GET_CAR_COORDINATES(ocar, &mx, &my, &mz);
- GET_DISTANCE_BETWEEN_COORDS_3D(offx, offy, offz, mx, my, mz, &dist);
- if(dist <= 15){
- *victim = ocar;
- break;
- }
- }
- distance = 0;
- }
- }
- }
- else{
- print("~r~No one in the game is in a vehicle!");
- }
- }
- }
- else{
- print("~r~No one is in your game!");
- }
- }
- else{
- print("~r~You're in single player!");
- }
- }
- }
- void FOLLOW(Vehicle victim){
- if(DOES_VEHICLE_EXIST(victim)){
- if(!HAS_MODEL_LOADED(0x48FA2738)){
- REQUEST_MODEL(0x48FA2738);
- while(!HAS_MODEL_LOADED(0x48FA2738)){
- REQUEST_MODEL(0x48FA2738);
- WAIT(0);
- }
- }
- GET_CHAR_HEADING(GetPlayerPed(), &heading);
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, 1, -1, &offx, &offy, &offz);
- CREATE_OBJECT_NO_OFFSET(0x48FA2738, offx, offy, offz, &rocket, true);
- SET_OBJECT_VISIBLE(rocket, true);
- if(DOES_OBJECT_EXIST(rocket)){
- GET_NETWORK_ID_FROM_OBJECT(rocket, &rocketID);
- SET_NETWORK_ID_CAN_MIGRATE(rocketID, false);
- SET_OBJECT_INVINCIBLE(rocket, true);
- SET_OBJECT_DYNAMIC(rocket, true);
- SET_OBJECT_COLLISION(rocket, true);
- SET_OBJECT_RECORDS_COLLISIONS(rocket, true);
- SET_OBJECT_AS_STEALABLE(rocket, false);
- START_PTFX_ON_OBJ("weap_rocket_player", rocket, 0.00000000, -0.04000000, 0.00000000, 0.00000000, 0.00000000, 2.00000000, 1);
- RELEASE_SOUND_ID(-1);
- while(DOES_OBJECT_EXIST(rocket) && DOES_VEHICLE_EXIST(victim)){
- WAIT(0);
- if(!DOES_VEHICLE_EXIST(victim)){
- FREEZE_OBJECT_POSITION(rocket, true);
- GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
- EXPLODE(ox, oy, oz);
- DELETE_OBJECT(&rocket);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
- print("~r~Target has dissappeared!");
- break;
- }
- if((HAS_OBJECT_COLLIDED_WITH_ANYTHING(rocket)) || (objYouDist >= 450)){
- FREEZE_OBJECT_POSITION(rocket, true);
- GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
- EXPLODE(ox, oy, oz);
- DELETE_OBJECT(&rocket);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
- break;
- }
- GET_CAR_COORDINATES(victim, &cx, &cy, &cz);
- GET_OBJECT_COORDINATES(rocket, &ox, &oy, &oz);
- fx = cx - ox;
- fy = cy - oy;
- fz = cz - oz;
- FOLLOW_COORDINATES(&fx, &fy, &fz, 250);
- GET_DISTANCE_BETWEEN_COORDS_2D(cx, cy, ox, oy, &objCarDist);
- if(objCarDist < 20 && objCarDist > 3){
- APPLY_FORCE_TO_OBJECT(rocket, 1, fx, fy, 5, 0, 0, 0, 1, 0, 1, 1);
- }
- else{
- APPLY_FORCE_TO_OBJECT(rocket, 1, fx, fy, fz, 0, 0, 0, 1, 0, 1, 1);
- }
- GET_CAR_COORDINATES(myVeh, &x, &y, &z);
- GET_DISTANCE_BETWEEN_COORDS_2D(x, y, ox, oy, &objYouDist);
- }
- }
- }
- }
- void SHOOT(Vehicle victim){
- if(DOES_VEHICLE_EXIST(victim)){
- float ix, iy, iz;
- GET_CAR_COORDINATES(victim, &ix, &iy, &iz);
- DRAW_COLOURED_CYLINDER(ix, iy, iz + 1, 1, 1, 0, 255, 0, 255);
- DRAW_CHECKPOINT(ix, iy, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix - 3, iy, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix - 1, iy, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix + 1, iy, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix + 3, iy, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy - 3, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy - 1, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy + 1, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy + 3, iz, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy, iz - 3, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy, iz - 1, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy, iz + 1, 1.0f, 0, 255, 0);
- DRAW_CHECKPOINT(ix, iy, iz + 3, 1.0f, 0, 255, 0);
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_X)){
- FOLLOW(victim);
- }
- }
- }
- void RESET_EVERYTHING(void){
- if(DOES_OBJECT_EXIST(plane)){
- DELETE_OBJECT(&plane);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&plane);
- }
- if(DOES_VEHICLE_EXIST(myVeh)){
- DELETE_CAR(&myVeh);
- MARK_CAR_AS_NO_LONGER_NEEDED(&myVeh);
- }
- GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
- GET_GROUND_Z_FOR_3D_COORD(x, y, z, &zGround);
- TELEPORT(x, y, zGround);
- SET_CHAR_VISIBLE(GetPlayerPed(), true);
- number = 0;
- anotherNumber = 0;
- controlling = false;
- after = false;
- hydra = false;
- modon = false;
- }
- /*---------------------------------------Actions---------------------------------------*/
- void selectionLoops(void){
- if(modon){
- if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- if(select == 1){
- if(homing){
- if(IS_BUTTON_JUST_PRESSED(0, DPAD_DOWN)){
- if(!networkPlayers){
- networkPlayers = true;
- print("~g~Homing missiles will now lock onto Network Players' vehicles!");
- }
- else{
- networkPlayers = false;
- print("~g~Homing missiles will now lock onto Pedestrian vehicles!");
- }
- }
- if(IS_BUTTON_PRESSED(0, BUTTON_A)){
- Vehicle catch;
- bool found;
- GET_CAR_CHAR_IS_AIMING_AT(&catch, 250);
- if((DOES_VEHICLE_EXIST(catch)) && (!IS_CAR_DEAD(catch))){
- found = true;
- }
- if(found){
- SHOOT(catch);
- found = false;
- }
- }
- }
- }
- if(select == 2){
- if(rockets){
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_X)){
- if(!DOES_CHAR_EXIST(rped1) && !DOES_CHAR_EXIST(rped2)){
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, -3, 1.5, -3.5770, &offx1, &offy1, &offz1);
- CREATE_RANDOM_CHAR(offx1, offy1, offz1, &rped1);
- SET_CHAR_VISIBLE(rped1, false);
- SET_CHAR_COLLISION(rped1, false);
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 3, 1.5, -3.5770, &offx2, &offy2, &offz2);
- CREATE_RANDOM_CHAR(offx2, offy2, offz2, &rped2);
- SET_CHAR_VISIBLE(rped2, false);
- SET_CHAR_COLLISION(rped2, false);
- WAIT(10);
- if(DOES_CHAR_EXIST(rped1) && DOES_CHAR_EXIST(rped2)){
- GIVE_WEAPON_TO_CHAR(rped1, WEAPON_RLAUNCHER, 30000, 0);
- SET_CURRENT_CHAR_WEAPON(rped1, WEAPON_RLAUNCHER, 1);
- GIVE_WEAPON_TO_CHAR(rped2, WEAPON_RLAUNCHER, 30000, 0);
- SET_CURRENT_CHAR_WEAPON(rped2, WEAPON_RLAUNCHER, 1);
- GET_CURRENT_CHAR_WEAPON(rped1, &weapon1);
- GET_MAX_AMMO_IN_CLIP(rped1, weapon1, &ammo1);
- GET_MAX_AMMO(rped1, weapon1, &max_ammo1);
- ENABLE_MAX_AMMO_CAP(false);
- SET_CHAR_AMMO(rped1, weapon1, max_ammo1);
- SET_AMMO_IN_CLIP(rped1, weapon1, ammo1);
- GET_CURRENT_CHAR_WEAPON(rped2, &weapon2);
- GET_MAX_AMMO_IN_CLIP(rped2, weapon2, &ammo2);
- GET_MAX_AMMO(rped2, weapon2, &max_ammo2);
- ENABLE_MAX_AMMO_CAP(false);
- SET_CHAR_AMMO(rped2, weapon2, max_ammo2);
- SET_AMMO_IN_CLIP(rped2, weapon2, ammo2);
- GET_CAR_HEADING(myVeh, &heading);
- GET_CAR_PITCH(myVeh, &pitch);
- GET_CAR_COORDINATES(myVeh, &x, &y, &z);
- FIRE_PED_WEAPON(rped1, x + (60 * (SIN((-1 * heading)))), y + (60 * (COS((-1 * heading)))), z + pitch);
- FIRE_PED_WEAPON(rped2, x + (60 * (SIN((-1 * heading)))), y + (60 * (COS((-1 * heading)))), z + pitch);
- DELETE_CHAR(&rped1);
- DELETE_CHAR(&rped2);
- }
- }
- }
- }
- }
- if(select == 3){
- if(bombs){
- if(IS_BUTTON_PRESSED(0, BUTTON_X)){
- if(number < 10){
- if(!HAS_MODEL_LOADED(0x7E339194)){
- REQUEST_MODEL(0x7E339194);
- while(!HAS_MODEL_LOADED(0x7E339194)){
- WAIT(0);
- REQUEST_MODEL(0x7E339194);
- }
- }
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0.5, 0, -2.1, &offx, &offy, &offz);
- CREATE_OBJECT(0x7E339194, offx, offy, offz, &bomb[number], 1);
- SET_OBJECT_HEALTH(bomb[number], 100.0);
- SET_OBJECT_ROTATION(bomb[number], 90.0, 0.0, 0.0);
- SET_OBJECT_COLLISION(bomb[number], true);
- SET_OBJECT_RECORDS_COLLISIONS(bomb[number], true);
- SET_OBJECT_AS_STEALABLE(bomb[number], false);
- GET_VEHICLE_QUATERNION(myVeh, &something1, &something2, &something3, &something4);
- SET_OBJECT_QUATERNION(bomb[number], something1, something2, something3, something4);
- WAIT(0);
- APPLY_FORCE_TO_OBJECT(bomb[number], 1, 0, 0, -1000, 0, 0, 0, true, true, true, true);
- number++;
- }
- else{
- printShort("~r~Reloading...");
- }
- }
- anotherNumber++;
- if(anotherNumber > 9){
- anotherNumber = 0;
- }
- if(DOES_OBJECT_EXIST(bomb[anotherNumber])){
- GET_CAR_COORDINATES(myVeh, &x, &y, &z);
- GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
- GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, ox, oy, oz, &distance);
- if(distance >= 150){
- FREEZE_OBJECT_POSITION(bomb[anotherNumber], true);
- GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
- BOMB_EXPLOSION(ox, oy, oz);
- DELETE_OBJECT(&bomb[anotherNumber]);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&bomb[anotherNumber]);
- number--;
- if(number < 0){
- number = 0;
- }
- }
- if(HAS_OBJECT_COLLIDED_WITH_ANYTHING(bomb[anotherNumber]) || IS_OBJECT_IN_WATER(bomb[anotherNumber])){
- FREEZE_OBJECT_POSITION(bomb[anotherNumber], true);
- GET_OBJECT_COORDINATES(bomb[anotherNumber], &ox, &oy, &oz);
- BOMB_EXPLOSION(ox, oy, oz);
- DELETE_OBJECT(&bomb[anotherNumber]);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&bomb[anotherNumber]);
- number--;
- if(number < 0){
- number = 0;
- }
- }
- }
- }
- }
- if(select == 4){
- if(napalms){
- if(IS_BUTTON_PRESSED(0, BUTTON_X)){
- if(number < 10){
- if(!HAS_MODEL_LOADED(0x7E339194)){
- REQUEST_MODEL(0x7E339194);
- while(!HAS_MODEL_LOADED(0x7E339194)){
- WAIT(0);
- REQUEST_MODEL(0x7E339194);
- }
- }
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0.5, 0, -2.1, &offx, &offy, &offz);
- CREATE_OBJECT(0x7E339194, offx, offy, offz, &napalm[number], 1);
- SET_OBJECT_HEALTH(napalm[number], 100.0);
- SET_OBJECT_ROTATION(napalm[number], 90.0, 0.0, 0.0);
- SET_OBJECT_COLLISION(napalm[number], true);
- SET_OBJECT_RECORDS_COLLISIONS(napalm[number], true);
- SET_OBJECT_AS_STEALABLE(napalm[number], false);
- GET_VEHICLE_QUATERNION(myVeh, &something1, &something2, &something3, &something4);
- SET_OBJECT_QUATERNION(napalm[number], something1, something2, something3, something4);
- WAIT(0);
- APPLY_FORCE_TO_OBJECT(napalm[number], 1, 0, 0, -1000, 0, 0, 0, true, true, true, true);
- number++;
- }
- else{
- printShort("~r~Reloading...");
- }
- }
- anotherNumber++;
- if(anotherNumber > 9){
- anotherNumber = 0;
- }
- if(DOES_OBJECT_EXIST(napalm[anotherNumber])){
- GET_CAR_COORDINATES(myVeh, &x, &y, &z);
- GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
- GET_DISTANCE_BETWEEN_COORDS_3D(x, y, z, ox, oy, oz, &distance);
- if(distance >= 150){
- FREEZE_OBJECT_POSITION(napalm[anotherNumber], true);
- GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
- MOLY_EXPLOSION(ox, oy, oz);
- DELETE_OBJECT(&napalm[anotherNumber]);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&napalm[anotherNumber]);
- number--;
- if(number < 0){
- number = 0;
- }
- }
- if(HAS_OBJECT_COLLIDED_WITH_ANYTHING(napalm[anotherNumber]) || IS_OBJECT_IN_WATER(napalm[anotherNumber])){
- FREEZE_OBJECT_POSITION(napalm[anotherNumber], true);
- GET_OBJECT_COORDINATES(napalm[anotherNumber], &ox, &oy, &oz);
- MOLY_EXPLOSION(ox, oy, oz);
- DELETE_OBJECT(&napalm[anotherNumber]);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&napalm[anotherNumber]);
- number--;
- if(number < 0){
- number = 0;
- }
- }
- }
- }
- }
- }
- }
- }
- void selections(void){
- if(modon){
- if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- if(IS_BUTTON_PRESSED(0, BUTTON_LB) && IS_BUTTON_JUST_PRESSED(0, BUTTON_RB)){
- if(!showSelection){
- showSelection = true;
- }
- else{
- showSelection = false;
- }
- }
- if(showSelection){
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
- showSelection = false;
- }
- if(IS_BUTTON_JUST_PRESSED(0, DPAD_LEFT)){
- select--;
- }
- if(IS_BUTTON_JUST_PRESSED(0, DPAD_RIGHT)){
- select++;
- }
- if(select > 4){
- select = 1;
- }
- if(select < 1){
- select = 4;
- }
- if(select == 1){
- if(homing){
- printShort("~b~Homing Missiles: ~g~ACTIVATED");
- }
- else{
- printShort("~b~Homing Missiles: ~r~DEACTIVATED");
- }
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
- if(homing){
- homing = false;
- }
- else{
- printLong("~PAD_DPAD_DOWN~ toggle Peds and Network Players~g~ ~PAD_A~ to lockon~b~ ~PAD_X~ to shoot!");
- showSelection = false;
- homing = true;
- rockets = false;
- bombs = false;
- napalms = false;
- }
- }
- }
- if(select == 2){
- if(rockets){
- printShort("~b~Rockets: ~g~ACTIVATED");
- }
- else{
- printShort("~b~Rockets: ~r~DEACTIVATED");
- }
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
- if(rockets){
- rockets = false;
- }
- else{
- print("~b~Rockets: ~g~ACTIVATED ~w~Press ~PAD_X~ to shoot!");
- showSelection = false;
- rockets = true;
- homing = false;
- bombs = false;
- napalms = false;
- }
- }
- }
- if(select == 3){
- if(bombs){
- printShort("~b~Bombs: ~g~ACTIVATED");
- }
- else{
- printShort("~b~Bombs: ~r~DEACTIVATED");
- }
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
- if(bombs){
- bombs = false;
- }
- else{
- print("~b~Bombs: ~g~ACTIVATED ~w~Hold ~PAD_X~ to drop!");
- showSelection = false;
- bombs = true;
- homing = false;
- rockets = false;
- napalms = false;
- }
- }
- }
- if(select == 4){
- if(napalms){
- printShort("~b~Napalms: ~g~ACTIVATED");
- }
- else{
- printShort("~b~Napalms: ~r~DEACTIVATED");
- }
- if(IS_BUTTON_JUST_PRESSED(0, BUTTON_A)){
- if(napalms){
- napalms = false;
- }
- else{
- print("~b~Napalms: ~g~ACTIVATED ~w~Hold ~PAD_X~ to drop!");
- showSelection = false;
- napalms = true;
- homing = false;
- rockets = false;
- bombs = false;
- }
- }
- }
- }
- }
- }
- }
- void flyingLoop(void){
- if(modon){
- if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- if(IS_BUTTON_JUST_PRESSED(0, STICK_LEFT)){
- if(!after){
- print("~b~Afterburners: ~g~ACTIVATED");
- after = true;
- }
- else{
- print("~b~Afterburners: ~r~DEACTIVATED");
- after = false;
- }
- }
- if(IS_BUTTON_JUST_PRESSED(0, STICK_RIGHT)){
- if(!hydra){
- print("~b~Hydra Mode: ~g~ACTIVATED");
- hydra = true;
- }
- else{
- print("~b~Hydra Mode: ~r~DEACTIVATED");
- hydra = false;
- }
- }
- if(IS_BUTTON_PRESSED(0, BUTTON_R)){
- if(after){
- GET_CAR_SPEED(myVeh, &speed);
- SET_CAR_FORWARD_SPEED(myVeh, (speed / 0.3));
- }
- if(hydra){
- //nothing goes here to give the helicopter effect back
- }
- if(hydra && after){
- print("~r~Only one can be activated! ~b~Hydra Mode: ~g~ACTIVATED");
- after = false;
- }
- if(!hydra && !after){ //can't be an else
- GET_CAR_SPEED(myVeh, &speed);
- SET_CAR_FORWARD_SPEED(myVeh, (speed * 1.02));
- }
- }
- if(IS_BUTTON_PRESSED(0, BUTTON_L)){
- if(!hydra){
- GET_CAR_SPEED(myVeh, &speed);
- SET_CAR_FORWARD_SPEED(myVeh, (speed - 1));
- if(speed < 30){
- APPLY_FORCE_TO_CAR(myVeh, true, 0, 9, 4, 0, 0, 0, true, true, true, true);
- }
- }
- }
- if(!IS_BUTTON_PRESSED(0, BUTTON_L) && !IS_BUTTON_PRESSED(0, BUTTON_R)){
- if(!hydra){
- GET_CAR_SPEED(myVeh, &speed);
- SET_CAR_FORWARD_SPEED(myVeh, (speed - 0.9));
- if(speed < 30){
- APPLY_FORCE_TO_CAR(myVeh, true, 0, 9, 4, 0, 0, 0, true, true, true, true);
- }
- }
- }
- }
- }
- }
- void loop(void){
- if(modon){
- DISABLE_FRONTEND_RADIO();
- if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- PLAY_SOUND_FROM_VEHICLE(GET_SOUND_ID(), "VEHICLES_AMBIENT_JETS_JET_ENGINE", myVeh);
- SET_CAR_CAN_BE_DAMAGED(myVeh, false);
- SET_CAR_CAN_BE_VISIBLY_DAMAGED(myVeh, false);
- SET_CAN_BURST_CAR_TYRES(myVeh, false);
- }
- else{
- STOP_SOUND(-1);
- }
- }
- else{
- ENABLE_FRONTEND_RADIO();
- }
- }
- void toggle(void){
- if(IS_BUTTON_PRESSED(0, BUTTON_A) && IS_BUTTON_JUST_PRESSED(0, BUTTON_B)){
- if(!modon){
- TELEPORT(2264.2397, 894.4479, 6); //airport
- WAIT(5);
- SPAWN_VEHICLE(MODEL_POLMAV);
- WAIT(5);
- if(IS_CHAR_IN_MODEL(GetPlayerPed(), MODEL_POLMAV)){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- ATTACH_PLANE(myVeh);
- APPLY_FORCE_TO_CAR(myVeh, true, 0, 100, 6, 0, 0, 0, true, true, true, true);
- modon = true;
- print("~b~Fighter Jet: ~g~ON");
- }
- }
- else{
- RESET_EVERYTHING();
- print("~b~Fighter Jet: ~r~OFF");
- }
- }
- }
- /*----------------------------------------Start----------------------------------------*/
- void main(void){
- THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
- print("~COL_NET_3~Fighter Jet v2 by XF CH3WY!");
- WAIT(3000);
- print("~COL_NET_2~Press ~PAD_LB~ + ~PAD_A~ for controls!");
- do{
- toggle();
- controls();
- loop();
- flyingLoop();
- selections();
- selectionLoops();
- WAIT(0);
- }while(true);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement