Scaling weapon damage according to the inflictor

Any performance increase would be great as I have no idea how to check a list of weapons and check if the inflictor matches without looping though a whole table.

The EntityTakeDamage hook only does have 2 args and thats ‘target’ the object that got hit and ‘dmg’ to edit the damage’s influence

I need a inflictor in my code too? Any hooks/work arounds for that??

Example
[lua]
local playerWeapons = {}
playerWeapons[1] = {
weapon = “ops_honeybadger”,
scale = 1
}
hook.Add(“EntityTakeDamage”, “scaleWeapon”, function(target, dmg)

if target:IsPlayer() then
	for _,v in pairs ( playerWeapons ) do
		if v.weapon == inflictor:GetClass() then -- i need a way of retriving inflictor or any kind that can identify the weapon used to damage with.
			local owner = inflictor:GetOwner() --   ^ 
			local scale = v.scale / ( owner:GetNWInt(v.weapon) / 100 ); -- scale it
			dmg:ScaleDamage( 1 + scale ); -- scale the damage
			return true
		else
			dmg:ScaleDamage( 1 ); -- if not any weapons in the table matchs the inflictor weapon.
			return true
		end
	end
end

end)[/lua]

The second argument of EntityTakeDamage allows for this: http://wiki.garrysmod.com/page/CTakeDamageInfo/GetInflictor

Thanks a lot <3.