Thats no problem.
If there`s sombody interest, it works like this in lite-c;
___________________________________lite-c_______________________________________
VECTOR temp;
action moving_character()
{
var dist_to_ground;
VECTOR dist[3];
my.eflags &= ~FAT;
my.eflags |= NARROW;
if( my.min_x < my.min_y ) { my.min_y = my.min_x; }
if( my.max_x > my.max_y ) { my.max_y = my.max_x; }
if( my.min_y < my.min_x ) { my.min_x = my.min_y; }
if( my.max_y > my.max_x ) { my.max_x = my.max_y; }
while(my)
{
vec_set(temp.x, my.x);
temp.z -= 5;
dist_to_ground = c_trace(my.x, temp.x, IGNORE_ME | USE_BOX | IGNORE_PASSABLE);
if( dist_to_ground == 0 )
{
dist.x = 3;
dist.y = 0;
dist.z = -10;
}
if( dist_to_ground <= 5 && dist_to_ground != 0 )
{
dist.x = 6;
dist.y = 0;
dist.z = 0;
}
c_move(my,dist,nullvector, IGNORE_PASSABLE | GLIDE);
wait(1);
}
}
________________________________________________________________________________
Thanks Redeemer.
