высотомер готов:
float GetDistanceFromGround(float vPos[3])
{
float vAng[3];
// Направляем луч вниз.
vAng[0] = 90.0;
Handle trace = TR_TraceRayFilterEx(vPos, vAng, MASK_WATER|MASK_SOLID, RayType_Infinite, TraceRayDetectGround);
if(TR_DidHit(trace))
{
// узнаем конечную точку луча трассировки.
float vecTraceEndPos[3];
TR_GetEndPosition(vecTraceEndPos, trace);
return GetVectorDistance(vPos, vecTraceEndPos);
}
delete trace;
return -1.0;
}
public bool TraceRayDetectGround(int entity, int mask, any data)
{
if(entity == 0)
{
return true;
}
return false;
}