am trying to stop the skycar movement when it touches the ground (after it is takeoff.)
but, here when it touch the ground if i release the key(key_k) it is again moving ...
any help would be greatly appreciated..


function player_ship_function
{
////////////////////////////////////////////////////////////////////////
//local variables for ship movement to be adjusted when playtesting
var rise_speed_key = 1; //rise and fall speed when using the i and k keys

var pan_speed_key = 2; //pan speed when using a and d keys to turn
var roll_speed_player = 2; //roll speed when turned by player
var roll_speed_level = 1.5; //speed which the ship levels itself
var roll_extent = 18; //ship can roll to this extent angle
var tilt_speed_player = 0.5; //tilt speed when ship is rising and falling
var tilt_speed_level = 0.5; //tilt speed when ship is leveling off
//tilt angle up and down are not equal for better visual effect when flying
var tilt_extent_up = 3; //ship can tilt up to this angle
var tilt_extent_down = -3; //ship can tilt down to this angle
var roll_force_extent = 0.15;
var verticle_extent = 700; //extents for rising and falling

//player_current_health = player_base_health; //set the players health (armor)
////////////////////////////////////////////////////////////////////////
//collision detection and ship health section
my.enable_entity = on; // sensitive to collision with other entities
my.event = player_hit_event; //triggered on collision

player = me;

my.pan += 100; //turn the ship 100 degrees, orig pos = [1,0]

sleep(2);
while (player!=null)
{
player.pan += pan_speed_key * (key_j - key_l) * time;
//triggers if ship has exceeded movement range
if (player.z > verticle_extent) || (player.z < -verticle_extent)
{
//if player ship reaches the extents and key force
//is applied in the direction of the extent, only verticle movement is possible
if (((my.z > verticle_extent) && (key_i)) || ((my.z < -verticle_extent) && (key_k)))
{
c_move (player, vector(forward_speed,0, 0), nullvector, ignore_passable);
}
else
{

c_move (my, vector(forward_speed,0, time - rise_speed_key * (key_k - key_i)), nullvector, ignore_passable);
}
}
else
{

c_move (player, vector(forward_speed,0, time - rise_speed_key * (key_k - key_i)), nullvector, ignore_passable);

}

////////////////////////////////////////////////////////////////////////
//ship will roll in the direction of the pan and level out when no force is applied
if (my.roll <= roll_extent && key_l)
{
my.roll += roll_speed_player * time;

}
if (my.roll >= -roll_extent && key_j)
{
my.roll -= roll_speed_player * time;
}
if ((my.roll > 0) && (key_l == 0))
{
my.roll -= roll_speed_level * time;
}
if ((my.roll < 0) && (key_j == 0) )
{
my.roll += roll_speed_level * time;
}
////////////////////////////////////////////////////////////////////////
//ship will tilt slightly when rising and falling
if ((my.tilt <= tilt_extent_up) && (key_i))
{
my.tilt += tilt_speed_player * time;
}
if ((my.tilt >= tilt_extent_down) && (key_k))
{
my.tilt -= tilt_speed_player * time;
}
if ((my.tilt > 0) && (key_i == 0))
{
my.tilt -= tilt_speed_level * time;
}
if ((my.tilt < 0) && (key_k == 0))
{
my.tilt += tilt_speed_level * time;
}

wait(1);


}

}


action player_ship_action
{
my.enable_impact = on;
my.event = player_ship_function;
}