You can probably replace client_PreThink with Ham_Player_Jump.
Both are called once per frame but Ham_Player_Jump only if a player has the jump key held
Code:
/**
* Players have all the attributes of normal entities, in addition to these.
*/
/**
* Description: Typically called every frame when a player has jump held.
* Forward params: function(this)
* Return type: None.
* Execute params: ExecuteHam(Ham_Player_Jump, this);
*/
Ham_Player_Jump,
__________________