your action is only called once! you have to add a loop to your action:
Code:
action go_down()
{
triangle = me;
while(me)
{
if (vec_dist(me.x, character.x) <= 559) //this is the line that's driving me insane!
{
ent_remove(me);
return; //Exit this function
}
wait(1);
}
}