#include <amxmodx>
#include <fakemeta>
#define gPLUGIN "Kes sebesseg"
#define gAUTHOR "Csongikaaa"
#define gVERSION "2.0"
#define STANDARDTIMESTEPSOUND 400
new bool:speed = false
new bool:g_silent[33]
new p_KnifeSpeed, g_FreezeTime, p_LastSpeed[33]
public plugin_init()
{
register_plugin(gPLUGIN, gVERSION, gAUTHOR)
register_event("CurWeapon","check_speed","be","1=1")
p_KnifeSpeed = register_cvar("knife_speed", "600")
register_event("HLTV", "eNewRound", "a", "1=0", "2=0")
register_forward(FM_PlayerPreThink, "fPlayerPrethink")
register_logevent("eRoundStart", 2, "1=Round_Start")
register_event("DeathMsg", "event_death", "a", "1!0", "2!0")
register_forward( FM_CmdStart, "FMCmdStart" )
get_cvar_num("mp_freezetime")
}
public eNewRound()
{
g_FreezeTime = get_systime()
speed = true
new ft = get_cvar_num("mp_freezetime")
set_task(float(ft),"allow_speed",0)
}
public eRoundStart()
{
speed = true
}
public end_round()
{
speed = false
}
public allow_speed()
{
speed = true
}
public check_speed(id)
{
// If the speed var is false..
if(!speed || !is_user_alive(id)) {
// Stop the function
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public event_death()
{
new id = read_data(1);
if(is_user_alive(id))
check_speed(id);
}
public fPlayerPrethink(id)
{
if(get_systime() - g_FreezeTime > get_cvar_num("mp_freezetime"))
{
new temp, weapon = get_user_weapon(id, temp, temp)
if(weapon == CSW_KNIFE)
{
pev(id, pev_maxspeed, p_LastSpeed[id])
set_pev(id, pev_maxspeed, get_pcvar_float(p_KnifeSpeed))
}
else
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public FMCmdStart( id, uc_handle, randseed )
{
new Float:fmove, Float:smove;
get_uc(uc_handle, UC_ForwardMove, fmove);
get_uc(uc_handle, UC_SideMove, smove );
new Float:maxspeed;
pev(id, pev_maxspeed, maxspeed);
new Float:walkspeed = (maxspeed * 0.52);
fmove = floatabs( fmove );
smove = floatabs( smove );
if(fmove <= walkspeed && smove <= walkspeed && !(fmove == 0.0 && smove == 0.0))
fm_set_user_footsteps(id,0)
}
fm_set_user_footsteps(index, set = 1)
{
if (set) {
set_pev(index, pev_flTimeStepSound, 999)
g_silent[index] = true
}
else {
set_pev(index, pev_flTimeStepSound, STANDARDTIMESTEPSOUND)
g_silent[index] = false
}
return 1
}