Osobiście wpadłem na pomysł tego typu:
ExecuteHam(Ham_TraceAttack, this, idattacker, Float:damage, Float:direction[3], tracehandle, damagebits); ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
Jednak do końca nie wiem czym te funkcję się różnią i czy przy zabiciu Ham'em dodaje kasy i działa na statystyki:)
public UTIL_Kill(attacker,id,weapon[]) { if( is_user_alive(id)){ if(get_user_team(attacker)!=get_user_team(id)) set_user_frags(attacker,get_user_frags(attacker) +1); if(get_user_team(attacker)==get_user_team(id)) set_user_frags(attacker,get_user_frags(attacker) -1); if (cs_get_user_money(attacker) + 150 <= 16000) cs_set_user_money(attacker,cs_get_user_money(attacker)+150) else cs_set_user_money(attacker,16000) cs_set_user_deaths(id, cs_get_user_deaths(id)+1) user_kill(id,1) if(is_user_connected(attacker) && attacker!=id) { award_kill(attacker,id) if(is_user_alive(attacker)) award_item(attacker,0) } message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0) write_byte(attacker) write_byte(id) write_byte(0) write_string(weapon) message_end() message_begin(MSG_ALL,gmsgScoreInfo) write_byte(attacker) write_short(get_user_frags(attacker)) write_short(get_user_deaths(attacker)) write_short(0) write_short(get_user_team(attacker)) message_end() message_begin(MSG_ALL,gmsgScoreInfo) write_byte(id) write_short(get_user_frags(id)) write_short(get_user_deaths(id)) write_short(0) write_short(get_user_team(id)) message_end() 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, weapon); } }[/quote][/code]