Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void set_gravity_gun()
- {
- DWORD tempPed, tempWeap;
- if (!grav_target_locked) {
- GET_ENTITY_PLAYER_IS_FREE_AIMING_AT(PLAYER_ID(), &grav_entity);
- 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;
- if (IS_PED_IN_ANY_VEHICLE(grav_entity, 0)) grav_entity = GET_VEHICLE_PED_IS_IN(grav_entity, 0);
- if (grav_target_locked){
- bool cancel = 1;
- if (IS_ENTITY_AN_OBJECT(grav_entity) && forceGunObjects) cancel = 0;
- if (IS_ENTITY_A_VEHICLE(grav_entity) && forceGunVehicles) cancel = 0;
- if (IS_ENTITY_A_PED(grav_entity) && forceGunPeds) cancel = 0;
- if (cancel){
- grav_target_locked = 0;
- grav_entity = -1;
- return;
- }
- }
- }
- tempPed = PLAYER_ID(); GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), &tempWeap, 1);
- if ((IS_PLAYER_FREE_AIMING(tempPed) || IS_PLAYER_TARGETTING_ANYTHING(tempPed)) && DOES_ENTITY_EXIST(grav_entity) && grav_target_locked)
- {
- Vector3 gameplayCam = _GET_GAMEPLAY_CAM_COORDS();
- Vector3 gameplayCamRot = GET_GAMEPLAY_CAM_ROT(0);
- Vector3 gameplayCamDirection = RotationToDirection(gameplayCamRot);
- Vector3 startCoords = addVector(gameplayCam, (multiplyVector(gameplayCamDirection, entityDistance)));
- Vector3 endCoords = addVector(gameplayCam, (multiplyVector(gameplayCamDirection, 500.0f)));
- SET_ENTITY_COLLISION(grav_entity, 0, 1);
- //RequestControlOfid(NETWORK_GET_NETWORK_ID_FROM_ENTITY(grav_entity));
- RequestControlOfEnt(grav_entity);
- if (IS_ENTITY_A_PED(grav_entity)) SET_ENTITY_INVINCIBLE(grav_entity, 1);
- if (IS_PED_SHOOTING(PLAYER_PED_ID()) == 0) SET_ENTITY_COORDS_NO_OFFSET(grav_entity, startCoords.x, startCoords.y, startCoords.z, 0, 0, 0);
- 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);
- if (IS_PED_SHOOTING(PLAYER_PED_ID()))
- {
- RequestControlOfEnt(grav_entity);
- SET_ENTITY_COLLISION(grav_entity, 1, 1);
- SET_ENTITY_HEADING(grav_entity, GET_ENTITY_HEADING(PLAYER_PED_ID()));
- 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);
- SET_ENTITY_INVINCIBLE(grav_entity, 0);
- WAIT(300);
- grav_target_locked = false;
- grav_entity = -1;
- return;
- }
- }
- else {
- RequestControlOfEnt(grav_entity);
- SET_ENTITY_COLLISION(grav_entity, 1, 1);
- grav_target_locked = false;
- grav_entity = -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment