jo is auch klar:
du kannst innerhalb des vec_dist befehls keine logischen verknüpfungen machen (&&).
Um die chance das der spieler dran vorbeiläuf zu minimieren kannst du:
a) die distanz kleiner machen also die 50 auf sagen wir 10 ändern
oder b) Ein collisions event benutzen

hier möglichkeit a:
Code:

action spiel_ziel
{
while(player==null) { wait(1); }
while(1)
{
if(vec_dist(my.x,player.x) < 10)
{
freeze_mode = 1;
wait(1);
exit;
}
wait(1);
}
}


Lass dich von dem .x innerhalb des vec_dists nicht irritieren! es werden trotzdem alle drei werte (x,y,z) übergeben, da das .x nur den ersten wert des vectors angibt.
vec_dist nimmt dann automatisch noch die nächsten beiden hinzu. (also in diesem fall .y und .z)

Möglichkeit b) (ZIEL MODEL DARF NICHT PASSABLE SEIN!)
Code:

function ziel_event()
{
if(event_type == event_impact || event_type == event_entity)
{
my.skill21 = 1;
}
}

action spiel_ziel
{
my.skill21 = 0;
my.enable_impact = on;
my.enable_entity = on;
my.event = ziel_event;

while(my.skill21 == 0) { wait(1); }

freeze_mode = 1;
wait(1);
exit;
}