#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
}