From 112326aa63d9dfe21f6e42c00268fa7fe6f5d07a Mon Sep 17 00:00:00 2001 From: Alejo <53284952+aleeperezz16@users.noreply.github.com> Date: Thu, 28 Oct 2021 08:10:02 -0300 Subject: [PATCH] New CVar: `mp_plant_c4_anywhere` (#692) * Added new CVar `mp_plant_anywhere` * API member for CVar `m_bCanPlantAnywhere` Co-authored-by: Sergey Shorokhov --- README.md | 1 + dist/game.cfg | 7 +++++++ regamedll/dlls/game.cpp | 2 ++ regamedll/dlls/game.h | 1 + regamedll/dlls/player.cpp | 11 +++++++++++ regamedll/public/regamedll/API/CSPlayer.h | 4 +++- 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 410672d3..b25aab8a 100644 --- a/README.md +++ b/README.md @@ -102,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 32620147..09766cd0 100644 --- a/dist/game.cfg +++ b/dist/game.cfg @@ -476,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 diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp index de055fd7..14dc2d11 100644 --- a/regamedll/dlls/game.cpp +++ b/regamedll/dlls/game.cpp @@ -161,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_c4_anywhere = { "mp_plant_c4_anywhere", "0", 0, 0.0f, nullptr }; void GameDLL_Version_f() { @@ -391,6 +392,7 @@ void EXT_FUNC GameDLLInit() CVAR_REGISTER(&allchat); CVAR_REGISTER(&sv_autobunnyhopping); CVAR_REGISTER(&sv_enablebunnyhopping); + 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 2f362c05..5c75387b 100644 --- a/regamedll/dlls/game.h +++ b/regamedll/dlls/game.h @@ -187,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_c4_anywhere; #endif diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 6b1adfa6..f73d3ec7 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -6653,6 +6653,17 @@ void CBasePlayer::HandleSignals() } } +#ifdef REGAMEDLL_ADD + if (m_bHasC4 && (plant_c4_anywhere.value || CSPlayer()->m_bPlantC4Anywhere)) + { + if (IsAlive() && (m_iTeam == TERRORIST || m_iTeam == CT) + && !(m_signals.GetSignal() & SIGNAL_BOMB)) + { + m_signals.Signal(SIGNAL_BOMB); + } + } +#endif + if (!CSGameRules()->m_bMapHasBombZone) OLD_CheckBombTarget(this); diff --git a/regamedll/public/regamedll/API/CSPlayer.h b/regamedll/public/regamedll/API/CSPlayer.h index 4bee3ce0..8410d95f 100644 --- a/regamedll/public/regamedll/API/CSPlayer.h +++ b/regamedll/public/regamedll/API/CSPlayer.h @@ -48,7 +48,8 @@ public: m_bCanShootOverride(false), m_bGameForcingRespawn(false), m_bAutoBunnyHopping(false), - m_bMegaBunnyJumping(false) + m_bMegaBunnyJumping(false), + m_bPlantC4Anywhere(false) { m_szModel[0] = '\0'; } @@ -129,6 +130,7 @@ public: bool m_bGameForcingRespawn; bool m_bAutoBunnyHopping; bool m_bMegaBunnyJumping; + bool m_bPlantC4Anywhere; }; // Inlines