From c5befcd0e491f3552c334dab4c6c188f6fad25e0 Mon Sep 17 00:00:00 2001 From: Altair Sossai Date: Fri, 8 Nov 2024 14:30:38 -0300 Subject: [PATCH 1/4] Add Spitter Spec Acid Blocker to prevent acid damage on spec switch --- .../fixes/l4d2_spitter_spec_acid_blocker.smx | Bin 0 -> 5675 bytes .../l4d2_spitter_spec_acid_blocker.sp | 87 ++++++++++++++++++ cfg/generalfixes.cfg | 1 + 3 files changed, 88 insertions(+) create mode 100644 addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx create mode 100644 addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp diff --git a/addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx b/addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx new file mode 100644 index 0000000000000000000000000000000000000000..c9cb0fe390b0f85ead9e84f27e22df5582f6b82a GIT binary patch literal 5675 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 literal 0 HcmV?d00001 diff --git a/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp b/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp new file mode 100644 index 000000000..47306d400 --- /dev/null +++ b/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp @@ -0,0 +1,87 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include +#include + +#define L4D2_TEAM_INFECTED 3 + +bool g_bBlocked[MAXPLAYERS + 1]; + +public Plugin myinfo = +{ + name = "L4D2 - Spitter Spec Acid Blocker", + author = "Altair Sossai", + description = "Prevents Spitter acid from causing damage if the player switches to spectator mode before dying", + version = "1.0.0", + url = "https://github.com/SirPlease/L4D2-Competitive-Rework" +}; + +public void OnPluginStart() +{ + AddCommandListener(Spectate_Callback, "sm_spectate"); + AddCommandListener(Spectate_Callback, "sm_spec"); + AddCommandListener(Spectate_Callback, "sm_s"); + AddCommandListener(JoinTeam_Callback, "jointeam"); + + HookEvent("player_team", PlayerTeam_Event, EventHookMode_Post); +} + +public void L4D_OnEnterGhostState(int client) +{ + g_bBlocked[client] = false; +} + +Action Spectate_Callback(int client, char[] command, int args) +{ + g_bBlocked[client] = true; + + return Plugin_Continue; +} + +Action JoinTeam_Callback(int client, char[] command, int args) +{ + if (args == 0) + return Plugin_Continue; + + int team = GetClientTeam(client); + if (team != L4D2_TEAM_INFECTED) + return Plugin_Continue; + + char buffer[128]; + GetCmdArg(1, buffer, sizeof(buffer)); + + int newTeam = StringToInt(buffer); + if (newTeam == L4D2_TEAM_INFECTED) + return Plugin_Continue; + + g_bBlocked[client] = true; + + return Plugin_Continue; +} + +public void OnEntityCreated(int entity, const char[] classname) +{ + if (StrEqual(classname, "insect_swarm")) + SDKHook(entity, SDKHook_SpawnPost, SDK_OnSpawnPost); +} + +void SDK_OnSpawnPost(int entity) +{ + int owner = GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity"); + if (owner < 1 || owner > MaxClients) + return; + + if (g_bBlocked[owner]) + AcceptEntityInput(entity, "Kill"); +} + +void PlayerTeam_Event(Event event, const char[] name, bool dontBroadcast) +{ + if (GetEventInt(event, "team") != L4D2_TEAM_INFECTED) + return; + + int client = GetClientOfUserId(GetEventInt(event, "userid")); + + g_bBlocked[client] = false; +} \ No newline at end of file diff --git a/cfg/generalfixes.cfg b/cfg/generalfixes.cfg index 6cb1b9bfc..a46a25bf9 100644 --- a/cfg/generalfixes.cfg +++ b/cfg/generalfixes.cfg @@ -69,6 +69,7 @@ sm plugins load fixes/l4d_fix_rotated_physblocker.smx sm plugins load fixes/firebulletsfix.smx sm plugins load fixes/l4d_fix_stagger_dir.smx sm plugins load fixes/l4d2_fix_rocket_pull.smx +sm plugins load fixes/l4d2_spitter_spec_acid_blocker.smx // Anti-Cheat. sm plugins load anticheat/l4d2_noghostcheat.smx From c8fc7c53e43cb9bc29d8a8a7e263fcfffdafb530 Mon Sep 17 00:00:00 2001 From: Altair Sossai Date: Tue, 31 Dec 2024 09:15:12 -0300 Subject: [PATCH 2/4] New approach --- .../fixes/l4d2_spitter_acid_blocker.smx | Bin 0 -> 5329 bytes .../fixes/l4d2_spitter_spec_acid_blocker.smx | Bin 5675 -> 0 bytes .../scripting/l4d2_spitter_acid_blocker.sp | 59 ++++++++++++ .../l4d2_spitter_spec_acid_blocker.sp | 87 ------------------ cfg/generalfixes.cfg | 2 +- 5 files changed, 60 insertions(+), 88 deletions(-) create mode 100644 addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx delete mode 100644 addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx create mode 100644 addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp delete mode 100644 addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp diff --git a/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx b/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx new file mode 100644 index 0000000000000000000000000000000000000000..944a7d5f1ad2f9b4919ffeda1f069d433fe6eab0 GIT binary patch literal 5329 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 literal 0 HcmV?d00001 diff --git a/addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx b/addons/sourcemod/plugins/fixes/l4d2_spitter_spec_acid_blocker.smx deleted file mode 100644 index c9cb0fe390b0f85ead9e84f27e22df5582f6b82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5675 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 diff --git a/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp b/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp new file mode 100644 index 000000000..d09340a8f --- /dev/null +++ b/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp @@ -0,0 +1,59 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include +#include + +#define L4D2_TEAM_INFECTED 3 + +bool g_bBlocked[MAXPLAYERS + 1]; + +public Plugin myinfo = +{ + name = "L4D2 - Spitter Acid Blocker", + author = "Altair Sossai", + description = "Prevents Spitter acid damage if the player controlling the Spitter enters spectator mode or switches teams before dying", + version = "1.0.0", + url = "https://github.com/SirPlease/L4D2-Competitive-Rework" +}; + +public void OnPluginStart() +{ + HookEvent("player_death", PlayerDeath_Event, EventHookMode_Post); +} + +public void L4D_OnEnterGhostState(int client) +{ + g_bBlocked[client] = false; +} + +public void L4D_OnSpawnSpecial_Post(int client, int zombieClass, const float vecPos[3], const float vecAng[3]) +{ + g_bBlocked[client] = false; +} + +public void OnEntityCreated(int entity, const char[] classname) +{ + if (StrEqual(classname, "insect_swarm")) + SDKHook(entity, SDKHook_SpawnPost, SDK_OnSpawnPost); +} + +void SDK_OnSpawnPost(int entity) +{ + int owner = GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity"); + if (owner < 1 || owner > MaxClients || !g_bBlocked[owner]) + return; + + AcceptEntityInput(entity, "Kill"); + g_bBlocked[owner] = false; +} + +void PlayerDeath_Event(Event event, const char[] name, bool dontBroadcast) +{ + int client = GetClientOfUserId(GetEventInt(event, "userid")); + int type = GetEventInt(event, "type"); + + // I don't know why 6144, but it works + if (type == 6144) + g_bBlocked[client] = true; +} \ No newline at end of file diff --git a/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp b/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp deleted file mode 100644 index 47306d400..000000000 --- a/addons/sourcemod/scripting/l4d2_spitter_spec_acid_blocker.sp +++ /dev/null @@ -1,87 +0,0 @@ -#pragma semicolon 1 -#pragma newdecls required - -#include -#include - -#define L4D2_TEAM_INFECTED 3 - -bool g_bBlocked[MAXPLAYERS + 1]; - -public Plugin myinfo = -{ - name = "L4D2 - Spitter Spec Acid Blocker", - author = "Altair Sossai", - description = "Prevents Spitter acid from causing damage if the player switches to spectator mode before dying", - version = "1.0.0", - url = "https://github.com/SirPlease/L4D2-Competitive-Rework" -}; - -public void OnPluginStart() -{ - AddCommandListener(Spectate_Callback, "sm_spectate"); - AddCommandListener(Spectate_Callback, "sm_spec"); - AddCommandListener(Spectate_Callback, "sm_s"); - AddCommandListener(JoinTeam_Callback, "jointeam"); - - HookEvent("player_team", PlayerTeam_Event, EventHookMode_Post); -} - -public void L4D_OnEnterGhostState(int client) -{ - g_bBlocked[client] = false; -} - -Action Spectate_Callback(int client, char[] command, int args) -{ - g_bBlocked[client] = true; - - return Plugin_Continue; -} - -Action JoinTeam_Callback(int client, char[] command, int args) -{ - if (args == 0) - return Plugin_Continue; - - int team = GetClientTeam(client); - if (team != L4D2_TEAM_INFECTED) - return Plugin_Continue; - - char buffer[128]; - GetCmdArg(1, buffer, sizeof(buffer)); - - int newTeam = StringToInt(buffer); - if (newTeam == L4D2_TEAM_INFECTED) - return Plugin_Continue; - - g_bBlocked[client] = true; - - return Plugin_Continue; -} - -public void OnEntityCreated(int entity, const char[] classname) -{ - if (StrEqual(classname, "insect_swarm")) - SDKHook(entity, SDKHook_SpawnPost, SDK_OnSpawnPost); -} - -void SDK_OnSpawnPost(int entity) -{ - int owner = GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity"); - if (owner < 1 || owner > MaxClients) - return; - - if (g_bBlocked[owner]) - AcceptEntityInput(entity, "Kill"); -} - -void PlayerTeam_Event(Event event, const char[] name, bool dontBroadcast) -{ - if (GetEventInt(event, "team") != L4D2_TEAM_INFECTED) - return; - - int client = GetClientOfUserId(GetEventInt(event, "userid")); - - g_bBlocked[client] = false; -} \ No newline at end of file diff --git a/cfg/generalfixes.cfg b/cfg/generalfixes.cfg index a46a25bf9..4ea9b49e0 100644 --- a/cfg/generalfixes.cfg +++ b/cfg/generalfixes.cfg @@ -69,7 +69,7 @@ sm plugins load fixes/l4d_fix_rotated_physblocker.smx sm plugins load fixes/firebulletsfix.smx sm plugins load fixes/l4d_fix_stagger_dir.smx sm plugins load fixes/l4d2_fix_rocket_pull.smx -sm plugins load fixes/l4d2_spitter_spec_acid_blocker.smx +sm plugins load fixes/l4d2_spitter_acid_blocker.smx // Anti-Cheat. sm plugins load anticheat/l4d2_noghostcheat.smx From c5e29f401a2028086d23287d5062d3a72d302b80 Mon Sep 17 00:00:00 2001 From: Altair Sossai Date: Tue, 31 Dec 2024 09:28:02 -0300 Subject: [PATCH 3/4] Enhance Spitter Acid Blocker to also block type 0 --- .../fixes/l4d2_spitter_acid_blocker.smx | Bin 5329 -> 5336 bytes .../scripting/l4d2_spitter_acid_blocker.sp | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx b/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx index 944a7d5f1ad2f9b4919ffeda1f069d433fe6eab0..8f18c17e8799f0fec426615528e076e6bc18ebe4 100644 GIT binary patch delta 4925 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 Djkia% delta 4900 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 e Date: Mon, 3 Feb 2025 16:28:24 -0300 Subject: [PATCH 4/4] New approach --- .../fixes/l4d2_spitter_acid_blocker.smx | Bin 5336 -> 4735 bytes .../scripting/l4d2_spitter_acid_blocker.sp | 44 +++++------------- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx b/addons/sourcemod/plugins/fixes/l4d2_spitter_acid_blocker.smx index 8f18c17e8799f0fec426615528e076e6bc18ebe4..0faae5e6fda59ce52565e83c559cc077293a9bbc 100644 GIT binary patch delta 4574 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 diff --git a/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp b/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp index 2171dce76..60c84d68a 100644 --- a/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp +++ b/addons/sourcemod/scripting/l4d2_spitter_acid_blocker.sp @@ -6,8 +6,6 @@ #define L4D2_TEAM_INFECTED 3 -bool g_bBlocked[MAXPLAYERS + 1]; - public Plugin myinfo = { name = "L4D2 - Spitter Acid Blocker", @@ -19,41 +17,23 @@ public Plugin myinfo = public void OnPluginStart() { - HookEvent("player_death", PlayerDeath_Event, EventHookMode_Post); -} - -public void L4D_OnEnterGhostState(int client) -{ - g_bBlocked[client] = false; -} - -public void L4D_OnSpawnSpecial_Post(int client, int zombieClass, const float vecPos[3], const float vecAng[3]) -{ - g_bBlocked[client] = false; + HookEvent("player_team", PlayerTeam_Event, EventHookMode_Post); } -public void OnEntityCreated(int entity, const char[] classname) +void PlayerTeam_Event(Event event, const char[] name, bool dontBroadcast) { - if (StrEqual(classname, "insect_swarm")) - SDKHook(entity, SDKHook_SpawnPost, SDK_OnSpawnPost); -} - -void SDK_OnSpawnPost(int entity) -{ - int owner = GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity"); - if (owner < 1 || owner > MaxClients || !g_bBlocked[owner]) + int oldTeam = GetEventInt(event, "oldteam"); + if (oldTeam != L4D2_TEAM_INFECTED) return; - AcceptEntityInput(entity, "Kill"); - g_bBlocked[owner] = false; -} - -void PlayerDeath_Event(Event event, const char[] name, bool dontBroadcast) -{ int client = GetClientOfUserId(GetEventInt(event, "userid")); - int type = GetEventInt(event, "type"); + int entity = -1; + + while((entity = FindEntityByClassname(entity, "insect_swarm")) != INVALID_ENT_REFERENCE) + { + if(GetEntPropEnt(entity, Prop_Data, "m_hOwnerEntity") != client) + continue; - // I don't know why 6144, but it works - if (type == 0 || type == 6144) - g_bBlocked[client] = true; + AcceptEntityInput(entity, "Kill"); + } } \ No newline at end of file