Try something like this... I've jused this in test of rpg game with isometric view:)

function moving_mouse //or you can put this to main function in loop
{
while(1)
{
MOUSE_POS.X = POINTER.X; MOUSE_POS.Y = POINTER.Y;
wait(1);
}
}

function gravity
{
vec_set(temp, my.x);
temp.z -= 10000; // trace downwards 500 quants below
trace_mode = IGNORE_ME + IGNORE_PASSABLE + IGNORE_SPRITES + ignore_models + use_box + scan_texture;
result = trace (my.x, temp);
my.z -= result; // put me on the ground
}

function spawn
{
temp.x = MOUSE_POS.x;
temp.y = MOUSE_POS.y;
temp.z = 500; // how far from camera
vec_for_screen(temp,CAMERA);
you = ENT_CREATE("witch>mdl",temp,gravity);
}

ON_MOUSE_LEFT = spawn;


Never say never.