Hey guys just wondering if you could tell me why the plugin below isnt 'kicking' the person that gets hit with them..like its suposed to be like a real punch.
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <cstrike>
new PLUGIN_NAME[] = "Brass Knuckles"
new PLUGIN_VERSION[] = "1.0"
new PLUGIN_AUTHOR[] = "Cheap_Suit"
new bool:g_bknuckles[33]
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
register_event("Damage", "Event_Damage", "be", "2!0")
register_event("DeathMsg", "Event_Death", "a")
register_forward(FM_EmitSound, "EmitSound")
}
public plugin_precache()
{
precache_model("models/p_bknuckles.mdl")
precache_model("models/v_bknuckles.mdl")
precache_sound("bknuckles/knife_hit1.wav")
precache_sound("bknuckles/knife_hit2.wav")
precache_sound("bknuckles/knife_hit3.wav")
precache_sound("bknuckles/knife_hit4.wav")
precache_sound("bknuckles/knife_stab.wav")
}
public client_connect(id) g_bknuckles[id] = false
public Event_Death() g_bknuckles[read_data(2)] = false
public Event_Damage(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
new AttakerWeapon, AttakerPartHit
new Attacker = get_user_attacker(id, AttakerWeapon, AttakerPartHit)
if(AttakerWeapon != CSW_KNIFE)
return PLUGIN_CONTINUE
if(!g_bknuckles[Attacker])
return PLUGIN_CONTINUE
new Float:Random_Float[3]
for(new i = 0; i < 3; i++) Random_Float[i] = random_float(100.0, 150.0)
Punch_View(id, Random_Float)
return PLUGIN_CONTINUE
}
public Event_CurWeapon(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE
new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
if(weapon == CSW_KNIFE)
{
entity_set_string(id, EV_SZ_viewmodel, "models/v_bknuckles.mdl")
entity_set_string(id, EV_SZ_weaponmodel, "models/p_bknuckles.mdl")
}
return PLUGIN_CONTINUE
}
public EmitSound(id, channel, sample[])
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
if(weapon == CSW_KNIFE)
{
if(g_bknuckles[id])
{
if(equal(sample,"weapons/knife_hit1.wav"))
{
emit_sound(id, CHAN_WEAPON, "bknuckles/knife_hit1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_hit2.wav"))
{
emit_sound(id, CHAN_WEAPON, "bknuckles/knife_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_hit3.wav"))
{
emit_sound(id, CHAN_WEAPON, "bknuckles/knife_hit3.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_hit4.wav"))
{
emit_sound(id, CHAN_WEAPON, "bknuckles/knife_hit4.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
else if(equal(sample,"weapons/knife_stab.wav"))
{
emit_sound(id, CHAN_WEAPON, "bknuckles/knife_stab.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
}
return FMRES_IGNORED
}
stock Punch_View(id, Float:ViewAngle[3])
{
entity_set_vector(id, EV_VEC_punchangle, ViewAngle)
}