hi
I just checked your zombie action and have a few recommendations:
firstly:
temp2 is set to nullvector but should be to my.x, because at the moment you always ctrace from your zombie to the origin minus 100000 quants. that's a crazy distance, even if somewhere a hit happens. so I would decrease this down to max 1000:
temp2.z -= 100000;
secondly:
I know why you use use_box, but it is slower. I hope the zombie's bounding box is not too big.
my.skill90 = c_trace(my.x, temp2.x, IGNORE_ME | IGNORE_PASSABLE | USE_BOX | GLIDE | IGNORE_PASSENTS);
thirdly:
use if() with else if() for the skill 92 checking. if you use only if-s, that makes it slower, because it has to run through always all the statement unnecessarily.
I hope I helped
