diff --git a/BlockNosteamBhop/scripting/bhop_limit_nosteamers.sp b/BlockNosteamBhop/scripting/bhop_limit_nosteamers.sp index 90df5fea..d7e37cb0 100644 --- a/BlockNosteamBhop/scripting/bhop_limit_nosteamers.sp +++ b/BlockNosteamBhop/scripting/bhop_limit_nosteamers.sp @@ -21,6 +21,7 @@ public Plugin myinfo = bool bhop_restricted_nosteamer[MAXPLAYERS + 1]; int buttons_old[MAXPLAYERS + 1]; +int flags_old[MAXPLAYERS + 1]; public void OnPluginStart() { @@ -42,6 +43,7 @@ public void OnClientDisconnect(int client) { bhop_restricted_nosteamer[client] = false; buttons_old[client] = 0; + flags_old[client] = 0; } public void OnClientPostAdminCheck(int client) @@ -49,7 +51,8 @@ public void OnClientPostAdminCheck(int client) if (!IsFakeClient(client) && !IsClientSourceTV(client) && !PM_IsPlayerSteam(client)) { bhop_restricted_nosteamer[client] = true; - buttons_old[0] = 0; + buttons_old[client] = 0; + flags_old[client] = 0; } } @@ -58,7 +61,10 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float { if (!IsValidClient(client) || !IsPlayerAlive(client) || !bhop_restricted_nosteamer[client]) return; if (!(buttons_old[client] & IN_JUMP) && (!(buttons & IN_JUMP))) + { + flags_old[client] = GetEntityFlags(client); return; + } if (buttons_old[client] & IN_JUMP) { if (!(buttons & IN_JUMP)) @@ -66,6 +72,8 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float buttons_old[client] = buttons; return; } + if (!(flags_old[client] & FL_ONGROUND)) + return; float vVel[3]; GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel); float fVelocity = SquareRoot(Pow(vVel[0], 2.0) + Pow(vVel[1], 2.0));