Wenn du tatsächlich C-Script benutzt (und somit wdl Skripte kompilierst), dann lasse das lieber sofort und steige auf lite-C um.
Folgender Code sollte in etwa tun was du willst:
Code:
c_trace(...) // vertikaler trace nach unten
vec_rotate(normal,vector(-my.pan,0,0));
my.tilt = -asinv(normal.x);
my.roll = -asinv(normal.y);


oder etwas ausgefallener vllt wie folgt:
Code:
c_trace(my.x,vector(my.x,my.y,my.z-150),IGNORE_ME | IGNORE_PASSABLE)); // vllt andere Distanz oder USE_BOX
if(trace_hit)
{
vec_rotate(normal,vector(-my.pan,0,0));
my.tilt = -asinv(normal.x);
my.roll = -asinv(normal.y);
}
else
{
my.tilt += -my.tilt*0.2*time;
my.roll += -my.roll*0.2*time;
}



"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends