Sorry, but I find this code difficult to understand. And the stuff in the web page is different from the downloadable code......
BTW, if my.z > my.soil_height ,why do we set my.speed_z to zero? We have to perform a vertical motion
EDIT:
Haha oh well. Did you read the article or only check the code?
I didn't understand both

vec_set(temp,vector(my.x,my.y,my.z-150+my.foot_height));
c_trace(my.x,temp,IGNORE_PASSABLE | IGNORE_ME | USE_BOX);
if(!trace_hit) vec_set(target,temp);
The temp vector obviously is set 2 lines before your questioned vec_set instruction. The idea is simple, we declare out trace target "temp", then we c_trace and should we not hit anything the target vector would be the nullvector, thus we overwrite it with our desired position (the content of temp). The reason for this is that we only want to have a vector somewhere below the player's feet, in fact we are normally only interested in the z-component of the target vector.
This was the only thing in the code that I understood. And it was a mistake to post my previous post that I deleted as I was confused about the "target" vector (I didn't know what it is as I'm a B-E-G-I-N-N-E-R)
I know it is well-explained but I just want to be more sure
EDIT: You have changed/ deleted your old post, so my answer may seem somehow off to other users.
OK. I DELETED it as ,at that particular point, I realised what is "target".