Code:
VIEW* topcam = {
	layer = 99;
	pos_x = 10;
	pos_y = 10;
	size_x = 200;
	size_y = 200;
	ambient = 10;
	arc = 120;
	genius = NULL;
	flags = VISIBLE|ISOMETRIC;
}

function handle_topcam(){
	topcam.x = my.x;
	topcam.y = my.y;
	topcam.z = my.z+300;
	topcam.tilt = -90;
}


action Thirdp(){
	var camdist = 200; //camera distance
	camera.tilt = -45;
	while(1){
		camera.pan = my.pan;
		handle_topcam();
		camera.x = my.x-camdist*cosv(camera.pan); 
		camera.y = my.y-camdist*sinv(camera.pan); 
		my.pan -= 10*time_step*mouse_force.x;
		camera.z = my.z+camdist;
		camdist+=mickey.z*time_step;
		c_move(me,vector((key_w-key_s)*10*time_step,0,0),nullvector,GLIDE);
		wait(1);
	}
}


void main(){
	level_load("asdasd.wmb");
	ent_create("dummy.mdl",nullvector,Thirdp);
	wait(1);
}


works well for me.


3333333333