I know this has been beaten to death on the forums, but I found nothing that addressed my particular problem.

Here's the collision detection I'm using from the script corresponding to the "player":

Code:
 ////////////////////////////
function collision_check()
{
dot_front_left[0] = my.x - 15;
dot_front_left[1] = my.y + 25;
dot_front_left[2] = my.z;
dot_front_right[0] = my.x + 15;
dot_front_right[1] = my.y + 25;
dot_front_right[2] = my.z;
dot_back_left[0] = my.x - 15;
dot_back_left[1] = my.y - 25;
dot_back_left[2] = my.z;
dot_back_right[0] = my.x + 15;
dot_back_right[1] = my.y - 25;
dot_back_right[2] = my.z;
dot_right_front[0] = my.x + 25;
dot_right_front[1] = my.y + 15;
dot_right_front[2] = my.z;
dot_right_back[0] = my.x + 25;
dot_right_back[1] = my.y - 15;
dot_right_back[2] = my.z;
dot_left_front[0] = my.x - 25;
dot_left_front[1] = my.y + 15;
dot_left_front[2] = my.z;
dot_left_back[0] = my.x - 25;
dot_left_back[1] = my.y - 15;
dot_left_back[2] = my.z;

me = my;
trace_mode = ignore_me;
if (trace(dot_front_left.x, dot_front_right.x) != 0) {move_forward = no;} else {move_forward = yes;}
if (trace(dot_back_left.x, dot_back_right.x) != 0) {move_back = no;} else {move_back = yes;}
if (trace(dot_left_front.x, dot_left_back.x) != 0) {move_left = no;} else {move_left = yes;}
if (trace(dot_right_front.x, dot_right_back.x) != 0) {move_right = no;} else {move_right = yes;}
me = blank_ent;
}

////////////////////////////



It works great with blocks, but I can still pass through models.

Help would be greatly appreciated.

P.S. I know about c_move and c_trace, but I'd like to see if this can be fixed first before I try to code what looks like a completely different kind of collision detection. my.passable = off didn't work, and neither did my.polygon = on.

P.S.S. The models that the player passes through are animated, but they're in their "wait" frames, so they do not move.

Last edited by Cyan; 08/21/07 04:03.