First Killer Bonus

First Killer Bonus 0.0.1f

Нет прав для скачивания
Код:
#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;
}
Назад
Верх