Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Unsigned Integers
- uint lockOn, shooter;
- //Bools
- bool networkPlayers = false;
- bool controlling = false;
- found = false;
- //Declarations
- Ped* players[15];
- Vector3 pos;
- Object rocket;
- Vehicle myVeh;
- //Floats
- float gx, gy, gz, fx, fy, fz, jx, jy, jz;
- float cx, cy, cz, hx, hy, hz, disttt;
- float offx, offy, offz, h, distttt;
- //Integers
- int rocketid;
- ////////////////////////////START SOURCE HERE////////////////////////////
- void EXPLODE(float X,float Y,float Z){
- ADD_EXPLOSION(X, Y, Z, EXPLOSION_PETROL_PUMP, 0.8f, 1, 0, 0.1f);
- }
- void weaponLoop(void){
- SET_CURRENT_CHAR_WEAPON(GetPlayerPed(), WEAPON_DEAGLE, true);
- //SET_CURRENT_CHAR_WEAPON(GetPlayerPed(), WEAPON_ROCKET, true);
- BLOCK_PED_WEAPON_SWITCHING(GetPlayerPed(), true);
- }
- void carLoop(void){
- if(IS_CHAR_ON_FOOT(GetPlayerPed())){
- lockOn = BUTTON_L;
- shooter = BUTTON_A;
- }
- else if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- lockOn = BUTTON_A;
- shooter = BUTTON_X;
- }
- else{
- lockOn = BUTTON_X;
- shooter = BUTTON_A;
- }
- }
- 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(5);
- #else
- SET_TEXT_FONT(4);
- #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.9110, 0.5000, 0, 0, 0, 255);
- }
- void control_show(void){
- SET_UP_DRAW(0.3100, 0.4550, 255, 0, 0, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.1270, 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.3100, 0.0340, "STRING", "CLOSE - ~PAD_RB~ + ~PAD_X~");
- }
- void togglePrint(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.0590, "STRING", "Toggle Peds /Network Players -");
- }
- void toggleButton(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.3850, 0.0590, "STRING", "~PAD_RSTICK_ALL~");
- }
- void lockOnPrintFoot(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.0890, "STRING", "Lock On Target (FOOT) -");
- }
- void lockOnButtonFoot(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.3050, 0.0890, "STRING", "~PAD_LT~");
- }
- void lockOnPrintVeh(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.1190, "STRING", "Lock On Target (VEHICLE) -");
- }
- void lockOnButtonVeh(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.3420, 0.1190, "STRING", "~PAD_X~");
- }
- void lockOnPrintChop(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.1490, "STRING", "Lock On Target (CHOPPER) -");
- }
- void lockOnButtonChop(void){
- SET_UP_DRAW_1(0.3150, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.3450, 0.1490, "STRING", "~PAD_A~");
- }
- void shootPrint(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.1790, "STRING", "Shoot HeatSeekers (FOOT/VEHICLE) -");
- }
- void shootButton(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.4300, 0.1790, "STRING", "~PAD_A~");
- }
- void shootPrintHeli(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.0600, 0.2090, "STRING", "Shoot HeatSeekers (CHOPPER) -");
- }
- void shootButtonHeli(void){
- SET_UP_DRAW_1(0.3100, 0.4550, 0, 0, 255, 255);
- DISPLAY_TEXT_WITH_LITERAL_STRING(0.3830, 0.2090, "STRING", "~PAD_X~");
- }
- void controls(void){
- if(IS_BUTTON_PRESSED(0, BUTTON_RB) && IS_BUTTON_JUST_PRESSED(0, BUTTON_X)){
- if(controlling){
- controlling = false;
- }
- else{
- controlling = true;
- }
- }
- if(controlling){
- rect();
- control_show();
- close_show();
- togglePrint();
- toggleButton();
- lockOnPrintFoot();
- lockOnButtonFoot();
- lockOnPrintVeh();
- lockOnButtonVeh();
- lockOnPrintChop();
- lockOnButtonChop();
- shootPrint();
- shootButton();
- shootPrintHeli();
- shootButtonHeli();
- }
- }
- 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 POINT_OBJECT_AT_VEHICLE(Object pointer, Vehicle car){
- float val;
- GET_CAR_HEADING(car, &val);
- SET_OBJECT_HEADING(pointer, val);
- }
- void GET_CHARACTER_OFFSET(float distance, float *x, float *y, float *z){
- Vector3 bonePosition;
- GET_PED_BONE_POSITION(GetPlayerPed(), BONE_RIGHT_HAND, distance, 0.0f, distance * -0.04f, &bonePosition);
- *x = bonePosition.x;
- *y = bonePosition.y;
- *z = bonePosition.z;
- }
- void GET_CAR_CHAR_IS_AIMING_AT(Vehicle *victim, float maxdistance){
- uint i, player_count = 0;
- Vehicle ocar;
- float x, y, z, tx, ty, tz, mx, my, mz;
- float distance, dist, distt, pitch = 0;
- if(!networkPlayers){
- if(IS_CHAR_IN_ANY_CAR(GetPlayerPed()) || IS_CHAR_IN_ANY_HELI(GetPlayerPed()) || IS_CHAR_IN_ANY_BOAT(GetPlayerPed())){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- GET_CAR_PITCH(myVeh, &pitch);
- }
- GET_CHAR_COORDINATES(GetPlayerPed(), &x, &y, &z);
- for(distance = 0;distance < maxdistance; distance++){
- if(IS_CHAR_ON_FOOT(GetPlayerPed())){
- GET_CHARACTER_OFFSET(distance, &tx, &ty, &tz);
- if(DOES_VEHICLE_EXIST(GET_CLOSEST_CAR(tx, ty, tz, 2, 0, 70))){
- *victim = GET_CLOSEST_CAR(tx, ty, tz, 2, 0, 70);
- break;
- }
- }
- else{
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, z + pitch, &offx, &offy, &offz);
- if(DOES_VEHICLE_EXIST(GET_CLOSEST_CAR(offx, offy, offz, 11, 0, 70))){
- *victim = GET_CLOSEST_CAR(offx, offy, offz, 11, 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_CHAR_HEADING(GetPlayerPed(),&h);
- if(IS_CHAR_IN_ANY_CAR(GetPlayerPed()) || IS_CHAR_IN_ANY_HELI(GetPlayerPed()) || IS_CHAR_IN_ANY_BOAT(GetPlayerPed())){
- GET_CAR_CHAR_IS_USING(GetPlayerPed(), &myVeh);
- GET_CAR_PITCH(myVeh, &pitch);
- }
- for(distance = 0;distance < maxdistance; distance++){
- if(IS_CHAR_ON_FOOT(GetPlayerPed())){
- GET_CHARACTER_OFFSET(distance, &tx, &ty, &tz);
- GET_CAR_COORDINATES(ocar, &mx, &my, &mz);
- GET_DISTANCE_BETWEEN_COORDS_3D(tx, ty, tz, mx, my, mz, &dist);
- if(dist <= 2){
- *victim = ocar;
- break;
- }
- }
- else{
- GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(myVeh, 0, distance, z + pitch, &offx, &offy, &offz);
- GET_CAR_COORDINATES(ocar, &mx, &my, &mz);
- GET_DISTANCE_BETWEEN_COORDS_3D(offx, offy, offz, mx, my, mz, &dist);
- if(dist <= 11){
- *victim = ocar;
- break;
- }
- }
- }
- distance = 0;
- }
- else{
- print("~r~No one is in a vehicle!");
- }
- }
- }
- }
- }
- else{
- print("~r~No one is in your game!");
- }
- }
- else{
- print("~r~You're in single player DumbAss!");
- }
- }
- }
- void FOLLOW(Vehicle newercar){
- if(DOES_VEHICLE_EXIST(newercar)){
- REQUEST_MODEL(0x48FA2738);
- while(!HAS_MODEL_LOADED(0x48FA2738)){
- WAIT(0);
- }
- GET_CHAR_HEADING(GetPlayerPed(), &h);
- GET_CHAR_COORDINATES(GetPlayerPed(), &gx, &gy, &gz);
- if(IS_CHAR_IN_ANY_HELI(GetPlayerPed())){
- CREATE_OBJECT_NO_OFFSET(0x48FA2738, (gx + (1 * SIN((-1 * h)))), (gy + (1 * COS((-1 * h)))), gz - 3, &rocket, 1);
- }
- else if(IS_CHAR_IN_ANY_CAR(GetPlayerPed()) || IS_CHAR_IN_ANY_BOAT(GetPlayerPed())){
- CREATE_OBJECT_NO_OFFSET(0x48FA2738, (gx + (1 * SIN((-1 * h)))), (gy + (1 * COS((-1 * h)))), gz + 3, &rocket, 1);
- }
- else{
- CREATE_OBJECT_NO_OFFSET(0x48FA2738, (gx + (1 * SIN((-1 * h)))), (gy + (1 * COS((-1 * h)))), gz + 1, &rocket, 1);
- }
- SET_OBJECT_VISIBLE(rocket, true);
- MARK_MODEL_AS_NO_LONGER_NEEDED(0x48FA2738);
- 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);
- //PLAY_SOUND_FROM_OBJECT(-1, "ROCKET_LAUNCH" ,rocket);
- PLAY_SOUND_FROM_OBJECT(-1, "WEAPON_ROCKET" ,rocket); //Test
- STOP_SOUND(-1);
- RELEASE_SOUND_ID(-1);
- while(DOES_OBJECT_EXIST(rocket) && DOES_VEHICLE_EXIST(newercar)){
- if(!DOES_VEHICLE_EXIST(newercar)){
- FREEZE_OBJECT_POSITION(rocket, true);
- GET_OBJECT_COORDINATES(rocket, &jx, &jy, &jz);
- EXPLODE(jx, jy, jz);
- DELETE_OBJECT(&rocket);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
- print("~r~Target has Disappeared!");
- break;
- }
- if((HAS_OBJECT_COLLIDED_WITH_ANYTHING(rocket)) || (distttt >= 450)){
- FREEZE_OBJECT_POSITION(rocket, true);
- GET_OBJECT_COORDINATES(rocket, &jx, &jy, &jz);
- EXPLODE(jx, jy, jz);
- DELETE_OBJECT(&rocket);
- MARK_OBJECT_AS_NO_LONGER_NEEDED(&rocket);
- break;
- }
- WAIT(0);
- GET_CAR_COORDINATES(newercar, &cx, &cy, &cz);
- GET_OBJECT_COORDINATES(rocket, &hx, &hy, &hz);
- fx = cx - hx;
- fy = cy - hy;
- fz = cz - hz;
- FOLLOW_COORDINATES(&fx, &fy, &fz, 100);
- POINT_OBJECT_AT_VEHICLE(rocket, newercar);
- GET_DISTANCE_BETWEEN_COORDS_2D(cx, cy, hx, hy, &disttt);
- if(disttt < 20 && disttt > 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_CHAR_COORDINATES(GetPlayerPed(), &gx, &gy, &gz);
- GET_DISTANCE_BETWEEN_COORDS_2D(gx, gy, hx, hy, &distttt);
- }
- }
- }
- }
- void SHOOT(Vehicle car){
- if(DOES_VEHICLE_EXIST(car)){
- float ix, iy, iz;
- GET_CAR_COORDINATES(car, &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);
- PLAY_SOUND_FRONTEND(-1, "PHONE_PRESS_KEY");
- if(IS_BUTTON_JUST_PRESSED(0, shooter)){
- FOLLOW(car);
- STOP_SOUND(-1);
- }
- }
- }
- void findVehicle(void){
- if(IS_BUTTON_PRESSED(0, lockOn)){
- Vehicle catch;
- 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;
- }
- }
- }
- void toggling(void){
- if(IS_BUTTON_JUST_PRESSED(0, STICK_RIGHT)){
- if(!networkPlayers){
- networkPlayers = true;
- print("~r~Network Players ~g~Enabled~r~!");
- }
- else{
- networkPlayers = false;
- print("~r~Pedestrian Vehicles ~g~Enabled~r~!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement