Strange, since SetShotDirectionType seems to work well for me. Atleast in the cases I've tried for 0.12m.
Example:
SetShotDirectionType(PLAYER);
CreateLaserA(1,GetClipMinX-15,-10,600,10,2,1);
SetLaserDataA(1,0,0,0,0,0,0);
SetShotKillTime(1,2);
FireShot(1);
SetShotDirectionType(ABSOLUTE);
Fires a short laser from the left corner of the screen aimed at the players hitbox.
Not sure if SetShotDirectionType only works with some types of positions, because I have no idea where everyones different views on the questionable usage of SetShotDirection comes from.