GetInflictor doesn't work in SNPCs?

If you use GetInflictor on the OnTakeDamage hook, it will return the attacker, no matter what. Am I doing something wrong?
My code:
[lua]function ENT:OnTakeDamage(dmg)
self:SetHealth(self:Health() - dmg:GetDamage())
if self:Health() <= 0 then
self:SetNPCState(NPC_STATE_DEAD)
self:SetSchedule(SCHED_DIE_RAGDOLL)
hook.Call(“OnShitterKilled”, GAMEMODE, dmg:GetAttacker(), dmg:GetInflictor())
print(dmg:GetInflictor())
else
if self:Health() <= 10 then
self.Phase = 2
self:StartSchedule(schdCritical)
elseif self.Phase == 0 and dmg:GetAttacker() and dmg:GetAttacker():IsValid() then
self:AddEntityRelationship(dmg:GetAttacker(), 1, 99)
self:SetEnemy(dmg:GetAttacker())
self:ProcessCondition(“COND_NEW_ENEMY”)
end
end
end[/lua]

I am using my own hook because OnNPCKilled doesn’t seem to work on SNPCs either. Any suggestions?