function stuncommon(damage, activator, caller) if activator.m_iTeamNum == caller.m_iTeamNum then return end if damage < 70.0025 or caller.m_bIsMiniBoss == 1 then return end caller:StunPlayer(10, 0.0025, TF_STUNFLAG_BONKSTUCK | TF_STUNFLAG_SLOWDOWN, activator) end function OnWaveInit() convar.SetValue("tf_mvm_min_players_to_start", 5) for _, player in pairs(ents.GetAllPlayers()) do player:RemoveAllCallbacks(ON_DAMAGE_RECEIVED_PRE) player:RemoveAllCallbacks(ON_DEATH) --print("all callbacks removed") end end function solotest() convar.SetValue("tf_mvm_min_players_to_start", 0) end function OnGameTick() for _, player in pairs (ents.GetAllPlayers()) do if player:IsBot() then return end if player:InCond(12) then player:AcceptInput("setscriptoverlaymaterial", "effects/combine_binocoverlay") elseif player:InCond(65) then player:AcceptInput("setscriptoverlaymaterial", "botvision") elseif not player:InCond(12) and not player:InCond(65) then player:AcceptInput("setscriptoverlaymaterial", "") end end end local function damagecallback(bot) bot:AddCallback(ON_DAMAGE_RECEIVED_PRE, function(_, damageinfo) --print("bot took damage, callback executed") local origin = bot:GetAbsOrigin() local angles = bot:GetAbsAngles() if damageinfo.Damage < 51 then util.ParticleEffect("bot_impact_light", origin, angles, bot) --print("bot took less than 51 damage, playing light impact particle") end if damageinfo.Damage > 51 then util.ParticleEffect("bot_impact_heavy", origin, angles, bot) --print("bot took more than 50 damage, playing heavy impact particle") end return true end) bot:AddCallback(ON_DEATH, function() --print("bot died, callbacks removed") bot:RemoveAllCallbacks() end) end function OnWaveSpawnBot(bot) bot:SetAttributeValue("increased air control", 5) bot:SetAttributeValue("mult duck speed", 3) bot:SetAttributeValue("mult credit collect range", 0) bot:SetAttributeValue("crit mod disabled", 0) bot:AddCond(51, 0.5, nil) if bot.m_bIsMiniBoss == 1 then bot:SetAttributeValue("damage force increase", 0) bot:SetAttributeValue("airblast vulnerability multiplier", 0) bot:SetAttributeValue("airblast vertical vulnerability multiplier", 0) end if bot.m_flModelScale > 1 then bot:SetAttributeValue("always gib", 1) end if bot.m_iTeamNum ~= 3 then damagecallback(bot) end end function heavynoupgrade(_, activator) if activator.m_iClass == 6 then convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_1st_upgrade", 999999) convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_2nd_upgrade", 999999) convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_3rd_upgrade", 999999) end end function clearnoupgrades() convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_1st_upgrade", 5) convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_2nd_upgrade", 15) convar.SetValue("tf_mvm_bot_flag_carrier_interval_to_3rd_upgrade", 15) end