hi i have a different script makes its same with yours here i post it maybe it help you the keys are wasd and space for jump but the jump is not so fine it more then a little bit fly
define healt,skill1;
define cam_high,skill5;
define anmprzt,skill20;
define mdl_air,skill21;
define sprghigh,skill22;
var player_speed[3];
var jmp_akt=1;
function jump_control()
{
jmp_akt=0;
waitt(16);
jmp_akt=1;
}
//uses healt,cam_high,anmprzt,sprghigh
Action Spieler
{
var sprakt; // sprunghöhe
var jmp_ergebnis;
player=my;
my.shadow=on;
shift_sense=2;
camera.genius=my;
if (player.healt==0) {player.healt=100;}
if (my.sprghigh == 0 ) {my.sprghigh=30;}
while(player.healt>=0)
{
camera.x=player.x;
camera.y=player.y;
camera.z=player.z+player.cam_high;
player.pan-=20*mouse_force.x*time;
camera.tilt+=20*mouse_force.y*time;
if (camera.tilt > 90) {camera.tilt=90;}
if (camera.tilt < -45) {camera.tilt=-45;}
//camera.tilt %=-90;
camera.pan=player.pan;
//camera.tilt=player.tilt;
player_speed.x = 15*(key_w - key_s)*time;
player_speed.y = 10*(key_a - key_d)*time;
player_speed.z = 0;
if ((key_space==1) && (jmp_akt==1)) //sprungsequenz
{
jump_control();
while(my.sprghigh > sprakt )
{
player_speed.z=10*time;
sprakt+=1;
camera.x=player.x;
camera.y=player.y;
camera.z=player.z+player.cam_high;
player.pan-=20*mouse_force.x*time;
camera.tilt+=20*mouse_force.y*time;
if (camera.tilt > 90) {camera.tilt=90;}
if (camera.tilt < -45) {camera.tilt=-45;}
camera.Pan=player.pan;
camera.tilt=player.tilt;
c_move(my,player_speed,nullvector,ignore_passable+ignore_passents+glide);
wait(1);
}
/*while(sprakt>0)
{
player_speed.z=-10*time;
sprakt+=1;
camera.x=player.x;
camera.y=player.y;
camera.z=player.z+player.cam_high;
player.pan-=20*mouse_force.x*time;
camera.tilt+=20*mouse_force.y*time;
jmp_ergebnis = c_move(my,player_speed,nullvector,ignore_passable+ignore_passents+glide);
if (jmp_ergebnis <=0) { return;}
wait(1);
}*/
sprakt=0;
}
if ((key_W+key_s)!=0)
{
ent_animate(my,"Walk",player.anmprzt,anm_cycle);
player.anmprzt+=4*(key_w - key_s)*time;
player.anmprzt %= 100;
}
else
{
ent_animate(my,"Stand",player.anmprzt,anm_cycle);
player.anmprzt+=2*time;
player.anmprzt %= 100;
}
if ((key_a+key_d)!=0)
{
ent_animate(my,"Walk",player.anmprzt,anm_cycle);
player.anmprzt+=4*(key_a - key_d)*time;
player.anmprzt %= 100;
}
else
{
ent_animate(my,"Stand",player.anmprzt,anm_cycle);
player.anmprzt+=2*time;
player.anmprzt %= 100;
}
vec_set(temp,my.x);
temp.z-=2000;
trace_mode=ignore_me+use_box;
player.mdl_air=trace(my.x,temp);
if (player.mdl_air > 3 )
{
while (player.mdl_air > 3 )
{
player_speed.z=-10*time;
c_move(my,player_speed,nullvector,ignore_passable+ignore_passents+glide);
camera.x=player.x;
camera.y=player.y;
camera.z=player.z+player.cam_high;
camera.Pan=player.pan;
camera.tilt=player.tilt;
player.pan-=20*mouse_force.x*time;
camera.tilt+=20*mouse_force.y*time;
if (camera.tilt > 90) {camera.tilt=90;}
if (camera.tilt < -45) {camera.tilt=-45;}
trace_mode=ignore_me+use_box;
player.mdl_air=trace(my.x,temp);
wait(1);
}
}
else
{
player_speed.z=0;
}
//c_move(my,player_speed,nullvector,ignore_passable+ignore_passents+glide);
move_mode=ignore_passents+ignore_passable;
ent_move(player_speed,Nullvector);
wait(1) ;
}
}