Radio Menu

amxx Radio Menu 0.1

Нет прав для скачивания
Для CS 1.6
Автор
maFFyoZZyk
Исходный код
Основной код:
#include <amxmodx>

#define RADIO_SND    1
                                    // 0 - Выключить
                                    // 1 - Стандартные звуки
                                    // 2 - Русская озвучка
#define RADIO_MSG                    // Закомментировать, если не будем использовать Текст для оповещения
#define ANTIFLOOD                    // Закомментировать, если не нужен антифлуд
    #define AD_TIME        1.5            // Время между сообщениями, когда сработает антифлуд система

#if RADIO_SND == 2
new const msg_snd[][] =
{
    "radio/custom/ct_coverme.wav",
    "radio/custom/takepoint.wav",
    "radio/custom/position.wav",
    "radio/custom/regroup.wav",
    "radio/custom/followme.wav",
    "radio/custom/fireassis.wav",
    "radio/custom/com_go.wav",
    "radio/custom/fallback.wav",
    "radio/custom/sticktog.wav",
    "radio/custom/com_getinpos.wav",
    "radio/custom/stormfront.wav",
    "radio/custom/com_reportin.wav",
    "radio/custom/roger.wav",
    "radio/custom/ct_enemys.wav",
    "radio/custom/ct_backup.wav",
    "radio/custom/clear.wav",
    "radio/custom/ct_inpos.wav",
    "radio/custom/ct_reportingin.wav",
    "radio/custom/blow.wav",
    "radio/custom/negative.wav",
    "radio/custom/enemydown.wav"
}
#endif

#if RADIO_SND == 1
new const msg_snd[][] =
{
    "radio/ct_coverme.wav",
    "radio/takepoint.wav",
    "radio/position.wav",
    "radio/regroup.wav",
    "radio/followme.wav",
    "radio/fireassis.wav",
    "radio/com_go.wav",
    "radio/fallback.wav",
    "radio/sticktog.wav",
    "radio/com_getinpos.wav",
    "radio/stormfront.wav",
    "radio/com_reportin.wav",
    "radio/roger.wav",
    "radio/ct_enemys.wav",
    "radio/ct_backup.wav",
    "radio/clear.wav",
    "radio/ct_inpos.wav",
    "radio/ct_reportingin.wav",
    "radio/blow.wav",
    "radio/negative.wav",
    "radio/enemydown.wav"
}
#endif

new const msg_txt[][] =
{
    "Прикройте меня!",
    "Займите этот пункт.",
    "Удерживайте эту позицию.",
    "Перегруппируйтесь.",
    "Следуйте за мной.",
    "Атакуют... Требуется помощь!",
    "Пошли!",
    "Отходим.",
    "Команда держимся вместе.",
    "Занять позицию.",
    "Штурмуем фронт!",
    "Доложить.",
    "Так точно/Вас понял.",
    "Вижу врага!",
    "Нужна помощь!",
    "Сектор чист.",
    "Я на позиции.",
    "Докладываю.",
    "Уходим отсюда, сейчас рванет!",
    "Никак нет.",
    "Противник убит."
}

public plugin_init()
{
    register_plugin("Radio Menu", "0.1", "maFFyoZZyk")
        
    register_clcmd("radio1", "radio1")
    register_clcmd("radio2", "radio2")
    register_clcmd("radio3", "radio3")

}

#if defined RADIO_SND
public plugin_precache()
{
    for(new i = 0; i < sizeof(msg_snd); i++)
        precache_sound(msg_snd[i])
}
#endif

public radio1(id)
{
    if(!is_user_alive(id))    return PLUGIN_HANDLED 
    new menu = menu_create("\r[\yRadio A\r] \wРадио команды:\d", "radio_handler")

    menu_additem(menu,"\r[\yПрикройте меня!\r]","0")
    menu_additem(menu,"\r[\yЗаймите этот пункт.\r]","1")
    menu_additem(menu,"\r[\yУдерживайте эту позицию.\r]","2")
    menu_additem(menu,"\r[\yПерегруппируйтесь.\r]","3")
    menu_additem(menu,"\r[\yСледуйте за мной.\r]","4")
    menu_additem(menu,"\r[\yАтакуют... Требуется помощь!\r]","5")

    menu_setprop(menu, MPROP_EXITNAME, "Выход")   
    menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
        
    menu_display(id,menu,0)
    return PLUGIN_HANDLED
}

public radio2(id)
{
    if(!is_user_alive(id))    return PLUGIN_HANDLED 
    new menu = menu_create("\r[\yRadio B\r] \wРадио команды для группы:\d", "radio_handler")

    menu_additem(menu,"\r[\yПошли!\r]","6")
    menu_additem(menu,"\r[\yОтходим.\r]","7")
    menu_additem(menu,"\r[\yКоманда держимся вместе.\r]","8")
    menu_additem(menu,"\r[\yЗанять позицию.\r]","9")
    menu_additem(menu,"\r[\yШтурмуем фронт!\r]","10")
    menu_additem(menu,"\r[\yДоложить.\r]","11")

    menu_setprop(menu, MPROP_EXITNAME, "Выход")   
    menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
        
    menu_display(id,menu,0)
    return PLUGIN_HANDLED
}

public radio3(id)
{
    if(!is_user_alive(id))    return PLUGIN_HANDLED 
    new menu = menu_create("\r[\yRadio C\r] \wРадио ответы/рапорты:\d", "radio_handler")

    menu_additem(menu,"\r[\yТак точно/Вас понял.\r]","12")
    menu_additem(menu,"\r[\yВижу врага!\r]","13")
    menu_additem(menu,"\r[\yНужна помощь!\r]","14")
    menu_additem(menu,"\r[\yСектор чист.\r]","15")
    menu_additem(menu,"\r[\yЯ на позиции.\r]","16")
    menu_additem(menu,"\r[\yДокладываю.\r]","17")
    menu_additem(menu,"\r[\yУходим отсюда, сейчас рванет!\r]","18")
    menu_additem(menu,"\r[\yНикак нет.\r]","19")
    menu_additem(menu,"\r[\yПротивник убит.\r]","20")
    
    menu_setprop(menu, MPROP_EXITNAME, "Выход")
    menu_setprop(menu, MPROP_EXIT, MEXIT_FORCE)
    menu_setprop(menu, MPROP_PERPAGE, 0)
        
    menu_display(id,menu,0)
    return PLUGIN_HANDLED
}

public radio_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
            return PLUGIN_HANDLED
    }
#if defined ANTIFLOOD
    static Float:fTimeFlood[33], Float:fGameTime, iFloodWarn[33];
        
    if(fTimeFlood[id] > (fGameTime = get_gametime()))
    {
        if(++iFloodWarn[id] > 2)
        {           
            client_print_color(id, -2, "^1[^4РАДИО^1] Прекратите ^3флудить!");
            fTimeFlood[id] = fGameTime + AD_TIME + 3.0;
            return PLUGIN_HANDLED;
        }
    }
    else if(iFloodWarn[id]) iFloodWarn[id]--;
    fTimeFlood[id] = fGameTime + AD_TIME;
#endif   
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
 
    new key = str_to_num(data)
    
    new gamers[32],total, team_name[10]
    get_user_team(id,team_name, 9)
    get_players(gamers, total ,"ce", team_name)
    new name[32]
    get_user_name(id,name,31)
    
    for(new y=0; y < total; ++y)
    {
        switch(key)
        {
            case 0..20:
            {
#if defined RADIO_MSG
                client_print_color(gamers[y], 0,"^3%s ^1(^4РАДИО^1): %s",name, msg_txt[key])
#endif               
#if RADIO_SND == 1 || RADIO_SND == 2
                client_cmd(gamers[y], "spk ^"%s^"", msg_snd[key])
#endif
            }
        }
    }
    return PLUGIN_HANDLED
}
Требование ReAPI
Нет
Поддержка русского языка
Да
Совместимость
  1. HLDS
  2. REHLDS
Сверху Снизу