что-то ты тут намудрил с углами, я не знаток тригонометрии и опыта 3д кодинга у меня нет...
Когда меняешь вот это:
ex_bul\xspeed = ex_bul\xspeed + nfx
ex_bul\yspeed = ex_bul\yspeed + nfy
ex_bul\zspeed = ex_bul\zspeed + nfz
На вот это:
ex_bul\zspeed = ex_bul\zspeed -0.1
то отскок вроде нормальный, если стрелять в ту стену, напротив которой появляешься.
Если стреляешь вбок стены, то надо ставить вот это:
ex_bul\yspeed = ex_bul\yspeed -0.1
То есть nfx#, nfy# и nfz# примерно должны быть около -0.1, а у тебя они имеют какие-то странные значения во время столкновения они меняются от -0.0001 до 0.05.
А вообще возьми PhysX и не мучайся
