Ham_TraceAttack(post/pre)
PHP Code:
public fw_TraceAttack(victim, attacker, Float:damage, Float:direction[3], tr, damagebits)
{
if(victim == attacker || !is_user_alive(attacker) || !is_user_alive(victim) || !zp_get_user_zombie(victim))
return HAM_IGNORED
if(!(1 <= victim <= iMaxPlayers))
return HAM_IGNORED
if(get_tr2(tr, TR_iHitgroup) == HIT_HEAD)
{
IsHeadshot[attacker] = true
}
return HAM_IGNORED
}
FM_TraceLine(post/pre)
PHP Code:
public fw_TraceLine(Float:start[3], Float:end[3], noMonsters, id, trace)
{
if(!is_user_alive(id))
return FMRES_IGNORED
static victim; victim = get_tr2(trace, TR_pHit)
if(!(1 <= victim <= iMaxPlayers) || !is_user_alive(victim))
return FMRES_IGNORED
if(get_tr2(trace, TR_iHitgroup) == HIT_HEAD && (pev(id, pev_button) & IN_ATTACK))
{
IsHeadshot[id] = true
}
return FMRES_IGNORED
}
Ham_TakeDamage(pre)
PHP Code:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(victim == attacker || !is_user_alive(victim) || !is_user_alive(attacker))
return HAM_IGNORED
if(iCurrentClass[victim] == 4 && !zp_get_user_zombie(victim))
set_pdata_float(victim, OFFSET_PAINSHOCK, 1.0, OFFSET_LINUX)
if(!zp_get_user_zombie(victim))
return HAM_IGNORED
switch(iCurrentClass[attacker])
{
case 1:
{
if(SUPPORT_SPECIALIST)
SetHamParamFloat(4, damage * dmg_ss)
}
case 2:
{
if(SHARPSHOOTER)
{
if(IsHeadshot[attacker])
{
IsHeadshot[attacker] = false
SetHamParamFloat(4, damage * dmg_s * hsdmg_s)
}
else
{
SetHamParamFloat(4, damage * dmg_s)
}
}
}
case 3:
{
if(COMMANDO)
SetHamParamFloat(4, damage * dmg_c)
}
case 4:
{
if(BERSERKER)
SetHamParamFloat(4, damage * dmg_b)
}
}
return HAM_IGNORED
}
Define
PHP Code:
#define SHARPSHOOTER (iCurrentWeapon[attacker] == CSW_SCOUT || iCurrentWeapon[attacker] == CSW_AWP || iCurrentWeapon[attacker] == CSW_SG550 || iCurrentWeapon[attacker] == CSW_G3SG1 || iCurrentWeapon[attacker] == CSW_GLOCK18 || iCurrentWeapon[attacker] == CSW_USP || iCurrentWeapon[attacker] == CSW_P228 || iCurrentWeapon[attacker] == CSW_DEAGLE || iCurrentWeapon[attacker] == CSW_ELITE)
Snipers damage multiplier doesn't seems to work at all. Other pistols damage do multiply. Sry. Could only give codes related to the problem.
Focus on the case 2 which is Sharpshooter.
More description:
Scope damage doesn't multiplies but without scope it does multiply.