Am schnellsten wirst du dein Problem lösen, in dem du einfach zwei Vektoren aufstellst.
(Dazu einmal eine kleine Grafik):
breadfish.de/wcf/attachment/3997/
Als Ortsvektor dient dabei deine Spieler-Position (p1, p2, p3) durch GetPlayerPos().
Mit GetPlayerFacing() bekommst du die Blickrichtung deiner Person heraus.
Mit diesem Winkel kannst du nun einen einen Vektor beschreiben. Die Funktion dazu sieht so aus:
breadfish.de/wcf/attachment/3998/
Nun brauchst du einen Vektor zwischen deiner Spielerposition (Punkt P) und dem Ort des Feuers (Punkt F, also Anfangspunkt P Endpunkt F, sprich der Richtungsvektor).
Hier stellst du einfach die Parameterform für eine Gerade auf. (vektor x = Ortsvektor + skalar * Richtungsvektor)
Mit hilfe des Richtungsvektors kannst du übrigens auch die Distanz zum Feuer messen (Betrag aus dem Vektor)
Nun brauchst du nurnoch das Skalarprodukt (a1 * b1 + a2 * b2 + ... + an * bn) und etwas Mathematik aus der Unterstufe. (Satz des Pythagoras)
Sprich cos alpha muss berechnet werden.
Das sieht dann am Ende so aus: breadfish.de/wcf/attachment/3999/. (Achtung das Alpha des cosinus ist nicht das Selbe wie das des Facings)
Es gibt wie immer natürlich noch hundert andere Wege, aber das dürfte der Schnellste sein. (Auch hinsichtlich der Berechnungszeiten)
PS: Dem Threadersteller hilft es herzlich wenig, wenn ihr ihm sagt, dass es bei euch funktioniert..