That looks horrible.
Code:
public ham_takedamage2(iVictim,inflictor, attacker, Float:damage, damagebits)
{
// check if fall damage
if(damagebits & DMG_FALL)
{
// check if can reduce damage
if(Upadek[iVictim] >= 1)
{
new percent = Upadek[iVictim] * 5;
SetHamParamFloat(4, damage * (1.0 - (float(percent) / 100.0)));
}
}
// not fall damage, check for valid enemy
else if(IsPlayer(attacker) && attacker != iVictim && NotSameTeam(attacker, iVictim))
{
// valid enemy, check if used knife or gun
if(!(damagebits & DMG_GRENADE))
{
// valid enemy, check if used knife
if(get_user_weapon(attacker) == CSW_KNIFE)
{
// check if can increase knife damage
if(Noz[attacker] > 0)
{
SetHamParamFloat(4, damage + (Noz[attacker] * 5));
}
}
// did not use knife, so must be weapon. check for damage reflect chance
else if(Unik[attacker] > 0 && random_num(1, 100) <= (Unik[attacker] * 5))
{
SetHamParamFloat(4, 0.0);
ColorChat(inflictor, GREEN, "[%s]^x01 Reflect ^x03 %d%% Chance.", prefix, Unik[attacker] * 5);
starthealth = get_user_health( attacker );
set_user_health(attacker, Unik[attacker] * 5 + starthealth );
set_hudmessage(255, 255, 255, 0.03, 0.81, 0, 6.0, 2.0)
show_hudmessage(attacker, "+%dHp",Unik[attacker] * 5)
}
}
// since valid enemy attack, give xp
new ExpToGive = floatround(damage) / 3;
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1);
show_hudmessage(attacker, "+%d Xp^n", ExpToGive);
iExp[attacker] += ExpToGive;
}
return HAM_IGNORED;
}