From 71db673be857ae1e368a9eb5fa9ebfbbc41a06f6 Mon Sep 17 00:00:00 2001 From: Vaqtincha Date: Wed, 5 May 2021 23:09:07 +0500 Subject: [PATCH] CVar 'mp_respawn_immunity_force_unset' new value (2) --- README.md | 2 +- dist/game.cfg | 3 ++- regamedll/dlls/player.cpp | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2031fdd2d..3af414556 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ This means that plugins that do binary code analysis (Orpheu for example) probab | mp_legacy_bombtarget_touch | 1 | 0 | 1 | Legacy func_bomb_target touch. New one is more strict.
`0` New behavior
`1` Legacy behavior| | mp_respawn_immunitytime | 0 | 0 | - | Specifies the players defense time after respawn. (in seconds).
`0` disabled
`>0.00001` time delay to remove protection | | mp_respawn_immunity_effects | 1 | 0 | 1 | Enable effects on player spawn protection.
`0` disabled
`1` enable (Use in conjunction with the cvar mp_respawn_immunitytime) | -| mp_respawn_immunity_force_unset | 1 | 0 | 1 | Force unset spawn protection if the player doing any action.
`0` disabled
`1` enabled | +| mp_respawn_immunity_force_unset | 1 | 0 | 2 | Force unset spawn protection if the player doing any action.
`0` disabled
`1` when moving and attacking
`2` only when attacking | | mp_kill_filled_spawn | 1 | 0 | 1 | Kill the player in filled spawn before spawning some one else (Prevents players stucking in each other).
Only disable this if you have semiclip or other plugins that prevents stucking.
`0` disabled
`1` enabled | | mp_allow_point_servercommand | 0 | 0 | 1 | Allow use of point_servercommand entities in map.
`0` disallow
`1` allow
`NOTE`: Potentially dangerous for untrusted maps. | | mp_hullbounds_sets | 1 | 0 | 1 | Sets mins/maxs hull bounds for the player.
`0` disabled
`1` enabled | diff --git a/dist/game.cfg b/dist/game.cfg index dd160b926..91a8aca6f 100644 --- a/dist/game.cfg +++ b/dist/game.cfg @@ -253,7 +253,8 @@ mp_respawn_immunity_effects 1 // Force unset spawn protection if the player doing any action. // 0 - disabled -// 1 - enabled +// 1 - when moving and attacking +// 2 - only when attacking // // Default value: "1" mp_respawn_immunity_force_unset 1 diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 29cc90c1d..c2a7916e2 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -4667,8 +4667,9 @@ void EXT_FUNC CBasePlayer::__API_HOOK(PreThink)() #ifdef REGAMEDLL_ADD auto protectStateCurrent = CSPlayer()->GetProtectionState(); - if (protectStateCurrent == CCSPlayer::ProtectionSt_Expired || (respawn_immunity_force_unset.value && - (protectStateCurrent == CCSPlayer::ProtectionSt_Active && (m_afButtonPressed & IN_ACTIVE)))) + if (protectStateCurrent == CCSPlayer::ProtectionSt_Expired || + (protectStateCurrent == CCSPlayer::ProtectionSt_Active && + ((respawn_immunity_force_unset.value == 1 && (m_afButtonPressed & IN_ACTIVE)) || (respawn_immunity_force_unset.value == 2 && (m_afButtonPressed & (IN_ATTACK | IN_ATTACK2)))))) { RemoveSpawnProtection(); }