From d5eb2265c7f3fa394bc2fd365bed97c8f61e1340 Mon Sep 17 00:00:00 2001 From: Jackz Date: Tue, 29 Dec 2020 13:26:08 -0600 Subject: [PATCH] Add sm_ff_notice to notify if a FF occurs --- README.md | 1 + plugins/L4D2Tools.smx | Bin 6863 -> 5828 bytes scripting/L4D2Tools.sp | 24 +++++++++++++++++++++--- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bfeffd6..33933a0 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ A group of misc tools for l4d2. Including: Notify on lasers use, and a finale ti * **Convars:** * `sm_laser_use_notice <1/0>` - Enable notification of a laser box being used * `sm_time_finale <0/1/2>` - Record the time it takes to complete finale. 0 -> OFF, 1 -> Gauntlets Only, 2 -> All finales + * `sm_ff_notice <0/1/2>` - Notify players if a FF occurs. 0 -> Disabled, 1 -> In chat, 2 -> In Hint text ### 200IQBots_FlyYouFools Updated version of ConnerRia's plugin. Improves bots avoidance of tanks. Change from original is updated source syntax, some optimizations/cleanup, and fixes such as bots avoiding tank that has not been activated, or not escaping in vehicle due to presence of tank. diff --git a/plugins/L4D2Tools.smx b/plugins/L4D2Tools.smx index 5739c8986934bb309454ccb2ca6b1383b55f348f..99397173c1e9ae83373c8b52e014705fdbd54653 100644 GIT binary patch literal 5828 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 LA#n)sz7zXDRH9SL literal 6863 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 diff --git a/scripting/L4D2Tools.sp b/scripting/L4D2Tools.sp index 0a79d9c..857fa18 100644 --- a/scripting/L4D2Tools.sp +++ b/scripting/L4D2Tools.sp @@ -15,7 +15,7 @@ bool bLasersUsed[2048]; -ConVar hLaserNotice, hFinaleTimer; +ConVar hLaserNotice, hFinaleTimer, hFFNotice; int iFinaleStartTime; public Plugin myinfo = { @@ -34,8 +34,10 @@ public void OnPluginStart() { } hLaserNotice = CreateConVar("sm_laser_use_notice", "1.0", "Enable notification of a laser box being used", FCVAR_NONE, true, 0.0, true, 1.0); hFinaleTimer = CreateConVar("sm_time_finale", "2.0", "Record the time it takes to complete finale. 0 -> OFF, 1 -> Gauntlets Only, 2 -> All finales", FCVAR_NONE, true, 0.0, true, 2.0); + hFFNotice = CreateConVar("sm_ff_notice", "0.0", "Notify players if a FF occurs. 0 -> Disabled, 1 -> In chat, 2 -> In Hint text", FCVAR_NONE, true, 0.0, true, 2.0); HookEvent("player_use", Event_PlayerUse); + HookEvent("player_hurt", Event_PlayerHurt); HookEvent("round_end", Event_RoundEnd); HookEvent("gauntlet_finale_start", Event_GauntletStart); HookEvent("finale_start", Event_FinaleStart); @@ -45,6 +47,24 @@ public void OnPluginStart() { } //laserNotice +public void Event_PlayerHurt(Event event, const char[] name, bool dontBroadcast) { + if(hFFNotice.IntValue > 0) { + int victim = GetClientOfUserId(event.GetInt("userid")); + int attacker = GetClientOfUserId(event.GetInt("attacker")); + int dmg = event.GetInt("dmg_health"); + if(dmg > 0) { + if(attacker > 0 && !IsFakeClient(attacker) && attacker != victim) { + if(GetClientTeam(attacker) == 2 && GetClientTeam(victim) == 2) { + if(hFFNotice.IntValue == 1) { + PrintHintTextToAll("%N has done %d HP of friendly fire damage to %N", attacker, dmg, victim); + }else{ + PrintToChatAll("%N has done %d HP of friendly fire damage to %N", attacker, dmg, victim); + } + } + } + } + } +} public void Event_PlayerUse(Event event, const char[] name, bool dontBroadcast) { if(hLaserNotice.BoolValue) { char player_name[32]; @@ -75,13 +95,11 @@ public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast) { public void Event_GauntletStart(Event event, const char[] name, bool dontBroadcast) { if(hFinaleTimer.IntValue > 0) { iFinaleStartTime = GetTime(); - PrintHintTextToAll("The finale timer has been started"); } } public void Event_FinaleStart(Event event, const char[] name, bool dontBroadcast) { if(hFinaleTimer.IntValue == 2) { iFinaleStartTime = GetTime(); - PrintHintTextToAll("The finale timer has been started"); } } public void Event_FinaleEnd(Event event, const char[] name, bool dontBroadcast) {