something like this

while(me)
{
vec_set(temp,my.x);
temp.z = -500;
c_trace(my.x,temp,IGNORE_ME|IGNORE_PASSABLE|IGNORE_SPRITES);
if(abs(normal) > 0.4){my.speed = 0;} //I've used abs to make this working both sides, I mean if slope is increasing or descending but You can change it to move faster is descending and stop if increasing to much
else{my.speed =5;}
c_move(me,vector(my.speed *time_step,0,0),nullvector,GLIDE);
wait(1);
}

edit: but problem is that the normal will be the same no matter what your pan will be.
So another idea is to tracing from 4 differents points (one front, one behind, one on the left and one on the right side of the plyaer) and checking differences between distances to the floor.
So if difference between distances to floor between front one and back one is to large (f.e. back one is higher than front one) it means you are on increasing slope etc
Then your speed can depend of differences. If slope is more increasing then slower the speed is.
I like this idea

Last edited by tompo; 06/16/07 14:41.

Never say never.