:: UberFailsafe <- { function thinker(bot) { if (bot.HasBotTag("inf_uber")) { bot.ValidateScriptScope() local scope = bot.GetScriptScope() scope.patient <- null scope.check <- check AddThinkToEnt(bot, "check") } } function check() { if (self.IsValid() && self.IsAlive() && self.HasBotTag("inf_uber")) { if (patient == null) { local weapon = self.GetActiveWeapon() if (weapon != null && weapon.GetClassname() == "tf_weapon_medigun") { local healing = NetProps.GetPropBool(weapon, "m_bHealing") if (healing) { patient <- NetProps.GetPropEntity(weapon, "m_hHealingTarget") } } } else { if (!patient.IsAlive()) { self.RemoveCond(5) self.TakeDamage(1000, 1, self) } } } return 0.1 } function terminate() { try { delete::UberFailsafe } catch (error) {} } function OnGameEvent_player_spawn(params) { local player = GetPlayerFromUserID(params.userid) if (!player) return if (!player.IsBotOfType(1337)) return EntFireByHandle(player, "RunScriptCode", "UberFailsafe.thinker(self)", 0.25, null, null) } function OnGameEvent_player_death(params) { local player = GetPlayerFromUserID(params.userid) if (!player) return if (!player.IsBotOfType(1337)) return AddThinkToEnt(player, null) } function OnGameEvent_recalculate_holidays(_) { if (GetRoundState() != 3) return terminate() } function OnGameEvent_mvm_wave_complete(_) { terminate() } } for (local player; player = Entities.FindByClassname(player, "player");) { if (player && player.GetTeam() == 3) { AddThinkToEnt(player, null) player.TerminateScriptScope() } } __CollectGameEventCallbacks(UberFailsafe)