I whittled the remove_bullets() function down to this...
Code:
void remove_bullets() // this function runs when the bullet collides with something
{
wait (1); // wait a frame to be sure (don't trigger engine warnings)
str_cpy(weapdisp,"Test!");
set(my,PASSABLE|INVISIBLE); // the bullets becomes passable and invisible now
ent_remove (my); // and then remove the bullet
}
...just to simplify life for debugging sake. same thing. Bullet seems to just touch the surface of the entity it hits, and stops there. It doesnt do any of the stuff in remove_bullets() though.
This occurs when hitting my terrain model, and any of the models I have on it. For reference, the following action is applied to a rock model:
Code:
action mound()
{
set(my,CAST|SHADOW|POLYGON|TRANSLUCENT);
my.scale_x=3;
my.scale_y=3;
my.scale_z=3;
my.push = 1;
//wait(3);
c_trace(my.x,vector(my.x,my.y,my.z-10000),IGNORE_ME|IGNORE_PASSABLE);
if(you != NULL) {
target.z-=15;
vec_set(my.x,target.x);
//vec_to_angle(my.pan, normal); // put on surface
}
wait(1);
reset(my,TRANSLUCENT);
}