MikeRohsoft

force gravity gun

Jul 31st, 2017
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.96 KB | None | 0 0
  1. void set_gravity_gun()
  2.     {
  3.         DWORD tempPed, tempWeap;
  4.  
  5.         if (!grav_target_locked) {
  6.             GET_ENTITY_PLAYER_IS_FREE_AIMING_AT(PLAYER_ID(), &grav_entity);
  7.             if (DOES_ENTITY_EXIST(grav_entity) && checkNear(GET_ENTITY_COORDS(PLAYER_PED_ID(), 1), GET_ENTITY_COORDS(grav_entity, 1), pickupDistance)) grav_target_locked = 1;
  8.             if (IS_PED_IN_ANY_VEHICLE(grav_entity, 0)) grav_entity = GET_VEHICLE_PED_IS_IN(grav_entity, 0);
  9.             if (grav_target_locked){
  10.                 bool cancel = 1;
  11.                 if (IS_ENTITY_AN_OBJECT(grav_entity) && forceGunObjects) cancel = 0;
  12.                 if (IS_ENTITY_A_VEHICLE(grav_entity) && forceGunVehicles) cancel = 0;
  13.                 if (IS_ENTITY_A_PED(grav_entity) && forceGunPeds) cancel = 0;
  14.                 if (cancel){
  15.                     grav_target_locked = 0;
  16.                     grav_entity = -1;
  17.                     return;
  18.                 }
  19.             }
  20.         }
  21.  tempPed = PLAYER_ID(); GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), &tempWeap, 1);
  22.         if ((IS_PLAYER_FREE_AIMING(tempPed) || IS_PLAYER_TARGETTING_ANYTHING(tempPed)) && DOES_ENTITY_EXIST(grav_entity) && grav_target_locked)
  23.         {
  24.             Vector3 gameplayCam = _GET_GAMEPLAY_CAM_COORDS();
  25.             Vector3 gameplayCamRot = GET_GAMEPLAY_CAM_ROT(0);
  26.             Vector3 gameplayCamDirection = RotationToDirection(gameplayCamRot);
  27.             Vector3 startCoords = addVector(gameplayCam, (multiplyVector(gameplayCamDirection, entityDistance)));
  28.             Vector3 endCoords = addVector(gameplayCam, (multiplyVector(gameplayCamDirection, 500.0f)));
  29.             SET_ENTITY_COLLISION(grav_entity, 0, 1);
  30.             //RequestControlOfid(NETWORK_GET_NETWORK_ID_FROM_ENTITY(grav_entity));
  31.             RequestControlOfEnt(grav_entity);
  32.             if (IS_ENTITY_A_PED(grav_entity)) SET_ENTITY_INVINCIBLE(grav_entity, 1);
  33.             if (IS_PED_SHOOTING(PLAYER_PED_ID()) == 0) SET_ENTITY_COORDS_NO_OFFSET(grav_entity, startCoords.x, startCoords.y, startCoords.z, 0, 0, 0);
  34.    
  35.     if (IS_ENTITY_A_VEHICLE(grav_entity) || IS_ENTITY_A_PED(grav_entity)) SET_ENTITY_HEADING(grav_entity, GET_ENTITY_HEADING(PLAYER_PED_ID()) + 90.0f);
  36.             if (IS_PED_SHOOTING(PLAYER_PED_ID()))
  37.             {
  38.                 RequestControlOfEnt(grav_entity);
  39.                 SET_ENTITY_COLLISION(grav_entity, 1, 1);
  40.                 SET_ENTITY_HEADING(grav_entity, GET_ENTITY_HEADING(PLAYER_PED_ID()));
  41.  
  42.                 APPLY_FORCE_TO_ENTITY(grav_entity, 1, 0.0f, 350.0f, 2.0f + endCoords.z, 2.0f, 0.0f, 0.0f, 0, 1, 1, 1, 0, 1);
  43.                 SET_ENTITY_INVINCIBLE(grav_entity, 0);
  44.                 WAIT(300);
  45.                 grav_target_locked = false;
  46.                 grav_entity = -1;
  47.  
  48.                 return;
  49.             }
  50.         }
  51.         else {
  52.             RequestControlOfEnt(grav_entity);
  53.             SET_ENTITY_COLLISION(grav_entity, 1, 1);
  54.             grav_target_locked = false;
  55.             grav_entity = -1;
  56.         }
  57.  
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment