From 1386f0c54d73d6122e55de0f428918055b1b1487 Mon Sep 17 00:00:00 2001 From: Alejo Date: Sun, 24 Oct 2021 20:16:58 -0300 Subject: [PATCH 1/7] Added new CVar `mp_plant_anywhere` --- README.md | 1 + dist/game.cfg | 7 +++++++ regamedll/dlls/game.cpp | 2 ++ regamedll/dlls/game.h | 1 + regamedll/dlls/player.cpp | 12 ++++++++++++ 5 files changed, 23 insertions(+) diff --git a/README.md b/README.md index 410672d32..a2847f1d1 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab | mp_radio_timeout | 1.5 | 0.0 | - | Delay between player Radio messages. (in seconds).
`0` disable delay | | mp_radio_maxinround | 60 | - | - | Maximum Radio messages count for player per round.
`0` disable radio messages | | mp_buy_anywhere | 0 | 0 | 3 | When set, players can buy anywhere, not only in buyzones.
`0` disabled.
`1` both teams
`2` only Terrorists team
`3` only CT team | +| mp_plant_anywhere | 0 | 0 | 1 | When set, players can plant anywhere, not only in bombsites.
`0` disabled
`1` enabled | | mp_t_default_grenades | "" | "" | - | The default grenades that the Ts will spawn with. | | mp_t_give_player_knife | 1 | 0 | 1 | Whether Terrorist player spawn with knife. | | mp_t_default_weapons_primary | "" | "" | - | The default primary (rifle) weapon that the Ts will spawn with. | diff --git a/dist/game.cfg b/dist/game.cfg index 326201471..d133a0d11 100644 --- a/dist/game.cfg +++ b/dist/game.cfg @@ -362,6 +362,13 @@ mp_radio_maxinround 60 // Default value: "0" mp_buy_anywhere 0 +// When set, players can plant anywhere, not only in bombsites. +// 0 - disabled (default behaviour) +// 1 - enabled +// +// Default value: "0" +mp_plant_anywhere 0 + // Don't unduck if ducking isn't finished yet. // NOTE: This also prevents double duck. // 0 - disabled (default behaviour) diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index de055fd75..ea2180c8c 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -133,6 +133,7 @@ cvar_t respawn_immunity_force_unset = { "mp_respawn_immunity_force_unset", "1", cvar_t kill_filled_spawn = { "mp_kill_filled_spawn", "1", 0, 0.0f, nullptr }; cvar_t afk_bomb_drop_time = { "mp_afk_bomb_drop_time", "0", FCVAR_SERVER, 0.0f, nullptr }; cvar_t buy_anywhere = { "mp_buy_anywhere", "0", FCVAR_SERVER, 0.0f, nullptr }; +cvar_t plant_anywhere = { "mp_plant_anywhere", "0", FCVAR_SERVER, 0.0f, nullptr }; cvar_t give_player_c4 = { "mp_give_player_c4", "1", FCVAR_SERVER, 0.0f, nullptr }; cvar_t weapons_allow_map_placed = { "mp_weapons_allow_map_placed", "1", FCVAR_SERVER, 0.0f, nullptr }; @@ -364,6 +365,7 @@ void EXT_FUNC GameDLLInit() CVAR_REGISTER(&kill_filled_spawn); CVAR_REGISTER(&afk_bomb_drop_time); CVAR_REGISTER(&buy_anywhere); + CVAR_REGISTER(&plant_anywhere); CVAR_REGISTER(&give_player_c4); CVAR_REGISTER(&allow_point_servercommand); CVAR_REGISTER(&hullbounds_sets); diff --git a/regamedll/dlls/game.h b/regamedll/dlls/game.h index 2f362c050..b33dd910e 100644 --- a/regamedll/dlls/game.h +++ b/regamedll/dlls/game.h @@ -162,6 +162,7 @@ extern cvar_t respawn_immunity_force_unset; extern cvar_t kill_filled_spawn; extern cvar_t afk_bomb_drop_time; extern cvar_t buy_anywhere; +extern cvar_t plant_anywhere; extern cvar_t give_player_c4; extern cvar_t weapons_allow_map_placed; extern cvar_t allow_point_servercommand; diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 6b1adfa6a..1f3be6a60 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6653,6 +6653,18 @@ void CBasePlayer::HandleSignals() } } +#ifdef REGAMEDLL_ADD + if (plant_anywhere.value) + { + if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) && + !(m_signals.GetSignal() & SIGNAL_BOMB) && m_bHasC4 + ) + { + m_signals.Signal(SIGNAL_BOMB); + } + } +#endif + if (!CSGameRules()->m_bMapHasBombZone) OLD_CheckBombTarget(this); From d3d4c357ac105e9a587c94642b18b30604ac54c4 Mon Sep 17 00:00:00 2001 From: Alejo Date: Wed, 27 Oct 2021 21:50:26 -0300 Subject: [PATCH 2/7] Resolves --- regamedll/dlls/game.cpp | 2 +- regamedll/dlls/player.cpp | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index ea2180c8c..d9f75bd65 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -133,7 +133,7 @@ cvar_t respawn_immunity_force_unset = { "mp_respawn_immunity_force_unset", "1", cvar_t kill_filled_spawn = { "mp_kill_filled_spawn", "1", 0, 0.0f, nullptr }; cvar_t afk_bomb_drop_time = { "mp_afk_bomb_drop_time", "0", FCVAR_SERVER, 0.0f, nullptr }; cvar_t buy_anywhere = { "mp_buy_anywhere", "0", FCVAR_SERVER, 0.0f, nullptr }; -cvar_t plant_anywhere = { "mp_plant_anywhere", "0", FCVAR_SERVER, 0.0f, nullptr }; +cvar_t plant_anywhere = { "mp_plant_anywhere", "0", 0, 0.0f, nullptr }; cvar_t give_player_c4 = { "mp_give_player_c4", "1", FCVAR_SERVER, 0.0f, nullptr }; cvar_t weapons_allow_map_placed = { "mp_weapons_allow_map_placed", "1", FCVAR_SERVER, 0.0f, nullptr }; diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 1f3be6a60..0a644964d 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6654,11 +6654,10 @@ void CBasePlayer::HandleSignals() } #ifdef REGAMEDLL_ADD - if (plant_anywhere.value) + if (m_bHasC4 && plant_anywhere.value) { - if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) && - !(m_signals.GetSignal() & SIGNAL_BOMB) && m_bHasC4 - ) + if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) + && !(m_signals.GetSignal() & SIGNAL_BOMB)) { m_signals.Signal(SIGNAL_BOMB); } From a2a3501936512ddcb692e0a47d995fc3a0d3eced Mon Sep 17 00:00:00 2001 From: Alejo Date: Wed, 27 Oct 2021 22:06:06 -0300 Subject: [PATCH 3/7] API member for CVar `m_bCanPlantAnywhere` --- regamedll/dlls/player.cpp | 2 +- regamedll/public/regamedll/API/CSPlayer.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 0a644964d..d1e46b454 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6654,7 +6654,7 @@ void CBasePlayer::HandleSignals() } #ifdef REGAMEDLL_ADD - if (m_bHasC4 && plant_anywhere.value) + if (m_bHasC4 && (plant_anywhere.value || CSPlayer()->m_bCanPlantAnywhere)) { if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) && !(m_signals.GetSignal() & SIGNAL_BOMB)) diff --git a/regamedll/public/regamedll/API/CSPlayer.h b/regamedll/public/regamedll/API/CSPlayer.h index 4bee3ce02..f55fdb5ee 100644 --- a/regamedll/public/regamedll/API/CSPlayer.h +++ b/regamedll/public/regamedll/API/CSPlayer.h @@ -48,7 +48,8 @@ class CCSPlayer: public CCSMonster { m_bCanShootOverride(false), m_bGameForcingRespawn(false), m_bAutoBunnyHopping(false), - m_bMegaBunnyJumping(false) + m_bMegaBunnyJumping(false), + m_bCanPlantAnywhere(false) { m_szModel[0] = '\0'; } @@ -129,6 +130,7 @@ class CCSPlayer: public CCSMonster { bool m_bGameForcingRespawn; bool m_bAutoBunnyHopping; bool m_bMegaBunnyJumping; + bool m_bCanPlantAnywhere; }; // Inlines From ffa61fa24b64f43be303001817f87d317fdcf9c9 Mon Sep 17 00:00:00 2001 From: Alejo Date: Wed, 27 Oct 2021 22:33:20 -0300 Subject: [PATCH 4/7] Changed naming on cvar --- README.md | 2 +- dist/game.cfg | 14 +++++++------- regamedll/dlls/game.cpp | 2 +- regamedll/dlls/game.h | 2 +- regamedll/dlls/player.cpp | 2 +- regamedll/public/regamedll/API/CSPlayer.h | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a2847f1d1..b25aab8a9 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,6 @@ This means that plugins that do binary code analysis (Orpheu for example) probab | mp_radio_timeout | 1.5 | 0.0 | - | Delay between player Radio messages. (in seconds).
`0` disable delay | | mp_radio_maxinround | 60 | - | - | Maximum Radio messages count for player per round.
`0` disable radio messages | | mp_buy_anywhere | 0 | 0 | 3 | When set, players can buy anywhere, not only in buyzones.
`0` disabled.
`1` both teams
`2` only Terrorists team
`3` only CT team | -| mp_plant_anywhere | 0 | 0 | 1 | When set, players can plant anywhere, not only in bombsites.
`0` disabled
`1` enabled | | mp_t_default_grenades | "" | "" | - | The default grenades that the Ts will spawn with. | | mp_t_give_player_knife | 1 | 0 | 1 | Whether Terrorist player spawn with knife. | | mp_t_default_weapons_primary | "" | "" | - | The default primary (rifle) weapon that the Ts will spawn with. | @@ -103,6 +102,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab | sv_allchat | 1 | 0 | 1 | Players can receive all other players text chat, team restrictions apply
`0` disabled
`1` enabled | | sv_autobunnyhopping | 0 | 0 | 1 | Players automatically re-jump while holding jump button.
`0` disabled
`1` enabled | | sv_enablebunnyhopping | 0 | 0 | 1 | Allow player speed to exceed maximum running speed.
`0` disabled
`1` enabled | +| mp_plant_c4_anywhere | 0 | 0 | 1 | When set, players can plant anywhere, not only in bombsites.
`0` disabled
`1` enabled | ## How to install zBot for CS 1.6? diff --git a/dist/game.cfg b/dist/game.cfg index d133a0d11..ef81166ea 100644 --- a/dist/game.cfg +++ b/dist/game.cfg @@ -362,13 +362,6 @@ mp_radio_maxinround 60 // Default value: "0" mp_buy_anywhere 0 -// When set, players can plant anywhere, not only in bombsites. -// 0 - disabled (default behaviour) -// 1 - enabled -// -// Default value: "0" -mp_plant_anywhere 0 - // Don't unduck if ducking isn't finished yet. // NOTE: This also prevents double duck. // 0 - disabled (default behaviour) @@ -483,3 +476,10 @@ sv_autobunnyhopping 0 // // Default value: "0" sv_enablebunnyhopping 0 + +// When set, players can plant anywhere, not only in bombsites. +// 0 - disabled (default behaviour) +// 1 - enabled +// +// Default value: "0" +mp_plant_c4_anywhere 0 \ No newline at end of file diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index d9f75bd65..a22c2d287 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -133,7 +133,6 @@ cvar_t respawn_immunity_force_unset = { "mp_respawn_immunity_force_unset", "1", cvar_t kill_filled_spawn = { "mp_kill_filled_spawn", "1", 0, 0.0f, nullptr }; cvar_t afk_bomb_drop_time = { "mp_afk_bomb_drop_time", "0", FCVAR_SERVER, 0.0f, nullptr }; cvar_t buy_anywhere = { "mp_buy_anywhere", "0", FCVAR_SERVER, 0.0f, nullptr }; -cvar_t plant_anywhere = { "mp_plant_anywhere", "0", 0, 0.0f, nullptr }; cvar_t give_player_c4 = { "mp_give_player_c4", "1", FCVAR_SERVER, 0.0f, nullptr }; cvar_t weapons_allow_map_placed = { "mp_weapons_allow_map_placed", "1", FCVAR_SERVER, 0.0f, nullptr }; @@ -162,6 +161,7 @@ cvar_t free_armor = { "mp_free_armor", "0", 0, 0.0f, null cvar_t allchat = { "sv_allchat", "0", 0, 0.0f, nullptr }; cvar_t sv_autobunnyhopping = { "sv_autobunnyhopping", "0", 0, 0.0f, nullptr }; cvar_t sv_enablebunnyhopping = { "sv_enablebunnyhopping", "0", 0, 0.0f, nullptr }; +cvar_t plant_anywhere = { "mp_plant_c4_anywhere", "0", 0, 0.0f, nullptr }; void GameDLL_Version_f() { diff --git a/regamedll/dlls/game.h b/regamedll/dlls/game.h index b33dd910e..b5c0a91a5 100644 --- a/regamedll/dlls/game.h +++ b/regamedll/dlls/game.h @@ -162,7 +162,6 @@ extern cvar_t respawn_immunity_force_unset; extern cvar_t kill_filled_spawn; extern cvar_t afk_bomb_drop_time; extern cvar_t buy_anywhere; -extern cvar_t plant_anywhere; extern cvar_t give_player_c4; extern cvar_t weapons_allow_map_placed; extern cvar_t allow_point_servercommand; @@ -188,6 +187,7 @@ extern cvar_t free_armor; extern cvar_t allchat; extern cvar_t sv_autobunnyhopping; extern cvar_t sv_enablebunnyhopping; +extern cvar_t plant_anywhere; #endif diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index d1e46b454..ff396f475 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6654,7 +6654,7 @@ void CBasePlayer::HandleSignals() } #ifdef REGAMEDLL_ADD - if (m_bHasC4 && (plant_anywhere.value || CSPlayer()->m_bCanPlantAnywhere)) + if (m_bHasC4 && (plant_anywhere.value || CSPlayer()->m_bPlantC4Anywhere)) { if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) && !(m_signals.GetSignal() & SIGNAL_BOMB)) diff --git a/regamedll/public/regamedll/API/CSPlayer.h b/regamedll/public/regamedll/API/CSPlayer.h index f55fdb5ee..8410d95f7 100644 --- a/regamedll/public/regamedll/API/CSPlayer.h +++ b/regamedll/public/regamedll/API/CSPlayer.h @@ -49,7 +49,7 @@ class CCSPlayer: public CCSMonster { m_bGameForcingRespawn(false), m_bAutoBunnyHopping(false), m_bMegaBunnyJumping(false), - m_bCanPlantAnywhere(false) + m_bPlantC4Anywhere(false) { m_szModel[0] = '\0'; } @@ -130,7 +130,7 @@ class CCSPlayer: public CCSMonster { bool m_bGameForcingRespawn; bool m_bAutoBunnyHopping; bool m_bMegaBunnyJumping; - bool m_bCanPlantAnywhere; + bool m_bPlantC4Anywhere; }; // Inlines From 8231ca83c5c2392852852611dedefb86c06a7bef Mon Sep 17 00:00:00 2001 From: Alejo Date: Wed, 27 Oct 2021 22:35:09 -0300 Subject: [PATCH 5/7] Missed EOF line --- dist/game.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/game.cfg b/dist/game.cfg index ef81166ea..09766cd04 100644 --- a/dist/game.cfg +++ b/dist/game.cfg @@ -482,4 +482,4 @@ sv_enablebunnyhopping 0 // 1 - enabled // // Default value: "0" -mp_plant_c4_anywhere 0 \ No newline at end of file +mp_plant_c4_anywhere 0 From cfc3f8b4ae5cc9bc0f23b705b3085b4722030e68 Mon Sep 17 00:00:00 2001 From: Alejo Date: Wed, 27 Oct 2021 22:36:17 -0300 Subject: [PATCH 6/7] Changed CVAR_REGISTER position --- regamedll/dlls/game.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index a22c2d287..7ce81f001 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -365,7 +365,6 @@ void EXT_FUNC GameDLLInit() CVAR_REGISTER(&kill_filled_spawn); CVAR_REGISTER(&afk_bomb_drop_time); CVAR_REGISTER(&buy_anywhere); - CVAR_REGISTER(&plant_anywhere); CVAR_REGISTER(&give_player_c4); CVAR_REGISTER(&allow_point_servercommand); CVAR_REGISTER(&hullbounds_sets); @@ -393,6 +392,7 @@ void EXT_FUNC GameDLLInit() CVAR_REGISTER(&allchat); CVAR_REGISTER(&sv_autobunnyhopping); CVAR_REGISTER(&sv_enablebunnyhopping); + CVAR_REGISTER(&plant_anywhere); // print version CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n"); From c454aef0bcda42bea31fd2713827d020a8916702 Mon Sep 17 00:00:00 2001 From: Sergey Shorokhov Date: Thu, 28 Oct 2021 13:54:02 +0300 Subject: [PATCH 7/7] Apply suggestions from code review --- regamedll/dlls/game.cpp | 4 ++-- regamedll/dlls/game.h | 2 +- regamedll/dlls/player.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index 7ce81f001..14dc2d11e 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -161,7 +161,7 @@ cvar_t free_armor = { "mp_free_armor", "0", 0, 0.0f, null cvar_t allchat = { "sv_allchat", "0", 0, 0.0f, nullptr }; cvar_t sv_autobunnyhopping = { "sv_autobunnyhopping", "0", 0, 0.0f, nullptr }; cvar_t sv_enablebunnyhopping = { "sv_enablebunnyhopping", "0", 0, 0.0f, nullptr }; -cvar_t plant_anywhere = { "mp_plant_c4_anywhere", "0", 0, 0.0f, nullptr }; +cvar_t plant_c4_anywhere = { "mp_plant_c4_anywhere", "0", 0, 0.0f, nullptr }; void GameDLL_Version_f() { @@ -392,7 +392,7 @@ void EXT_FUNC GameDLLInit() CVAR_REGISTER(&allchat); CVAR_REGISTER(&sv_autobunnyhopping); CVAR_REGISTER(&sv_enablebunnyhopping); - CVAR_REGISTER(&plant_anywhere); + CVAR_REGISTER(&plant_c4_anywhere); // print version CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n"); diff --git a/regamedll/dlls/game.h b/regamedll/dlls/game.h index b5c0a91a5..5c75387b7 100644 --- a/regamedll/dlls/game.h +++ b/regamedll/dlls/game.h @@ -187,7 +187,7 @@ extern cvar_t free_armor; extern cvar_t allchat; extern cvar_t sv_autobunnyhopping; extern cvar_t sv_enablebunnyhopping; -extern cvar_t plant_anywhere; +extern cvar_t plant_c4_anywhere; #endif diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index ff396f475..f73d3ec74 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6654,7 +6654,7 @@ void CBasePlayer::HandleSignals() } #ifdef REGAMEDLL_ADD - if (m_bHasC4 && (plant_anywhere.value || CSPlayer()->m_bPlantC4Anywhere)) + if (m_bHasC4 && (plant_c4_anywhere.value || CSPlayer()->m_bPlantC4Anywhere)) { if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) && !(m_signals.GetSignal() & SIGNAL_BOMB))