diff --git a/README.md b/README.md
index 0ad6361ae..6a41158c8 100644
--- a/README.md
+++ b/README.md
@@ -103,7 +103,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab
| mp_team_flash | 1 | -1 | 1 | Sets the behaviour for Flashbangs on teammates.
`-1` Don't affect teammates neither flash owner
`0` Don't affect teammates
`1` Affects teammates |
| mp_fadetoblack | 0 | 0 | 2 | Observer's screen will fade to black on kill event or permanent.
`0` No fade.
`1` Fade to black and won't be able to watch anybody.
`2` fade to black only on kill moment. |
| mp_falldamage | 1 | 0 | 1 | Damage from falling.
`0` disabled
`1` enabled |
-| sv_allchat | 1 | 0 | 1 | Players can receive all other players text chat, team restrictions apply
`0` disabled
`1` enabled |
+| sv_allchat | 1 | 0 | 1 | Players can receive all other players text chat, team restrictions apply
`0` disabled
`1` enabled
`2` enabled, but only dead player can see spectator's message |
| 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 |
@@ -120,6 +120,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab
| mp_item_respawn_time | 30 | 0.0 | - | The respawn time for items (such as health packs, armor, etc.). |
| mp_weapon_respawn_time | 20 | 0.0 | - | The respawn time for weapons. |
| mp_ammo_respawn_time | 20 | 0.0 | - | The respawn time for ammunition. |
+| mp_scoreboard_fix | 0 | 0 | 1 | Enable ReGameDLL scoreboard bug fix(Dead players could see the bomb or defuse kit).
`0` disabled
`1` enabled
`NOTE`: Absolutely cannot fix it in "CNCS😂" |
## How to install zBot for CS 1.6?
diff --git a/dist/game.cfg b/dist/game.cfg
index 96e313aa4..e5db27cf1 100644
--- a/dist/game.cfg
+++ b/dist/game.cfg
@@ -485,6 +485,7 @@ mp_team_flash "1"
// Players can receive all other players text chat, team restrictions apply.
// 0 - disabled (default behaviour)
// 1 - enabled
+// 2 - enabled, but only dead player can see spectator'smessage
//
// Default value: "0"
sv_allchat "0"
@@ -605,3 +606,12 @@ mp_weapon_respawn_time "20"
//
// Default value: "20"
mp_ammo_respawn_time "20"
+
+// 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"
diff --git a/regamedll/dlls/client.cpp b/regamedll/dlls/client.cpp
index 7d3fb659e..961175644 100644
--- a/regamedll/dlls/client.cpp
+++ b/regamedll/dlls/client.cpp
@@ -1010,6 +1010,17 @@ void Host_Say(edict_t *pEntity, BOOL teamonly)
continue;
}
+ // when allchat is 2,only dead player can see spectator's message
+ if (
+#ifdef REGAMEDLL_ADD
+ allchat.value == 2.0f &&
+#endif
+ (pPlayer->m_iTeam == UNASSIGNED || pPlayer->m_iTeam == SPECTATOR)
+ ) {
+ if (pReceiver->pev->deadflag == DEAD_NO)
+ continue;
+ }
+
if ((pReceiver->m_iIgnoreGlobalChat == IGNOREMSG_ENEMY && pReceiver->m_iTeam == pPlayer->m_iTeam)
|| pReceiver->m_iIgnoreGlobalChat == IGNOREMSG_NONE)
{
diff --git a/regamedll/dlls/game.cpp b/regamedll/dlls/game.cpp
index c4e303c51..964286ea6 100644
--- a/regamedll/dlls/game.cpp
+++ b/regamedll/dlls/game.cpp
@@ -185,6 +185,8 @@ cvar_t item_respawn_time = { "mp_item_respawn_time", "30", FCVAR_SERVER, 3
cvar_t weapon_respawn_time = { "mp_weapon_respawn_time", "20", FCVAR_SERVER, 20.0f, nullptr };
cvar_t ammo_respawn_time = { "mp_ammo_respawn_time", "20", FCVAR_SERVER, 20.0f, nullptr };
+cvar_t scoreboard_fix = { "mp_scoreboard_fix", "0", FCVAR_SERVER, 0.0f, nullptr };
+
void GameDLL_Version_f()
{
if (Q_stricmp(CMD_ARGV(1), "version") != 0)
@@ -453,6 +455,8 @@ void EXT_FUNC GameDLLInit()
CVAR_REGISTER(&item_respawn_time);
CVAR_REGISTER(&weapon_respawn_time);
CVAR_REGISTER(&ammo_respawn_time);
+
+ CVAR_REGISTER(&scoreboard_fix);
// print version
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");
diff --git a/regamedll/dlls/game.h b/regamedll/dlls/game.h
index d0924d3a3..843f12fd6 100644
--- a/regamedll/dlls/game.h
+++ b/regamedll/dlls/game.h
@@ -208,6 +208,8 @@ extern cvar_t item_respawn_time;
extern cvar_t weapon_respawn_time;
extern cvar_t ammo_respawn_time;
+extern cvar_t scoreboard_fix;
+
#endif
extern cvar_t scoreboard_showmoney;
diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp
index 38605ebaa..d56f02545 100644
--- a/regamedll/dlls/player.cpp
+++ b/regamedll/dlls/player.cpp
@@ -5548,11 +5548,21 @@ void CBasePlayer::SetScoreAttrib(CBasePlayer *dest)
#endif
#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)
- state &= ~(SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT);
+ // 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 (CSGameRules()->PlayerRelationship(this, dest) != GR_TEAMMATE)
+ state &= ~(SCORE_STATUS_BOMB | SCORE_STATUS_DEFKIT);
+ }
}
#endif