uhps I forgot that you need to set the events.
Code:

//bullet destruction
function game_bullet_collide()
{
	if(event_type == EVENT_BLOCK || event_type == EVENT_ENTITY)
	{
		me.skill1 = 0;
	}
		
}

//bullet behaviour
action game_fire_bullet()
{
	my.skill1 = 1;

        my.emask |= (ENABLE_BLOCK | ENABLE_ENTITY);
        my.event = game_bullet_collide;
	
	while(my.skill1)
	{
		c_move(me, vector(0,40,0), nullvector, IGNORE_FLAG2);
		wait(1);
	}
	
	wait(1);
	ent_remove(me);

}



you should also multiply your movement speed with time_step to get frame-rate independent movement