Потестил в 3D стрелялке.
Вот рабочий вариант. Камеру, у меня по крайней мере, не дергает.
IF(ISKEYDOWN(1)=1)
WAITMS(35)
LUP(INT($_xmax/2),INT($_ymax/2))
ELSE
WAITMS(10)
END_IF
Если выстрел не срабатывает или плохо срабатывает, увеличь задержку WAITMS(35)
Опять же если требуется стрелять короткими очередями увеличь задержку еще сильнее (подбирается опытным путем.)
А вот вариант с включением/отключением одиночных выстрелов на клавишу N
IF(ISKEYDOWN(#N)=1)
WHILE(ISKEYDOWN(#N)=1)
WAITMS(5)
END_CYC
IF($t1 = 0)
$t1 = $t1^1
SETTHREAD (t1, 1)
BEEP(1000,200)
ELSE
$t1 = $t1^1
SETTHREAD (t1, 2)
BEEP(500,200)
END_IF
ELSE
WAITMS(20)
END_IF
THREAD(t1, 0)
WAITMS(0)
IF(ISKEYDOWN(1)=1)
WAITMS(35)
LUP(INT($_xmax/2),INT($_Ymax/2))
ELSE
WAITMS(10)
END_IF
END_THREAD