preventing players from reseting velocity midair

This commit is contained in:
Christian 2020-10-25 14:13:19 +01:00
parent d6c563a717
commit 92d540b1c8

View File

@ -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));