diff --git a/addons/sourcemod/scripting/shavit-core.sp b/addons/sourcemod/scripting/shavit-core.sp index 42b0e5c9..1c56fa59 100644 --- a/addons/sourcemod/scripting/shavit-core.sp +++ b/addons/sourcemod/scripting/shavit-core.sp @@ -1512,7 +1512,7 @@ void DoJump(int client) } // TF2 doesn't use stamina - if (gEV_Type != Engine_TF2 && (GetStyleSettingBool(gA_Timers[client].bsStyle, "easybhop")) || Shavit_InsideZone(client, Zone_Easybhop, gA_Timers[client].iTimerTrack)) + if (gEV_Type != Engine_TF2 && (GetStyleSettingBool(gA_Timers[client].bsStyle, "easybhop")) || (gB_Zones && Shavit_InsideZone(client, Zone_Easybhop, gA_Timers[client].iTimerTrack))) { SetEntPropFloat(client, Prop_Send, "m_flStamina", 0.0); } @@ -1692,14 +1692,17 @@ public int Native_CanPause(Handle handler, int numParams) iFlags |= CPR_NoTimer; } - if (Shavit_InsideZone(client, Zone_Start, gA_Timers[client].iTimerTrack)) + if (gB_Zones) { - iFlags |= CPR_InStartZone; - } + if (Shavit_InsideZone(client, Zone_Start, gA_Timers[client].iTimerTrack)) + { + iFlags |= CPR_InStartZone; + } - if (Shavit_InsideZone(client, Zone_End, gA_Timers[client].iTimerTrack)) - { - iFlags |= CPR_InEndZone; + if (Shavit_InsideZone(client, Zone_End, gA_Timers[client].iTimerTrack)) + { + iFlags |= CPR_InEndZone; + } } if(GetEntPropEnt(client, Prop_Send, "m_hGroundEntity") == -1 && GetEntityMoveType(client) != MOVETYPE_LADDER) @@ -3088,7 +3091,7 @@ public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3 } int iGroundEntity = GetEntPropEnt(client, Prop_Send, "m_hGroundEntity"); - bool bInStart = Shavit_InsideZone(client, Zone_Start, gA_Timers[client].iTimerTrack); + bool bInStart = gB_Zones && Shavit_InsideZone(client, Zone_Start, gA_Timers[client].iTimerTrack); if (gA_Timers[client].bTimerEnabled && !gA_Timers[client].bClientPaused) { @@ -3154,7 +3157,7 @@ public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3 } // key blocking - if(!gA_Timers[client].bCanUseAllKeys && mtMoveType != MOVETYPE_NOCLIP && mtMoveType != MOVETYPE_LADDER && !Shavit_InsideZone(client, Zone_Freestyle, -1)) + if(!gA_Timers[client].bCanUseAllKeys && mtMoveType != MOVETYPE_NOCLIP && mtMoveType != MOVETYPE_LADDER && !(gB_Zones && Shavit_InsideZone(client, Zone_Freestyle, -1))) { // block E if (GetStyleSettingBool(gA_Timers[client].bsStyle, "block_use") && (buttons & IN_USE) > 0) diff --git a/addons/sourcemod/scripting/shavit-hud.sp b/addons/sourcemod/scripting/shavit-hud.sp index 694dfd7b..c444ba1d 100644 --- a/addons/sourcemod/scripting/shavit-hud.sp +++ b/addons/sourcemod/scripting/shavit-hud.sp @@ -1386,7 +1386,7 @@ int AddHUDToBuffer_Source2013(int client, huddata_t data, char[] buffer, int max float limit = Shavit_GetStyleSettingFloat(data.iStyle, "velocity_limit"); - if (limit > 0.0 && Shavit_InsideZone(data.iTarget, Zone_CustomSpeedLimit, data.iTrack)) + if (limit > 0.0 && gB_Zones && Shavit_InsideZone(data.iTarget, Zone_CustomSpeedLimit, data.iTrack)) { if(gI_ZoneSpeedLimit[data.iTarget] == 0) { @@ -1677,13 +1677,16 @@ void UpdateMainHUD(int client) if(!bReplay) { - if (Shavit_InsideZone(target, Zone_Start, huddata.iTrack)) + if (gB_Zones) { - iZoneHUD = ZoneHUD_Start; - } - else if (Shavit_InsideZone(target, Zone_End, huddata.iTrack)) - { - iZoneHUD = ZoneHUD_End; + if (Shavit_InsideZone(target, Zone_Start, huddata.iTrack)) + { + iZoneHUD = ZoneHUD_Start; + } + else if (Shavit_InsideZone(target, Zone_End, huddata.iTrack)) + { + iZoneHUD = ZoneHUD_End; + } } } else diff --git a/addons/sourcemod/scripting/shavit-misc.sp b/addons/sourcemod/scripting/shavit-misc.sp index b329e8b4..e4b6c64d 100644 --- a/addons/sourcemod/scripting/shavit-misc.sp +++ b/addons/sourcemod/scripting/shavit-misc.sp @@ -134,6 +134,7 @@ bool gB_Eventqueuefix = false; bool gB_Rankings = false; bool gB_ReplayPlayback = false; bool gB_Chat = false; +bool gB_Zones = false; // timer settings stylestrings_t gS_StyleStrings[STYLE_LIMIT]; @@ -302,6 +303,7 @@ public void OnPluginStart() gB_Rankings = LibraryExists("shavit-rankings"); gB_ReplayPlayback = LibraryExists("shavit-replay-playback"); gB_Chat = LibraryExists("shavit-chat"); + gB_Zones = LibraryExists("shavit-zones"); } public void OnAllPluginsLoaded() @@ -646,6 +648,10 @@ public void OnLibraryAdded(const char[] name) { gB_Chat = true; } + else if (StrEqual(name, "shavit-zones")) + { + gB_Zones = true; + } else if (StrEqual(name, "shavit-checkpoints")) { gB_Checkpoints = true; @@ -670,6 +676,10 @@ public void OnLibraryRemoved(const char[] name) { gB_Chat = false; } + else if (StrEqual(name, "shavit-zones")) + { + gB_Zones = false; + } else if (StrEqual(name, "shavit-checkpoints")) { gB_Checkpoints = false; @@ -1189,7 +1199,7 @@ void DumbSetVelocity(int client, float fSpeed[3]) public Action Shavit_OnUserCmdPre(int client, int &buttons, int &impulse, float vel[3], float angles[3], TimerStatus status, int track, int style) { bool bNoclip = (GetEntityMoveType(client) == MOVETYPE_NOCLIP); - bool bInStart = Shavit_InsideZone(client, Zone_Start, track); + bool bInStart = gB_Zones && Shavit_InsideZone(client, Zone_Start, track); // i will not be adding a setting to toggle this off if(bNoclip)