Try to change the bold line
proc_late();
climb = 1;
vec_set(player.x,my.skill21); //place it at the stored position to prevent the normal movement
my.skill30 = c_move(p...
into player.z = my.skill23;
and
break;
}
vec_set(my.skill21,player.x);
wait(1);
into my.skill23 = player.z;
Add before the wait(1); comment above for example this:
if(vec_dist(vector(my.skill21,my.skill22,0),vector(player.x,player.y,0) > 64) {
climb = 0;
break;
}