Check if the c_trace hits something directly at the origin, such as the player or the (passable?) weapon.
If that didn't help, a simple solution would be to move the ghosts manually (manipulate their xyz-position) instead of using c_move. Alternatively, you could iterate over all (or just the ghost) entities and reset their passable flag, then c_trace and set it again.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends