here you go...
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#define PLUGIN "HnS ~ Knife Knockback"
#define VERSION "1.0"
#define AUTHOR "Natsheh"
#define TASK___ 876783
new g__cvar_one, g__cvar_two, Float:g__fOldspeed[33];
const m_pPlayer = 41;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_TakeDamage, "player", "fw_player_takedmg_post", 1);
new szItem[32], szWeaponName[32];
for(new i = CSW_P228; i <= CSW_P90; i++)
{
get_weaponname(i, szWeaponName, charsmax(szWeaponName));
if(!equal(szWeaponName, "weapon_", 7)) continue;
RegisterHam(Ham_CS_Item_GetMaxSpeed, szWeaponName, "fw_CS_ItemGetMaxSpeed_pre");
}
g__cvar_one = register_cvar("hns_kkback_slow_length", "2");
g__cvar_two = register_cvar("hns_kkback_slowdown_maxspeed", "200");
}
public fw_CS_ItemGetMaxSpeed_pre(ent)
{
if(g__fOldspeed[get_pdata_cbase(ent,m_pPlayer,4)] <= 0.0) return HAM_IGNORED;
SetHamReturnFloat(max(get_pcvar_float(g__cvar_two), -1.0))
return HAM_SUPERCEDE;
}
public fw_player_takedmg_post(victim, inflictor, attacker, Float:fDamage, dmgbits)
{
if(!is_user_alive(victim) || inflictor != attacker || !is_user_alive(attacker) || fDamage <= 0.0 || task_exists(TASK___+victim))
{
return;
}
static Float:fTime;
g__fOldspeed[victim] = get_user_maxspeed(victim);
set_user_maxspeed(victim, max(get_pcvar_float(g__cvar_two), -1.0));
set_task((fTime=floatmax(get_pcvar_float(g__cvar_one), 0.0)), "task_reset_maxspeed", TASK___+victim);
}
public task_reset_maxspeed(taskid)
{
new id = taskid - TASK___;
if(is_user_alive(id))
{
set_user_maxspeed(id, g__fOldSpeed[id]);
}
remove_task(taskid);
g__fOldspeed[id] = 0.0;
}
__________________