Your T_RadiusDamage() call on your spike won't do damage to the entity the spike is hitting.
Take a look:
T_RadiusDamage (self, self.owner, 30, other);
That's why the enemies won't die. Change that last other to world, so the radius damage won't ignore any entity unless the world.