Deine while-Schleife muss schon laufen BEVOR der Held nah genug ist.

Jetzt stell Dir vor, die Engine geht beim Start das Script durch.
Was stellt es dann fest, wenn es zu Deiner While-Schleife kommt?
Dass der Held nicht nah genug ist.
Und? Was dann? Sie ist "an der While-Schleife vorbei und wird ihr nie mehr begegnen"! wink laugh

Also muss die while-Schleife immer laufen und IN ihr die if-Abfrage stattfinden, ob der Held sich nah genug herangetraut hat!
Oder, wenn der Text eh nur ein einzigesmal während des Spiels angezeigt werden soll, kann die while-Schleife solange laufen BIS der Held nah genug herangekommen ist.

so z.B.:

void Quest_trigger_01()
{

while (held immer noch nicht in Sicht, der doof man)
{
if(endlich da, so'n Held aber auch)
{
Sag ihm laut wo's lang geht = 1;
}
Wartewartewarte(während die Engine bei all den aneren laufenden Funktionen nachschaut, was anliegt.);
}
Aus die Maus! Tschüss, Engine, jetzt brauchst Du nie mehr bei void Quest_trigger_01() vorbeischauen, ob etwas anliegt.
}