#include <amxmodx>
#include <cstrike>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
const FIRSTKILL_BONUS_MONEY = 500;
const MIN_PLAYER = 4;
const MAX_MONEY = 16000;
new bool: g_bFirstKilled = false;
new Array: g_aAnnouncements,
g_iArraySize_Announcements;
const MAX_LANG_SIZE = 32;
const MAX_VARS_Announcements = 10;
public plugin_init()
{
register_plugin("First Killer Bonus", "0.0.1f", "wopox1337");
register_dictionary("FirstKillerBonus.txt");
LangsLoad();
register_event("HLTV", "CSGameRules_RestartRound", "a", "1=0", "2=0");
}
public client_death(pKiller, pVictim, wpnindex, hitplace, TK)
{
if(g_bFirstKilled || pKiller == pVictim || !is_user_connected(pKiller) || TK)
return;
if(get_playersnum(.flag = 0) < MIN_PLAYER)
return;
static iNewMoney;
iNewMoney = min(cs_get_user_money(pKiller) + FIRSTKILL_BONUS_MONEY, MAX_MONEY);
cs_set_user_money(pKiller, iNewMoney, .flash = true);
g_bFirstKilled = true;
InChat_ShowAnnounce(pKiller);
}
public CSGameRules_RestartRound()
g_bFirstKilled = false;
stock InChat_ShowAnnounce(pKiller)
{
static szKillerName[16];
get_user_name(pKiller, szKillerName, charsmax(szKillerName));
client_print_color(0, print_team_default,
"^1%L %L",
LANG_PLAYER, "fkb_PREFIX",
LANG_PLAYER, GetRandomLang(),
szKillerName, FIRSTKILL_BONUS_MONEY
);
}
stock LangsLoad()
{
g_aAnnouncements = ArrayCreate(MAX_LANG_SIZE);
for(new szLang[MAX_LANG_SIZE], i; i < MAX_VARS_Announcements; i++)
{
formatex(szLang, charsmax(szLang), "fkb_Announce_%i", i);
if(GetLangTransKey(szLang) != TransKey_Bad)
ArrayPushString(g_aAnnouncements, szLang);
}
g_iArraySize_Announcements = ArraySize(g_aAnnouncements);
}
public plugin_end()
if(g_aAnnouncements) ArrayDestroy(g_aAnnouncements);
GetRandomLang()
{
static szMessage[MAX_LANG_SIZE];
if(g_iArraySize_Announcements)
{
ArrayGetString(g_aAnnouncements,
random_num(0, g_iArraySize_Announcements - 1),
szMessage, charsmax(szMessage)
);
}
else formatex(szMessage, charsmax(szMessage), "fkb_Announce_default");
return szMessage;
}