Ich habe B&W nie gespielt und weiß deshalb auch nicht ganz genau wie das Endprodukt aussehen soll, aber vieleicht kann dir folgender Code ein wenig weiter helfen:

function isometric_camera() // displays the player from an orbit-view

{

var i =0; //pan-cam
var i2=0; //tilt-cam

while (player == NULL) {wait (1);} // wait until the player is created


while (1)
{

i2+=(mouse_force.y)*12*time_step;


i2=clamp(i2,-90,90);


i+=(mouse_force.x)*40*time_step; //auskommentieren und im player-code
//"pan+=(mouse_force.x)*40*time_step;" oder
//"c_rotate(my,vector(40 * (mouse_force.x) * time_step,0,0),IGNORE_PASSABLE);"
//setzen


camera.pan = player.pan+i;

camera.tilt = player.tilt+i2;

camera.z = player.z +10 - 50 * sin(camera.tilt);

camera.x = (player.x - 50 *cos(camera.tilt)*cos(player.pan+i));

camera.y = (player.y - 50 *cos(camera.tilt)*sin(player.pan+i));


wait (1);

}

}

Das ist ein Kamera, welche sich in einem festgelegtem Abstand (50 Quants in unserem Fall) um einen Punkt (hier 10 Quants über dem player ) mit der Maus rotieren lässt. Folgst du dem Kommentar bei der i+=... Zeile, dann rotiert die player entity mit der Mausbewegung und die Kamera mit ihr-ansonsten nur die Kamera um den player.
Musst eben noch player=my; im Code der Entity einfügen an welche die Kamera gehängt werden soll.

Vieleicht kannste dem Code was für dich Nützliches entnehmen.