IF you want the gun to fire projectiles from the muzzle, directly into the center of the screen, right something like this:
code:
p = 999999999;
set_pos_ahead();
vec_set(gun_target,MY_POS);
Put this where you would normally find the gun_target code in the weapons.wdl.
This should always center the bullet.
Rockets are a little more complicated, but I can do it if you want me to.