/*
 *	Author:		Cheesy Peteza
 *	Date:		22-Apr-2004 (updated 2-March-2005)
 *
 *
 *	Description:	Enable bunny hopping in Counter-Strike.
 *
 *	Cvars:
 *			bh_enabled		1 to enable this plugin, 0 to disable.
 *			bh_autojump		If set to 1 players just need to hold down jump to bunny hop (no skill required)
 *			bh_showusage		If set to 1 it will inform joining players that bunny hopping has been enabled
 *						and how to use it if bh_autojump enabled.
 *
 *	Requirements:	AMXModX 0.16 or greater
 *
 *
 */
 
#include <amxmodx>
#include <engine>
#include <colorchat>
 
#define	FL_WATERJUMP	(1<<11)	// player jumping out of water
#define	FL_ONGROUND	(1<<9)	// At rest / on the ground
 
public plugin_init() {
	register_plugin("Super Bunny Hopper", "1.2", "Cheesy Peteza")
	register_cvar("sbhopper_version", "1.2", FCVAR_SERVER)
	register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
 
	register_cvar("bh_enabled", "1")
	register_cvar("bh_autojump", "1")
	register_cvar("bh_showusage", "1")
 
}
 
public client_PreThink(id) {
	if (!get_cvar_num("bh_enabled"))
		return PLUGIN_CONTINUE
 
	entity_set_float(id, EV_FL_fuser2, 0.0)		// Disable slow down after jumping
 
	if (!get_cvar_num("bh_autojump"))
		return PLUGIN_CONTINUE
 
// Code from CBasePlayer::Jump (player.cpp)		Make a player jump automatically
	if (entity_get_int(id, EV_INT_button) & 2) {	// If holding jump
		new flags = entity_get_int(id, EV_INT_flags)
 
		if (flags & FL_WATERJUMP)
			return PLUGIN_CONTINUE
		if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
			return PLUGIN_CONTINUE
		if ( !(flags & FL_ONGROUND) )
			return PLUGIN_CONTINUE
 
		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)
		velocity[2] += 250.0
		entity_set_vector(id, EV_VEC_velocity, velocity)
 
		entity_set_int(id, EV_INT_gaitsequence, 6)	// Play the Jump Animation
	}
	return PLUGIN_CONTINUE
}
 
public client_authorized(id)
	set_task(30.0, "showUsage", id)
 
public showUsage(id) {
	if ( !get_cvar_num("bh_enabled") || !get_cvar_num("bh_showusage") )
		return PLUGIN_HANDLED
 
	if ( !get_cvar_num("bh_autojump") ) {
		ColorChat(id, RED, "^4[AngRy] ^3A nyulugras be van kapcsolva a szerveren. Ugras utan nem lassulsz le.")
	} else {
		ColorChat(id, RED, "^4[AngRy] ^3Automatikus nyulugras be van kapcsolva a szerveren.Az ugras lenyomva tartasaval tudod hasznalni.")
	}
	return PLUGIN_HANDLED
}
 
public Event_CurWeapon(id)
{
	new weapon = get_user_weapon(id)
	if(weapon == CSW_KNIFE)
	{
		set_user_maxspeed(id, 350.0)
	}
}