local callbacks = {} function dna_gun(_,activator,caller) function removeCallbacks() for _,i in pairs(callbacks) do activator:RemoveCallback(i) end end local botClass = caller.m_iClass local backCall = caller:AddCallback(ON_DAMAGE_RECEIVED_PRE, function(entity,damageinfo,_) if damageinfo.DamageCustom == TF_DMG_CUSTOM_BACKSTAB and damageinfo.Attacker == activator and (damageinfo.Damage * 3) >= caller.m_iHealth then activator:SwitchClassInPlace(botClass) if tonumber(botClass) == 5 then local medigunCaller = caller:GetPlayerItemBySlot(LOADOUT_POSITION_SECONDARY) local medigunActivator = activator:GetPlayerItemBySlot(LOADOUT_POSITION_SECONDARY) medigunActivator.m_flChargeLevel = medigunCaller.m_flChargeLevel end activator:AddCond(5, 5) end end) timer.Simple(15,function() caller:RemoveCallback(backCall) end) local switchBack = activator:AddCallback(ON_DEATH, function() activator:SwitchClassInPlace(8) end) table.insert(callbacks,switchBack) end function OnWaveInit() removeCallbacks() end