You seem not understand me, so I posted the whole routine here:

ENTITY* gun1;
ENTITY* gun2;

function p_alphafade(PARTICLE *p)
{
p.alpha -= p.skill_a*time_step;
if (p.alpha <= 0) p.lifespan = 0;
}

function p_trace(PARTICLE *p)
{
VECTOR vTemp;
set(p, BRIGHT|TRANSLUCENT|BEAM);
p.size = 1;
p.skill_a = 10; // fade factor
p.event = p_alphafade;
p.red =255;
p.blue=20;
p.green=128;
}

action tracer_right()
{
VECTOR vTemp;
vec_set(vTemp, vector(0, 150, 30));
vec_rotate(vTemp, camera.pan);
effect(p_trace,1,vector(camera.x+100+(150*cos(camera.pan)),camera.y-(150*sin(camera.pan)),camera.z-30),vTemp);
}

action tracer_left()
{
VECTOR vTemp;
vec_set(vTemp, vector(0, -150, 30));
vec_rotate(vTemp, camera.pan);
effect(p_trace,1,vector(camera.x+100+(150*cos(camera.pan)),camera.y+(150*sin(camera.pan)),camera.z-30),vTemp);
}

function main()
{
video_screen = 1;
video_mode = 12;
vec_set(sky_color,vector(0,0,0));
level_load(NULL);
video_window(NULL,NULL,0,"Laser demo");
camera.x=0;
camera.y=0;
camera.z=0;
camera.pan=0;
camera.tilt=0;
while (1){
//camera.pan -= mouse_force.x*2;
//camera.tilt += mouse_force.y*2;
if (mouse_left == 1){
if(proc_status(tracer_right) < 5)
{
gun1=ent_create(NULL,NULL,tracer_right);
}
if(proc_status(tracer_left) < 5)
{
gun2=ent_create(NULL,NULL,tracer_left);
}
}
wait(1);
}
}

The routine as it is will show 2 lasers firing to a fixed point in the middle. What I need is that when I uncomment the 2 lines which allow panning and tilting of the camera the 2 lasers remain firing in the middle and not go to different directions.