I made some simple teleport code and works fine
Code:
void teleport_position(var teleport_id)
{
	if(teleport_id == 1)
	{
		player.x = 454; player.y = 878; player.z = 0;
	}
	if(teleport_id == 2)
	{
		player.x = 454; player.y = 878; player.z = 0;
	}
	// .....	
}

var teleport_activated;

action teleporter()
{
	while(!player){wait(1);}
	while(1)
	{
		if (vec_dist(my.x,player.x) < 400)
		{
			if (vec_dist(my.x,player.x) < 300)
			{
				if (vec_dist(my.x,player.x) < 200 && teleport_activated == 0)
				{ 
					teleport_activated = 1;
					teleport_position(my.skill1);
				}
			} 
			else 
			{
				// turn on again teleport effect
				teleport_activated = 0;	
			}
		}
		wait(1);
	}	
}