I agree with MDI, use vector. But another problem is that you use redundant arguments where result was taken when not available yet. The trace should work fine with model as well as hmp since you removed ignore_model.
I did a minor adjustment to your code JazzDude that I think will work. Here it is:
Code:
function village_func()
{
my.polygon = on;
vec_set (temp, my.pos);
temp.z -= 1000;
result -= c_trace(my.pos, temp, ignore_me + ignore_sprites + use_box);
if(result){vec_set(my.pos,vector(target));}
}

function sioux_camp()
{

temp.x = -96;
temp.y = -1164;
temp.z = 300;
ent_create("tepee_village.mdl",temp,village_func);
}