Had to test the code myself to find the problem! wink
Yes it seems like hit.vertex is always the first vertex of the triangle, so you have to calculate it yourself:

D3DVERTEX* vbuffer;
ent_buffers(hit.entity,0,0,&vbuffer,&triangleBuffer,NULL);
...
vec_to_ent(target,hit.entity);
var max_dist = 999,j,k;
for(i = 0; i < 3; i++)
{
j = vec_dist(target,(vector(vbuffer[triangleBuffer[hit.triangle*3+i]].x,vbuffer[triangleBuffer[hit.triangle*3+i]].z,vbuffer[triangleBuffer[hit.triangle*3+i]].y));
if(j < max_dist)
{
max_dist = j;
k = i;
}
}

Now k should be your closest vertex!


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends