Code:
baz_damage(id, attacker, damage, weaponDescription[])
{
if ( pev(id, pev_takedamage) == DAMAGE_NO ) return;
if ( damage <= 0 ) return;
new userHealth = get_user_health(id);
if (userHealth - damage <= 0 )
{
dmgcount[attacker] += userHealth - damage;
set_msg_block(gmsg_death, BLOCK_SET);
ExecuteHamB(Ham_Killed, id, attacker, 2);
set_msg_block(gmsg_death, BLOCK_NOT);
message_begin(MSG_BROADCAST, gmsg_death);
write_byte(attacker);
write_byte(id);
write_byte(0);
write_string(weaponDescription);
message_end();
set_pev(attacker, pev_frags, float(get_user_frags(attacker) + 1));
new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
get_user_name(attacker, kname, 31);
get_user_team(attacker, kteam, 9);
get_user_authid(attacker, kauthid, 31);
get_user_name(id, vname, 31);
get_user_team(id, vteam, 9);
get_user_authid(id, vauthid, 31);
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid(attacker), kauthid, kteam,
vname, get_user_userid(id), vauthid, vteam, weaponDescription);
}
else
{
dmgcount[attacker] += damage;
new origin[3];
get_user_origin(id, origin);
message_begin(MSG_ONE,gmsg_damage,{0,0,0},id);
write_byte(21);
write_byte(20);
write_long(DMG_BLAST);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
message_end();
set_pev(id, pev_health, pev(id, pev_health) - float(damage));
}
if ( !get_pcvar_num(pcvar_award) ) return;
new breaker = get_pcvar_num(pcvar_dmgforpacks);
if ( dmgcount[attacker] > breaker )
{
new temp = dmgcount[attacker] / breaker
if ( temp * breaker > dmgcount[attacker] ) return; //should never be possible
dmgcount[attacker] -= temp * breaker;
zp_set_user_ammo_packs( attacker, zp_get_user_ammo_packs(attacker) + temp );
}
}