DhudWinStatus

reapi DhudWinStatus 1.0.2

Нет прав для скачивания
Автор
BiZaJe
Исходный код
C++:
#include <amxmodx>
#include <reapi>

new Message[][] = {
    "#CTs_Win",
    "#Terrorists_Win"
}

enum WinCvars{
    Float:DHUD_WIN_X,
    Float:DHUD_WIN_Y,
    Float:DHUD_HOLDTIME,
    DHUD_WIN_CT_R,
    DHUD_WIN_CT_G,
    DHUD_WIN_CT_B,
    DHUD_WIN_TT_R,
    DHUD_WIN_TT_G,
    DHUD_WIN_TT_B
}

new g_WinCvars[WinCvars];

public plugin_init(){
    register_plugin("DHud Win Status", "1.0.2", "BiZaJe");

    register_dictionary("DhudWinStatus.txt");

    RegisterHookChain(RG_RoundEnd, "@HC_RoundEnd", .post = true);

    register_message(get_user_msgid("TextMsg"), "@MsgHook");

    @RegisterCvars();
}

@MsgHook(iMsg, DestMsg, iEntMsg)
{  
    static szMsg[64], newMsg[64], dummy;
    get_msg_arg_string(2, szMsg, charsmax(szMsg));
   
    if (!LookupLangKey(newMsg, charsmax(newMsg), szMsg[1], dummy))
        return

    new argC = get_msg_args()
    if (argC >= 3) {
        for (new i = 3; i <= argC; i++) {
            static arg[32]
            get_msg_arg_string(i, arg, charsmax(arg))
            replace(newMsg, charsmax(newMsg), "%s", arg)
        }
    }

    strcat(newMsg, "^n", charsmax(newMsg))

    set_msg_arg_string(2, newMsg)

    set_dhudmessage(255,255,255)
    show_dhudmessage(0, newMsg)

    for(new i = 0; i < sizeof(Message); i++){
        if(equal(szMsg, Message[i])){
            return;
        }
    }
}

@HC_RoundEnd(WinStatus:iStatus, ScenarioEventEndRound:iEvent, Float:flDelay)
{
    if(iStatus != WINSTATUS_CTS && iStatus != WINSTATUS_TERRORISTS)
        return;

    switch(iStatus){
        case WINSTATUS_CTS:{
            set_dhudmessage(.red = g_WinCvars[DHUD_WIN_CT_R], .green = g_WinCvars[DHUD_WIN_CT_G], .blue = g_WinCvars[DHUD_WIN_CT_B], .x = g_WinCvars[DHUD_WIN_X], .y = g_WinCvars[DHUD_WIN_Y], .holdtime = g_WinCvars[DHUD_HOLDTIME]);
            switch(iEvent){
                case ROUND_BOMB_DEFUSED:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_BOMB_DEFUSED");
                }
                case ROUND_ALL_HOSTAGES_RESCUED:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_ALL_HOSTAGES_RESCUED");
                }
                default:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_CT");
                }
            }
        }
        case WINSTATUS_TERRORISTS:{
            set_dhudmessage(.red = g_WinCvars[DHUD_WIN_TT_R], .green = g_WinCvars[DHUD_WIN_TT_G], .blue = g_WinCvars[DHUD_WIN_TT_B], .x = g_WinCvars[DHUD_WIN_X], .y = g_WinCvars[DHUD_WIN_Y], .holdtime = g_WinCvars[DHUD_HOLDTIME]);
            switch(iEvent){
                case ROUND_TARGET_BOMB:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_BOMB_EXPLODE");
                }
                case ROUND_HOSTAGE_NOT_RESCUED:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_HOSTAGE_NOT_RESCUED");
                }
                default:{
                    show_dhudmessage(0, "%L", LANG_SERVER, "DHUD_WIN_TT");
                }
            }
        }
    }
}

@RegisterCvars(){
    bind_pcvar_float(create_cvar(
        "dhud_win_x",
        "-1.0",
        FCVAR_NONE,
        "Позиция дхуд (X)"),
        g_WinCvars[DHUD_WIN_X]
    );
    bind_pcvar_float(create_cvar(
        "dhud_win_y",
        "0.25",
        FCVAR_NONE,
        "Позиция дхуд (Y)"),
        g_WinCvars[DHUD_WIN_Y]
    );
    bind_pcvar_float(create_cvar(
        "dhud_holdtime",
        "5.0",
        FCVAR_NONE,
        "Время сообщения на экране"),
        g_WinCvars[DHUD_HOLDTIME]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_ct_r",
        "80",
        FCVAR_NONE,
        "Цвет дхуд при победе КТ (Красный оттенок)"),
        g_WinCvars[DHUD_WIN_CT_R]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_ct_g",
        "79",
        FCVAR_NONE,
        "Цвет дхуд при победе КТ (Зеленый оттенок)"),
        g_WinCvars[DHUD_WIN_CT_G]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_ct_b",
        "208",
        FCVAR_NONE,
        "Цвет дхуд при победе КТ (Синий оттенок)"),
        g_WinCvars[DHUD_WIN_CT_B]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_tt_r",
        "245",
        FCVAR_NONE,
        "Цвет дхуд при победе ТТ (Красный оттенок)"),
        g_WinCvars[DHUD_WIN_TT_R]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_tt_g",
        "30",
        FCVAR_NONE,
        "Цвет дхуд при победе ТТ (Зеленый оттенок)"),
        g_WinCvars[DHUD_WIN_TT_G]
    );
    bind_pcvar_num(create_cvar(
        "dhud_win_tt_b",
        "30",
        FCVAR_NONE,
        "Цвет дхуд при победе ТТ (Синий оттенок)"),
        g_WinCvars[DHUD_WIN_TT_B]
    );
    AutoExecConfig(true, "DhudWinStatus");
}
Требования
ReApi Last Version
Требование ReAPI
Да
Поддержка русского языка
Да
Совместимость
  1. REHLDS
Сверху Снизу