int iJumpCount[MAXPLAYERS + 1];
float fFreezeTime[MAXPLAYERS + 1], fLastJumpTime[MAXPLAYERS + 1];
version = PLUGIN_VERSION,
public void OnClientPutInServer(int client)
fFreezeTime[client] = -1.0;
fLastJumpTime[client] = -1.0;
public Action OnPlayerRunCmd(int client, int &buttons)
if(fFreezeTime[client] > 0 && fFreezeTime[client] <= GetGameTime())
if(IsPlayerAlive(client)) SetEntityMoveType(client, MOVETYPE_WALK);
fFreezeTime[client] = -1.0;
if(fLastJumpTime[client]+1.5 < GetGameTime())
int lastButtons = GetEntProp(client, Prop_Data, "m_nOldButtons");
if(IsPlayerAlive(client) && buttons & IN_JUMP && !(lastButtons & IN_JUMP) && GetEntityFlags(client) & FL_ONGROUND)
float vecVel[3], actualVel;
GetEntPropVector(client, Prop_Data, "m_vecVelocity", vecVel);
actualVel = GetVectorLength(vecVel);
fLastJumpTime[client] = GetGameTime();
if(iJumpCount[client] >= 3)
SetEntityMoveType(client, MOVETYPE_NONE);
fFreezeTime[client] = GetGameTime() + 0.5;