Search In
• More options...
Find results that contain...
Find results in...

# [C#] How to apply force on peds/props at angle?

## Recommended Posts

Hey,

I've been trying to figure out how to apply force on ped/props at an angle for the past couple of days with no luck, I can guess its obvious and has something to do with quaternion or force amount on Y & Z axis but just can't figure it out. Help me,please..

I'm trying to launch peds/props at the angle of the cross-hair..

Thanks

##### Share on other sites

This will apply force to an object in the direction of the active gameplay camera

`//get camera rotationVector3 Rot = CAM::GET_GAMEPLAY_CAM_ROT(2);//normalize to directional vectorVector3 direction = RotationToDirection(Rot);//directional force vectordirection.x = force * direction.x;direction.y = force * direction.y;direction.z = force * direction.z;//apply the force to the entity//rotation is a normalized vector to rotate the objectENTITY::APPLY_FORCE_TO_ENTITY(targetEntity, 1, direction.x, direction.y, direction.z, rotation_x, rotation_y, rotation_z, false, false, true, true, false, true);//function convert 0-90 rotation to normalized directional vectorVector3 RotationToDirection(Vector3* rot){	float radiansZ = rot->z * 0.0174532924f;	float radiansX = rot->x * 0.0174532924f;	float num = std::abs((float)std::cos((double)radiansX));	Vector3 dir;	dir.x = (float)((double)((float)(-(float)std::sin((double)radiansZ))) * (double)num);	dir.y = (float)((double)((float)std::cos((double)radiansZ)) * (double)num);	dir.z = (float)std::sin((double)radiansX);	return dir;}`
Edited by spearminty

##### Share on other sites

Can't seem to get it work The force gets applied at a constant direction...

##### Share on other sites

be sure you are recalculating the rotation before each shoot event.

if you send me your code I can better help see your problem

##### Share on other sites

https://github.com/ratulrafsan/GTA-V-mods/blob/master/AnimalShooter.cs Here is the code.. I'm quite sure the solution is obvious and I'm just missing the point

shootAnimal2 is the function I am trying to modify .

Edited by nyanpire

##### Share on other sites

For dotnet you will need to use:

`Vector3 Rot =  GameplayCamera.Rotation;//normalize to directional vectorVector3 direction = RotationToDirection(Rot);//directional force vectordirection.X = force * direction.X;direction.Y = force * direction.Y;direction.Z = force * direction.Z;`

Rot = GameplayCamera.Rotation;

as you have commented out

and not:

Vector3 Rot = Function.Call<Vector3>(Hash.GET_CAM_ROT, 2);

The get_cam_rot native gets the rotation of an arbitrary camera specified by an ID. You have not used this native correctly so it would probably always return some camera elsewhere in the world, or a null

This is the native that you want:

Native::Hash::GET_GAMEPLAY_CAM_ROT
Edited by spearminty

##### Share on other sites

No...can't get it to work.
Thanks for the help , I'm tired..might as well leave it as it is...

##### Share on other sites

Hey! It worked! Apparently , SET_PED_TO_RAGDOLL was the culprit here. Thanks alot for your help!

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×