-     /* Feel free to modify these HUD message values */ 
-   
-     #define HUD_colorR 255 // default: 255 
-     #define HUD_colorG 155 // default: 155 
-     #define HUD_colorB 0 // default: 0 
-     #define HUD_posX 0.6 // default: 0.6 
-     #define HUD_posY 0.2 // default: 0.2 
-     #define HUD_fx 0 // default: 0 
-     #define HUD_fxTime 0.0 // default: 0.0 
-     #define HUD_holdTime 1.0 // default: 1.0 
-     #define HUD_fadeInTime 0.3 // default: 0.3 
-     #define HUD_fadeOutTime 2.0 // default: 2.0 
-     #define HUD_channel -1 // default: -1 
-   
-     /* ------------------------------------------------------------------------- 
-     Nothing to edit below this point */ 
-   
-     #include <amxmodx> 
-     #include <hamsandwich> 
-     #include <cstrike> 
-     #include <engine> 
-     #include <fun> 
-   
-     #define PLUGIN_TITLE "Kill assist (for CS)" 
-     #define PLUGIN_VERSION "1.2b" 
-     #define PLUGIN_PUBLICVAR "killassist_version" 
-   
-     #define MAXPLAYERS 32 + 1 
-   
-     #define TEAM_NONE 0 
-     #define TEAM_TE 1 
-     #define TEAM_CT 2 
-     #define TEAM_SPEC 3 
-   
-     #define is_player(%1) (1 <= %1 <= g_iMaxPlayers) 
-   
-     new msgID_sayText 
-     new msgID_deathMsg 
-     new msgID_scoreInfo 
-     new msgID_money 
-   
-     new pCVar_amxMode 
-   
-     new pCVar_enabled 
-     new pCVar_minDamage 
-     new pCVar_giveFrags 
-     new pCVar_giveMoney 
-     new pCVar_onlyAlive 
-   
-     new ch_pCVar_enabled 
-     new ch_pCVar_minDamage 
-     new ch_pCVar_giveFrags 
-     new ch_pCVar_giveMoney 
-     new ch_pCVar_onlyAlive 
-   
-     new g_szName[MAXPLAYERS][32] 
-     new g_iTeam[MAXPLAYERS] 
-     new g_iDamage[MAXPLAYERS][MAXPLAYERS] 
-     new bool:g_bAlive[MAXPLAYERS] = {false, ...} 
-     new bool:g_bOnline[MAXPLAYERS] = {false, ...} 
-   
-     new g_iLastAmxMode 
-     new g_iMaxPlayers = 0 
-     new bool:g_bAmxModeExists = false 
-   
-     public plugin_init() 
-     { 
-     register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR) 
-     register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY) 
-   
-     pCVar_enabled = register_cvar("amx_killassist_enabled", "1") 
-     pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50") 
-     pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1") 
-     pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300") 
-     pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0") 
-   
-     if(cvar_exists("amx_mode")) 
-     { 
-     pCVar_amxMode = get_cvar_pointer("amx_mode") 
-   
-     g_bAmxModeExists = true 
-     } 
-   
-     msgID_money = get_user_msgid("Money") 
-     msgID_sayText = get_user_msgid("SayText") 
-     msgID_deathMsg = get_user_msgid("DeathMsg") 
-     msgID_scoreInfo = get_user_msgid("ScoreInfo") 
-   
-     register_message(msgID_deathMsg, "msg_deathMsg") 
-   
-     register_logevent("event_roundStart", 2, "1=Round_Start") 
-   
-     register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0") 
-     register_event("DeathMsg", "player_die", "ae") 
-     register_event("TeamInfo", "player_joinTeam", "a") 
-   
-     RegisterHam(Ham_Spawn, "player", "player_spawn", 1) 
-   
-     g_iMaxPlayers = get_maxplayers() 
-     } 
-   
-     public plugin_cfg() event_roundStart() 
-   
-     public event_roundStart() 
-     { 
-     ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2) 
-     ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999) 
-     ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1) 
-     ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000) 
-     ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1) 
-     } 
-   
-     public client_putinserver(iPlayer) 
-     { 
-     g_bOnline[iPlayer] = true 
-   
-     get_user_name(iPlayer, g_szName[iPlayer], 31) 
-     } 
-   
-     public client_disconnect(iPlayer) 
-     { 
-     g_iTeam[iPlayer] = TEAM_NONE 
-     g_bAlive[iPlayer] = false 
-     g_bOnline[iPlayer] = false 
-     } 
-   
-     public player_joinTeam() 
-     { 
-     new iPlayer, szTeam[2] 
-   
-     iPlayer = read_data(1) 
-     read_data(2, szTeam, 1) 
-   
-     switch(szTeam[0]) 
-     { 
-     case 'T': g_iTeam[iPlayer] = TEAM_TE 
-     case 'C': g_iTeam[iPlayer] = TEAM_CT 
-     default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team... 
-     } 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     public player_spawn(iPlayer) 
-     { 
-     if(!is_user_alive(iPlayer)) 
-     return HAM_IGNORED 
-   
-     g_bAlive[iPlayer] = true // he's alive ! 
-   
-     new szName[32] 
-   
-     get_user_name(iPlayer, szName, 31) 
-   
-     if(!equali(szName, g_szName[iPlayer])) // make sure he has his name ! 
-     { 
-     set_msg_block(msgID_sayText, BLOCK_ONCE) 
-     set_user_info(iPlayer, "name", g_szName[iPlayer]) 
-     } 
-   
-     // reset damage meters 
-   
-     for(new p = 1; p <= g_iMaxPlayers; p++) 
-     g_iDamage[iPlayer][p] = 0 
-   
-     return HAM_IGNORED 
-     } 
-   
-     public player_damage(iVictim) 
-     { 
-     if(!ch_pCVar_enabled || !is_player(iVictim)) 
-     return PLUGIN_CONTINUE 
-   
-     new iAttacker = get_user_attacker(iVictim) 
-   
-     if(!is_player(iAttacker)) 
-     return PLUGIN_CONTINUE 
-   
-     g_iDamage[iAttacker][iVictim] += read_data(2) 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     public player_die() 
-     { 
-     if(!ch_pCVar_enabled) 
-     return PLUGIN_CONTINUE 
-   
-     new iVictim = read_data(2) 
-     new iKiller = read_data(1) 
-     new iHS = read_data(3) 
-     new szWeapon[24] 
-     read_data(4, szWeapon, 23) 
-   
-     if(!is_player(iVictim)) 
-     { 
-     do_deathmsg(iKiller, iVictim, iHS, szWeapon) 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     g_bAlive[iVictim] = false 
-   
-     if(!is_player(iKiller)) 
-     { 
-     do_deathmsg(iKiller, iVictim, iHS, szWeapon) 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     new iKillerTeam = g_iTeam[iKiller] 
-   
-     if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam) 
-     { 
-     new iKiller2 = 0 
-     new iDamage2 = 0 
-   
-     for(new p = 1; p <= g_iMaxPlayers; p++) 
-     { 
-     if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2) 
-     { 
-     iKiller2 = p 
-     iDamage2 = g_iDamage[p][iVictim] 
-     } 
-   
-     g_iDamage[p][iVictim] = 0 
-     } 
-   
-     if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage) 
-     { 
-     if(ch_pCVar_giveFrags) 
-     { 
-     new iFrags = get_user_frags(iKiller2)+1 
-   
-     set_user_frags(iKiller2, iFrags) 
-   
-     message_begin(MSG_ALL, msgID_scoreInfo) 
-     write_byte(iKiller2) 
-     write_short(iFrags) 
-     write_short(get_user_deaths(iKiller2)) 
-     write_short(0) 
-     write_short(iKillerTeam) 
-     message_end() 
-     } 
-   
-     if(ch_pCVar_giveMoney) 
-     { 
-     new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney 
-   
-     if(iMoney > 16000) 
-     iMoney = 16000 
-   
-     cs_set_user_money(iKiller2, iMoney) 
-   
-     if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :} 
-     { 
-     message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2) 
-     write_long(iMoney) 
-     write_byte(1) 
-     message_end() 
-     } 
-     } 
-   
-     if(ch_pCVar_enabled == 2) 
-     { 
-     new szName1[32], szName2[32], szName3[32], szMsg[128] 
-   
-     get_user_name(iKiller, szName1, 31) 
-     get_user_name(iKiller2, szName2, 31) 
-     get_user_name(iVictim, szName3, 31) 
-   
-     client_print(0, print_chat, "[Just Freg lopas]: +1 freget kapott: %s", szName3) 
-   
-     set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel) 
-     show_hudmessage(0, szMsg) 
-     } 
-     else 
-     { 
-     new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32] 
-   
-     iName1Len = get_user_name(iKiller, szName1, 31) 
-     iName2Len = get_user_name(iKiller2, szName2, 31) 
-   
-     g_szName[iKiller] = szName1 
-   
-     if(iName1Len < 14) 
-     { 
-     formatex(szName1, iName1Len, "%s", szName1) 
-     formatex(szName2, 28-iName1Len, "%s", szName2) 
-     } 
-     else if(iName2Len < 14) 
-     { 
-     formatex(szName1, 28-iName2Len, "%s", szName1) 
-     formatex(szName2, iName2Len, "%s", szName2) 
-     } 
-     else 
-     { 
-     formatex(szName1, 13, "%s", szName1) 
-     formatex(szName2, 13, "%s", szName2) 
-     } 
-   
-     formatex(szNames, 31, "%s + %s", szName1, szName2) 
-   
-     set_msg_block(msgID_sayText, BLOCK_ONCE) 
-     set_user_info(iKiller, "name", szNames) 
-   
-     if(g_bAmxModeExists) 
-     { 
-     g_iLastAmxMode = get_pcvar_num(pCVar_amxMode) 
-   
-     set_pcvar_num(pCVar_amxMode, 0) 
-     } 
-   
-     if(equali(szWeapon, "grenade")) 
-     szWeaponLong = "weapon_hegrenade" 
-     else 
-     formatex(szWeaponLong, 31, "weapon_%s", szWeapon) 
-   
-     new args[4] 
-   
-     args[0] = iVictim 
-     args[1] = iKiller 
-     args[2] = iHS 
-     args[3] = get_weaponid(szWeaponLong) 
-   
-     set_task(0.1, "player_diePost", 0, args, 4) 
-     } 
-     } 
-     else if(ch_pCVar_enabled == 1) 
-     do_deathmsg(iKiller, iVictim, iHS, szWeapon) 
-     } 
-     else if(ch_pCVar_enabled == 1) 
-     do_deathmsg(iVictim, iVictim, iHS, szWeapon) 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     public player_diePost(arg[]) 
-     { 
-     new szWeapon[24] 
-     new iKiller = arg[1] 
-   
-     get_weaponname(arg[3], szWeapon, 23) 
-     replace(szWeapon, 23, "weapon_", "") 
-   
-     do_deathmsg(iKiller, arg[0], arg[2], szWeapon) 
-   
-     set_msg_block(msgID_sayText, BLOCK_ONCE) 
-     set_user_info(iKiller, "name", g_szName[iKiller]) 
-   
-     if(g_bAmxModeExists) 
-     set_pcvar_num(pCVar_amxMode, g_iLastAmxMode) 
-   
-     return PLUGIN_CONTINUE 
-     } 
-   
-     public msg_deathMsg() 
-     return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE 
-   
-     /* originally from messages_stocks.inc, but simplified */ 
-   
-     stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[]) 
-     { 
-     message_begin(MSG_ALL, msgID_deathMsg) 
-     write_byte(iKiller) 
-     write_byte(iVictim) 
-     write_byte(iHS) 
-     write_string(szWeapon) 
-     message_end() 
-     } 
-   
-     /* -------------------------------------------------------------------------- 
-     EOF 
-     -------------------------------------------------------------- */