AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   plane normal (https://forums.alliedmods.net/showthread.php?t=314120)

CrazY. 02-04-2019 12:44

plane normal
 
Hello, I'm trying to angulate entity according to the ground, but keep its view direction.
https://i.imgur.com/nU3CuSc.jpg

I tried to get global plane normal vector and convert it to angle vector, but didn't work properly.

Code:
engfunc(EngFunc_MakeVectors, vecAngles); static Float:vecPlaneNormal[3]; global_get(glb_trace_plane_normal, vecPlaneNormal); vector_to_angle(vecPlaneNormal, vecAngles); set_pev(this, pev_angles, vecAngles);

Any suggestion?

HamletEagle 02-04-2019 13:02

Re: plane normal
 
Look it lie flat plugin, it may help.

fysiks 02-04-2019 22:18

Re: plane normal
 
FYI, "normal" means perpendicular to the plane, not parallel. So, the normal vector for that plane would point up, slightly to the right.

CrazY. 02-06-2019 08:42

Re: plane normal
 
Hmm, it's not working properly with my entity, it's rotating to left/right side, not to its view direction.

Spoiler

DjSoftero 02-08-2019 05:34

Re: plane normal
 
code form my spray plugin
PHP Code:

new IPlayerOrigin[3]
    new 
Float:AimOrigin[3]
    new 
Float:PlayerOrigin[3]
    new 
Float:AimVector[3]
    new 
Float:NormalVector[3]
    new 
Float:AngleVector[3]
    
    
entity_get_vector(idEV_VEC_v_angleAimVector)//gets players view angle
    
angle_vector(AimVectorANGLEVECTOR_FORWARDAimVector)//rotates it
    
get_user_origin(idIPlayerOrigin1);//gets user origin from eye position(differs if player is ducking or standing)
    
IVecFVec(IPlayerOriginPlayerOrigin);//from integer to float
    
    
AimVector[0] = AimVector[0] * 9999.0 PlayerOrigin[0]//idk
    
AimVector[1] = AimVector[1] * 9999.0 PlayerOrigin[1]
    
AimVector[2] = AimVector[2] * 9999.0 PlayerOrigin[2]

    new 
trace create_tr2()
    
engfunc(EngFunc_TraceLinePlayerOriginAimVectorIGNORE_MONSTERSidtrace)
    
get_tr2(traceTR_vecEndPosAimOrigin)
    
get_tr2(traceTR_vecPlaneNormalNormalVector)//getting normal plane vector perpendicular to the plane you're aiming at aka 90 degree angle with the plane
    
free_tr2(trace)
    
    
NormalVector[0]*= -1.0//because ANGLEVECTOR_LEFT does not exist I got to invert the vectors xy axis
    
NormalVector[1]*= -1.0
    
    angle_vector
AngleVectorANGLEVECTOR_RIGHTAngleVector )
    
    
vector_to_angleNormalVectorAngleVector )

        
//AngleVector the angle for the entity to lay flat on surface
        //AimOrigin origin for the entity 


CrazY. 02-25-2019 16:21

Re: plane normal
 
After some tests I noticed that the angles it's right, what is not right it's the velocity vector.
For some reason the car rotates while moving in a terrain not parallel (horizontal), always to left/right side.

EDIT: Actually car still rotates even if not moving.


All times are GMT -4. The time now is 07:30.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.