I am not sure if i understand you right, maybee you mean this:
Your weaponscript is calling before the cameramovement, and so you set the weapon, then the camera is moving and now the picture is rendering. The weaponscript have to call AFTER the camera.
Set the following line in the action of the weapon:
proc_mode = PROC_LATE;