Add new Cvar to control whether scoreboard_bug is enabled

This commit is contained in:
h0mev 2024-07-28 13:48:22 +08:00
parent 576e967cbd
commit d275f94b0d
5 changed files with 30 additions and 4 deletions

View File

@ -117,6 +117,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab
| mp_freezetime_jump | 1 | 0 | 1 | Allow players to jump during freezetime.<br/> `0` disabled<br/>`1` enabled | | mp_freezetime_jump | 1 | 0 | 1 | Allow players to jump during freezetime.<br/> `0` disabled<br/>`1` enabled |
| mp_defuser_allocation | 0 | 0 | 2 | Give defuser on player spawn.<br/> `0` disabled<br/>`1` Random players. <br/>`2` All players. | | mp_defuser_allocation | 0 | 0 | 2 | Give defuser on player spawn.<br/> `0` disabled<br/>`1` Random players. <br/>`2` All players. |
| mp_location_area_info | 0 | 0 | 3 | Enable location area info.<br/> `0` disabled<br/>`1` show location below HUD radar.<br/>`2` show location in HUD chat. `NOT RECOMMENDED!` [:speech_balloon:](## "Not all client builds are compatible")<br/>`3` both displayed. `NOT RECOMMENDED!` [:speech_balloon:](## "Not all client builds are compatible")<br/><br/>`NOTE`: Navigation `maps/.nav` file required and should contain place names<br/>`NOTE`: If option `2` or `3` is enabled, be sure to enable `mp_chat_loc_fallback 1` | | mp_location_area_info | 0 | 0 | 3 | Enable location area info.<br/> `0` disabled<br/>`1` show location below HUD radar.<br/>`2` show location in HUD chat. `NOT RECOMMENDED!` [:speech_balloon:](## "Not all client builds are compatible")<br/>`3` both displayed. `NOT RECOMMENDED!` [:speech_balloon:](## "Not all client builds are compatible")<br/><br/>`NOTE`: Navigation `maps/.nav` file required and should contain place names<br/>`NOTE`: If option `2` or `3` is enabled, be sure to enable `mp_chat_loc_fallback 1` |
| mp_scoreboard_fix | 0 | 0 | 1 | Enable ReGameDLL scoreboard bug fix(Dead players could see the bomb or defuse kit).<br/> `0` disabled<br/>`1` enabled<br/>`NOTE`: Absolutely cannot fix it in "CNCS😂" |
</details> </details>
## How to install zBot for CS 1.6? ## How to install zBot for CS 1.6?

9
dist/game.cfg vendored
View File

@ -587,3 +587,12 @@ mp_defuser_allocation "0"
// //
// Default value: "0" // Default value: "0"
mp_location_area_info "0" mp_location_area_info "0"
// Enable ReGameDLL scoreboard bug fix(Dead players could see the bomb or defuse kit)
// 0 - disable
// 1 - enabled
//
// NOTE: Absolutely cannot fix it in "CNCS😂"
//
// Default value "0"
mp_scoreboard_fix "0"

View File

@ -181,6 +181,8 @@ cvar_t defuser_allocation = { "mp_defuser_allocation", "0", 0, 0.0f, nullpt
cvar_t location_area_info = { "mp_location_area_info", "0", 0, 0.0f, nullptr }; cvar_t location_area_info = { "mp_location_area_info", "0", 0, 0.0f, nullptr };
cvar_t chat_loc_fallback = { "mp_chat_loc_fallback", "1", 1, 0.0f, nullptr }; cvar_t chat_loc_fallback = { "mp_chat_loc_fallback", "1", 1, 0.0f, nullptr };
cvar_t scoreboard_fix = { "mp_scoreboard_fix", "0", FCVAR_SERVER, 0.0f, nullptr };
void GameDLL_Version_f() void GameDLL_Version_f()
{ {
if (Q_stricmp(CMD_ARGV(1), "version") != 0) if (Q_stricmp(CMD_ARGV(1), "version") != 0)
@ -446,6 +448,8 @@ void EXT_FUNC GameDLLInit()
CVAR_REGISTER(&location_area_info); CVAR_REGISTER(&location_area_info);
CVAR_REGISTER(&chat_loc_fallback); CVAR_REGISTER(&chat_loc_fallback);
CVAR_REGISTER(&scoreboard_fix);
// print version // print version
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n"); CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");

View File

@ -204,6 +204,8 @@ extern cvar_t defuser_allocation;
extern cvar_t location_area_info; extern cvar_t location_area_info;
extern cvar_t chat_loc_fallback; extern cvar_t chat_loc_fallback;
extern cvar_t scoreboard_fix;
#endif #endif
extern cvar_t scoreboard_showmoney; extern cvar_t scoreboard_showmoney;

View File

@ -5548,11 +5548,21 @@ void CBasePlayer::SetScoreAttrib(CBasePlayer *dest)
#endif #endif
#ifdef REGAMEDLL_FIXES #ifdef REGAMEDLL_FIXES
// TODO: Remove these fixes when they are implemented on the client side
if (state & (SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT) && GetForceCamera(dest) != CAMERA_MODE_SPEC_ANYONE) if (
#ifdef REGAMEDLL_ADD
scoreboard_fix.value
#else
false
#endif
)
{ {
if (CSGameRules()->PlayerRelationship(this, dest) != GR_TEAMMATE) // TODO: Remove these fixes when they are implemented on the client side
state &= ~(SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT); if (state & (SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT) && GetForceCamera(dest) != CAMERA_MODE_SPEC_ANYONE)
{
if (CSGameRules()->PlayerRelationship(this, dest) != GR_TEAMMATE)
state &= ~(SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT);
}
} }
#endif #endif