try with this gravity code:

Code:
//Gravity:
vec_set(temp, my.x); 
temp.z -= 1000; 
player_dist.z = -abs(c_trace (my.x, temp, IGNORE_ME | IGNORE_PASSABLE | USE_BOX));


it's from Peter Soxberg's (Dark_Samurai) code...and it works



Ubi bene, ibi Patria.