comparing a game to real life doesn't work, anyway try this
PHP Code:
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
static bool:IsOnGround[MAXPLAYERS + 1];
if (IsPlayerAlive(client))
{
new ClientFlags = GetEntityFlags(client);
if (ClientFlags & FL_ONGROUND)
{
if (!IsOnGround[client])
{
IsOnGround[client] = true;
new Float:CurVelVec[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", CurVelVec);
new Float:MaxSpeed = GetEntPropFloat(client, Prop_Data, "m_flMaxspeed");
if (GetVectorLength(CurVelVec) > MaxSpeed)
{
NormalizeVector(CurVelVec, CurVelVec);
ScaleVector(CurVelVec, MaxSpeed);
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, CurVelVec);
}
}
}
else
{
IsOnGround[client] = false;
}
}
return Plugin_Continue;
}
this will clamp a players speed to the maximum allowed by their active weapon when they land from a jump so they gain no extra speed.
if its still not slow enough for you you can lower the value in MaxSpeed after its set.