Real-Menu

Плагин АМХХ Real-Menu 1.0.7

Нет прав для скачивания
C++:
#include <amxmodx>
#include <amxmisc>
#include <fun>


// ~ Дефайн с биндом флагов (глобал) ~
// ~ Закомментировать #define MULTI_FLAGS если не используете систему пробного периода ~
#define GL_FLAG ADMIN_BAN  //Бинд флага (меняется на какой хотите, только с этим флагом, будут доступны: основные функции)
#define MULTI_FLAGS (ADMIN_USER|ADMIN_LEVEL_H)  //Мульти бинд флагов (например для вип и юзеров, только с этими флагами будут доступны: пробный период (пробные разы))

//Дефайн для plugin_precache (проверка), закомментировать если нехотим что бы скачивалась музыка.. глобал и для меню
#define RM_SOUND_GL //активирует скачку всех песен
#define RM_SOUND_MN //включить или выключить скачку отдельно для меню (основываясь из RM_SOUND_MENU)


//константы названия плагина, версии плагина, автора плагина
new const PLUGIN[] = "Real-Menu";
new const VERSION[] = "1.1";
new const AUTHOR[] = "wellasgood";

//константы музыки
new const RM_SND_YES[] = "real-menu/yes.wav";
new const RM_SND_NO[] = "real-menu/no.wav";
new const RM_SND_HELLO[] = "real-menu/hello.wav";


//цветное меню, раунд
new g_ColorMenu, g_Round;

//2 страница меню
new g_NextMenu[MAX_PLAYERS+1];

//счетчики ограничителей
new g_limit_sp1[MAX_PLAYERS+1];
new g_limit_sp2[MAX_PLAYERS+1];
new g_limit_sp3[MAX_PLAYERS+1];
new g_limit_gr[MAX_PLAYERS+1];
new g_limit_sh[MAX_PLAYERS+1];
new g_limit_nc[MAX_PLAYERS+1];
new g_limit_spw[MAX_PLAYERS+1];

//счетчики ограничителей для пробного периода (юзеры)
new g_lm_sp1_user[MAX_PLAYERS+1];
new g_lm_sp2_user[MAX_PLAYERS+1];
new g_lm_sp3_user[MAX_PLAYERS+1];
new g_lm_gr_user[MAX_PLAYERS+1];
new g_lm_sh_user[MAX_PLAYERS+1];
new g_lm_nc_user[MAX_PLAYERS+1];
new g_lm_spw_user[MAX_PLAYERS+1];

//счетчик времени лимита до повторного использования способности
new g_ReloadTime[MAX_PLAYERS+1];

//переключатели времени лимита на использование способности по времени
new bool:g_abilities_sp1[MAX_PLAYERS+1];
new bool:g_abilities_sp2[MAX_PLAYERS+1];
new bool:g_abilities_sp3[MAX_PLAYERS+1];
new bool:g_abilities_gr[MAX_PLAYERS+1];
new bool:g_abilities_nc[MAX_PLAYERS+1];

//переключатель для соунда меню
new bool:g_sound_menu[MAX_PLAYERS+1] = false;

//раундные переменные
new RM_ROUND, RM_ROUND_COUNT;

//скоростные переменные
new RM_SPEED_1, RM_SPEED_2, RM_SPEED_3;

//гравитационная переменная
new RM_GRAVITY;

//ограничительные переменные (обычные)
new RM_LIMITER, RM_LIMITER_SPEED1, RM_LIMITER_SPEED2, RM_LIMITER_SPEED3, RM_LIMITER_GRAVITY, RM_LIMITER_SHIELD, RM_LIMITER_NOCLIP, RM_LIMITER_SPAWN;

//ограничительные переменные (пробный период)
new RM_LIMITER_USER, RM_LM_SPEED1_USER, RM_LM_SPEED2_USER, RM_LM_SPEED3_USER, RM_LM_GRAVITY_USER, RM_LM_SHIELD_USER, RM_LM_NOCLIP_USER, RM_LM_SPAWN_USER;

//звуковые переменные
new RM_SOUND_GLOBAL, RM_SOUND_MENU;

//переменные для отсчета времени до повторного использования способности
new RM_TIMER_ENABLED, RM_TIMER_TIME;

//переменные для отсчета времени до конца способности (способность дается на время)
new RM_ABILITIES_ENABLED, RM_ABILITIES_SPEED1, RM_ABILITIES_SPEED2, RM_ABILITIES_SPEED3, RM_ABILITIES_GRAVITY, RM_ABILITIES_NOCLIP;

//Ограничительная переменная для музыки меню
new RM_SOUND_MENU_STOP;


public plugin_init()
{
    // Отключаем не нужные карты (на картах, начинающихся на эти префиксы, не будет работать плагин (если нужно))
    new mapname[MAX_PLAYERS];
    get_mapname(mapname, charsmax(mapname));
    new maps[][] = { "de", "cs" };
    for(new i; i < sizeof maps; i++){
        if(containi(mapname, maps[i]) != -1){
            pause("ad");
            return;
        }
    }

    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
    register_dictionary("real-menu.txt");

    register_clcmd("say /real-menu", "cmdRealMenu", ADMIN_ALL)
    register_clcmd("say /rm", "cmdRealMenu", ADMIN_ALL)
    register_menu("Real-Menu", 1023, "realMenu")
    register_menu("Next-Menu", 1023, "nextMenu")

    RM_ROUND = register_cvar("rm_round","1") // вкл/выкл. (1/0) систему лимитов на раунды
    RM_ROUND_COUNT = register_cvar("rm_round_count","3") // кол-во раундов, после которых можно будет пользовать функции плагина (команду)

    RM_SPEED_1 = register_cvar("rm_speed1","1000") // устанавливаем скорость кайот
    RM_SPEED_2 = register_cvar("rm_speed2","2000") // устанавливаем скорость гипард
    RM_SPEED_3 = register_cvar("rm_speed3","3000") // устанавливаем скорость пуля

    RM_GRAVITY = register_cvar("rm_gravity","0.3") //1.0 = 800 гравити, если ставим 0.3 то гравитация 300 (в функции ставится значение RM_GRAVITY)

    RM_LIMITER = register_cvar("rm_limiter","1") // вкл/выкл. (1/0) систему лимитов функций (если 0, то все функции доступно бесконечно для использования)
    RM_LIMITER_SPEED1 = register_cvar("rm_lm_speed1","5") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_SPEED2 = register_cvar("rm_lm_speed2","5") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_SPEED3 = register_cvar("rm_lm_speed3","5") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_GRAVITY = register_cvar("rm_lm_gravity","5") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_SHIELD = register_cvar("rm_lm_shield","3") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_NOCLIP = register_cvar("rm_lm_noclip","2") // ограничитель на кол-во раз использований данной функции
    RM_LIMITER_SPAWN = register_cvar("rm_lm_spawn","3") // ограничитель на кол-во раз использований данной функции

    RM_LIMITER_USER = register_cvar("rm_limiter_user","1") // вкл/выкл. (1/0) систему лимитов функций (пробный период для юзеров)
    RM_LM_SPEED1_USER = register_cvar("rm_lm_sp1_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_SPEED2_USER = register_cvar("rm_lm_sp2_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_SPEED3_USER = register_cvar("rm_lm_sp3_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_GRAVITY_USER = register_cvar("rm_lm_gr_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_SHIELD_USER = register_cvar("rm_lm_sh_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_NOCLIP_USER = register_cvar("rm_lm_nc_us","2") // ограничитель на кол-во раз использований данной функции
    RM_LM_SPAWN_USER = register_cvar("rm_lm_spw_us","2") // ограничитель на кол-во раз использований данной функции

    RM_SOUND_GLOBAL = register_cvar("rm_sound_gl","1") // вкл/выкл проигрывание музыки при результате функций плагина (1/0)
    RM_SOUND_MENU = register_cvar("rm_sound_mn","1") // вкл/выкл проигрывание музыки при открытии меню (приветствие)
    RM_SOUND_MENU_STOP = register_cvar("rm_sound_mn_st","1") // 1/0, если 0 то музыка при открытии меню будет всегда, если 1, то только 1 раз, при первом открытии.

    RM_TIMER_ENABLED = register_cvar("rm_timer_en","1") // вкл/выкл 1/0 (система лимита времени, до повторной активации способности)
    RM_TIMER_TIME = register_cvar("rm_timer","30") // Время, после которого можно снова задействовать команду.

    RM_ABILITIES_ENABLED = register_cvar("rm_abilities_en","1") // вкл/выкл. (1/0) систему лимита по времени на сколько выдается способность (кроме spawn и shield)
    RM_ABILITIES_SPEED1 = register_cvar("rm_abilities_sp1","25") // ограничитель на время использования (пишем время на которое будет активирована способность)
    RM_ABILITIES_SPEED2 = register_cvar("rm_abilities_sp2","25") // ограничитель на время использования (пишем время на которое будет активирована способность)
    RM_ABILITIES_SPEED3 = register_cvar("rm_abilities_sp3","60") // ограничитель на время использования (пишем время на которое будет активирована способность)
    RM_ABILITIES_GRAVITY = register_cvar("rm_abilities_gr","30") // ограничитель на время использования (пишем время на которое будет активирована способность)
    RM_ABILITIES_NOCLIP = register_cvar("rm_abilities_nc","15") // ограничитель на время использования (пишем время на которое будет активирована способность)

    g_ColorMenu = colored_menus()

    set_task(180.0, "rm_global_info", .flags = "b") // реклама всем в чат до конца карты через определенное время о плагине

    if(get_pcvar_num(RM_LIMITER_USER) == 1){
        set_task(80.0, "rm_global_lm_info", .flags = "b") // реклама всем в чат до конца карты через определенное время о пробном периоде
    }
}


#if defined RM_SOUND_GL
public plugin_precache()
{
    precache_sound(RM_SND_YES)
    precache_sound(RM_SND_NO)

#if defined RM_SOUND_MN
    precache_sound(RM_SND_HELLO)
#endif
}
#endif


public round_start()
{
    if(get_pcvar_num(RM_ROUND) == 1){
        g_Round++; // для лимита рундов
    }
}


public client_disconnected(id)
{
    g_NextMenu[id] = 0;

    if(get_pcvar_num(RM_LIMITER) == 1){
        g_limit_sp1[id] = 0;
        g_limit_sp2[id] = 0;
        g_limit_sp3[id] = 0;
        g_limit_gr[id] = 0;
        g_limit_sh[id] = 0;
        g_limit_nc[id] = 0;
        g_limit_spw[id] = 0;
    }

    if(get_pcvar_num(RM_LIMITER_USER) == 1){
        g_lm_sp1_user[id] = 0;
        g_lm_sp2_user[id] = 0;
        g_lm_sp3_user[id] = 0;
        g_lm_gr_user[id] = 0;
        g_lm_sh_user[id] = 0;
        g_lm_nc_user[id] = 0;
        g_lm_spw_user[id] = 0;
    }

    if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
        g_abilities_sp1[id] = false;
        g_abilities_sp2[id] = false;
        g_abilities_sp3[id] = false;
        g_abilities_gr[id] = false;
        g_abilities_nc[id] = false;
    }

    if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
        g_ReloadTime[id] = 0;
    }

    if(get_pcvar_num(RM_SOUND_MENU_STOP) == 1){
        g_sound_menu[id] = false;
    }
}


public rm_global_info(id)
{
    client_print_color(id, print_team_default, "%L", id, "RM_GLOBAL_INFO") // Реклама всем в чат о плагиине в голобальном плане
}

public rm_global_lm_info(id)
{
    client_print_color(id, print_team_default, "%L", id, "RM_GLOBAL_LM_INFO") // Реклама всем в чат о возможности пробных разов для всех юзеров
}

public rm_limiter_us_info(id)
{
    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_US_INFO") // Реклама в чат пользователю, что для больших раз использования нужно купить услугу.
}


public abilitiesOff(id)
{
    if(g_abilities_sp1[id] == true){
        if(g_abilities_sp2[id] == false && g_abilities_sp3[id] == false){
            set_user_maxspeed(id, 250.0);
        }
        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_SPEED1") // Реклама в чат пользователю об окончании действия способности
        g_abilities_sp1[id] = false;
        return PLUGIN_HANDLED;
    }
    else if(g_abilities_sp2[id] == true){
        if(g_abilities_sp1[id] == false && g_abilities_sp3[id] == false){
            set_user_maxspeed(id, 250.0);
        }
        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_SPEED2") // Реклама в чат пользователю об окончании действия способности
        g_abilities_sp2[id] = false;
        return PLUGIN_HANDLED;
    }
    else if(g_abilities_sp3[id] == true){
        if(g_abilities_sp1[id] == false && g_abilities_sp2[id] == false){
            set_user_maxspeed(id, 250.0);
        }
        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_SPEED3") // Реклама в чат пользователю об окончании действия способности
        g_abilities_sp3[id] = false;
        return PLUGIN_HANDLED;
    }
    else if(g_abilities_gr[id] == true){
        set_user_gravity(id, 1.0);
        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_GRAVITY") // Реклама в чат пользователю об окончании действия способности
        g_abilities_gr[id] = false;
        return PLUGIN_HANDLED;
    }
    else if(g_abilities_nc[id] == true){
        set_user_noclip(id, 0);
        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_NOCLIP") // Реклама в чат пользователю об окончании действия способности
        g_abilities_nc[id] = false;
        return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}


public cmdRealMenu(id, level, cid)
{
    new pRnd = get_pcvar_num(RM_ROUND_COUNT)  // объявим переменную

    if(get_pcvar_num(RM_ROUND) == 1 && g_Round <= pRnd)
    {
        new RndCount = pRnd - g_Round
        client_print_color(id, print_team_default, "%L", id, "RM_MENU_ROUND", RndCount + 1)
        return PLUGIN_HANDLED;
    }

    if(get_pcvar_num(RM_SOUND_MENU) == 1)
    {
        if(get_pcvar_num(RM_SOUND_MENU_STOP) == 1){
            if(g_sound_menu[id] == false){
                SendAudio(id, fmt("sound/%s", RM_SND_HELLO));
            }
            g_sound_menu[id] = true;
            showMenu(id);
            return PLUGIN_HANDLED;
        }
        SendAudio(id, fmt("sound/%s", RM_SND_HELLO));
    }

    showMenu(id);
    return PLUGIN_HANDLED;
}


showMenu(id)
{
    new sFlagUsers = get_user_flags(id)

    if(g_NextMenu[id] == 1){
        new rmBody_2[512]
        new len = formatex(rmBody_2, charsmax(rmBody_2), (g_ColorMenu ? "\y%L^n^n" : "%L^n^n"), id, "RM_MENU_NAME")

        if(get_pcvar_num(RM_LIMITER) == 1 && sFlagUsers & GL_FLAG)
        {
            //оптимизируем данные для подстановки (ибо слшиком большой код)
            new pLimit_spw = get_pcvar_num(RM_LIMITER_SPAWN) - g_limit_spw[id]

            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM9")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_LIMIT7", pLimit_spw)
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_BACK")
        }
        else if(get_pcvar_num(RM_LIMITER_USER) == 1 && sFlagUsers & MULTI_FLAGS)
        {
            //оптимизируем данные для подстановки (ибо слшиком большой код)
            new pLimit_spw_us = get_pcvar_num(RM_LM_SPAWN_USER) - g_lm_spw_user[id]

            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM9")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_LIMIT7", pLimit_spw_us)
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_BACK")
        }
        else
        {
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM9")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_ITEM10")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, "^n^n")
            len += formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_BACK")
        }

        formatex(rmBody_2[len], charsmax(rmBody_2) - len, (g_ColorMenu ? "\r0. \w%L" : "0. %L"), id, "RM_MENU_EXIT")

        show_menu(id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9, rmBody_2, -1, "Next-Menu")
    }
    else
    {
        new rmBody_1[512]
        new len = formatex(rmBody_1, charsmax(rmBody_1), (g_ColorMenu ? "\y%L^n^n" : "%L^n^n"), id, "RM_MENU_NAME")

        if(get_pcvar_num(RM_LIMITER) == 1 && sFlagUsers & GL_FLAG)
        {
            //оптимизируем данные для подстановки (ибо слшиком большой код)
            new pLimit_sp1 = get_pcvar_num(RM_LIMITER_SPEED1) - g_limit_sp1[id]
            new pLimit_sp2 = get_pcvar_num(RM_LIMITER_SPEED2) - g_limit_sp2[id]
            new pLimit_sp3 = get_pcvar_num(RM_LIMITER_SPEED3) - g_limit_sp3[id]
            new pLimit_sh = get_pcvar_num(RM_LIMITER_SHIELD) - g_limit_sh[id]
            new pLimit_gr = get_pcvar_num(RM_LIMITER_GRAVITY) - g_limit_gr[id]
            new pLimit_nc = get_pcvar_num(RM_LIMITER_NOCLIP) - g_limit_nc[id]

            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM1")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_LIMIT1", pLimit_sp1)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r3. \w%L^n" : "3. %L^n"), id, "RM_MENU_LIMIT2", pLimit_sp2)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r4. \w%L^n" : "4. %L^n"), id, "RM_MENU_LIMIT3", pLimit_sp3)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r5. \w%L^n" : "5. %L^n"), id, "RM_MENU_LIMIT4", pLimit_sh)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r6. \w%L^n" : "6. %L^n"), id, "RM_MENU_LIMIT5", pLimit_gr)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r7. \w%L^n" : "7. %L^n"), id, "RM_MENU_ITEM7")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r8. \w%L^n^n" : "8. %L^n^n"), id, "RM_MENU_LIMIT6", pLimit_nc)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_NEXT")
        }
        else if(get_pcvar_num(RM_LIMITER_USER) == 1 && sFlagUsers & MULTI_FLAGS)
        {
            //оптимизируем данные для подстановки (ибо слшиком большой код)
            new pLimit_sp1_us = get_pcvar_num(RM_LM_SPEED1_USER) - g_lm_sp1_user[id]
            new pLimit_sp2_us = get_pcvar_num(RM_LM_SPEED2_USER) - g_lm_sp2_user[id]
            new pLimit_sp3_us = get_pcvar_num(RM_LM_SPEED3_USER) - g_lm_sp3_user[id]
            new pLimit_sh_us = get_pcvar_num(RM_LIMITER_SHIELD) - g_lm_sh_user[id]
            new pLimit_gr_us = get_pcvar_num(RM_LM_SHIELD_USER) - g_lm_gr_user[id]
            new pLimit_nc_us = get_pcvar_num(RM_LM_NOCLIP_USER) - g_lm_nc_user[id]

            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM1")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_LIMIT1", pLimit_sp1_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r3. \w%L^n" : "3. %L^n"), id, "RM_MENU_LIMIT2", pLimit_sp2_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r4. \w%L^n" : "4. %L^n"), id, "RM_MENU_LIMIT3", pLimit_sp3_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r5. \w%L^n" : "5. %L^n"), id, "RM_MENU_LIMIT4", pLimit_sh_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r6. \w%L^n" : "6. %L^n"), id, "RM_MENU_LIMIT5", pLimit_gr_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r7. \w%L^n" : "7. %L^n"), id, "RM_MENU_ITEM7")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r8. \w%L^n^n" : "8. %L^n^n"), id, "RM_MENU_LIMIT6", pLimit_nc_us)
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_NEXT")
        }
        else
        {
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r1. \w%L^n" : "1. %L^n"), id, "RM_MENU_ITEM1")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r2. \w%L^n" : "2. %L^n"), id, "RM_MENU_ITEM2")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r3. \w%L^n" : "3. %L^n"), id, "RM_MENU_ITEM3")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r4. \w%L^n" : "4. %L^n"), id, "RM_MENU_ITEM4")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r5. \w%L^n" : "5. %L^n"), id, "RM_MENU_ITEM5")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r6. \w%L^n" : "6. %L^n"), id, "RM_MENU_ITEM6")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r7. \w%L^n" : "7. %L^n"), id, "RM_MENU_ITEM7")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r8. \w%L^n^n" : "8. %L^n^n"), id, "RM_MENU_ITEM8")
            len += formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r9. \w%L^n" : "9. %L^n"), id, "RM_MENU_NEXT")
        }

        formatex(rmBody_1[len], charsmax(rmBody_1) - len, (g_ColorMenu ? "\r0. \w%L" : "0. %L"), id, "RM_MENU_EXIT")

        show_menu(id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9, rmBody_1, -1, "Real-Menu")
    }
}


public realMenu(id, key)
{
    new sFlagUsers = get_user_flags(id)

    if(key == 8)
    {
        g_NextMenu[id] = 1;
        showMenu(id);
    }

    if(key == 9)
    {
        return PLUGIN_HANDLED;
    }

    if(get_pcvar_num(RM_TIMER_ENABLED) == 1 && g_ReloadTime[id] > time()){
        client_print_color(id, print_team_default, "%L", id, "RM_TIMER_INFO", g_ReloadTime[id] - time())
        showMenu(id);
        return PLUGIN_HANDLED;
    }

    if(key == 0)
    {
        if(sFlagUsers & GL_FLAG || get_pcvar_num(RM_LIMITER_USER) == 1)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            set_user_maxspeed(id, 250.0);
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SPEED1");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }
        }
        else
        {
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
            show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_NO));
            }
            return PLUGIN_HANDLED;
        }
    }
    else if(key == 1)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_SPEED1) <= g_limit_sp1[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_1));
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SPEED2");

            if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                if(is_user_connected(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED1))
                    g_abilities_sp1[id] = true;
                    set_task(get_pcvar_float(RM_ABILITIES_SPEED1), "abilitiesOff", id);
                }
            }

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_sp1[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_SPEED1_USER) <= g_lm_sp1_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_1));
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_SPEED2");

                if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                    if(is_user_connected(id)){
                        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED1))
                        g_abilities_sp1[id] = true;
                        set_task(get_pcvar_float(RM_ABILITIES_SPEED1), "abilitiesOff", id);
                    }
                }

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_sp1_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 2)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_SPEED2) <= g_limit_sp2[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_2));
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SPEED3");

            if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                if(is_user_connected(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED2))
                    g_abilities_sp2[id] = true;
                    set_task(get_pcvar_float(RM_ABILITIES_SPEED2), "abilitiesOff", id);
                }
            }

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_sp2[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_SPEED2_USER) <= g_lm_sp2_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_2));
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_SPEED3");

                if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                    if(is_user_connected(id)){
                        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED2))
                        g_abilities_sp2[id] = true;
                        set_task(get_pcvar_float(RM_ABILITIES_SPEED2), "abilitiesOff", id);
                    }
                }

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_sp2_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 3)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_SPEED3) <= g_limit_sp3[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_3));
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SPEED4");

            if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                if(is_user_connected(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED3))
                    g_abilities_sp3[id] = true;
                    set_task(get_pcvar_float(RM_ABILITIES_SPEED3), "abilitiesOff", id);
                }
            }

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_sp3[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_SPEED3_USER) <= g_lm_sp3_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_num(RM_SPEED_3));
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_SPEED4");

                if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                    if(is_user_connected(id)){
                        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_SPEED3))
                        g_abilities_sp3[id] = true;
                        set_task(get_pcvar_float(RM_ABILITIES_SPEED3), "abilitiesOff", id);
                    }
                }

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_sp3_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 4)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_SHIELD) <= g_limit_sh[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            give_item(id, "weapon_shield")
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SHIELD");

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_sh[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_SHIELD_USER) <= g_lm_sh_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                give_item(id, "weapon_shield")
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_SHIELD");

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_sh_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 5)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_GRAVITY) <= g_limit_gr[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            set_user_gravity(id, get_pcvar_float(RM_GRAVITY));
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_GRAVITY_ON");

            if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                if(is_user_connected(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_GRAVITY))
                    g_abilities_gr[id] = true;
                    set_task(get_pcvar_float(RM_ABILITIES_GRAVITY), "abilitiesOff", id);
                }
            }

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_gr[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_GRAVITY_USER) <= g_lm_gr_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                set_user_gravity(id, get_pcvar_float(RM_GRAVITY));
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_GRAVITY_ON");

                if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                    if(is_user_connected(id)){
                        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_GRAVITY))
                        g_abilities_gr[id] = true;
                        set_task(get_pcvar_float(RM_ABILITIES_GRAVITY), "abilitiesOff", id);
                    }
                }

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_gr_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 6)
    {
        if(sFlagUsers & GL_FLAG || get_pcvar_num(RM_LIMITER_USER) == 1)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            set_user_gravity(id, 1.0);
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_GRAVITY_OFF");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }
        }
        else
        {
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
            show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_NO));
            }
            return PLUGIN_HANDLED;
        }
    }
    else if(key == 7)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_NOCLIP) <= g_limit_nc[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            set_user_noclip(id, 1);
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_NOCLIP_ON");

            if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                if(is_user_connected(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_NOCLIP))
                    g_abilities_nc[id] = true;
                    set_task(get_pcvar_float(RM_ABILITIES_NOCLIP), "abilitiesOff", id);
                }
            }

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_nc[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_NOCLIP_USER) <= g_lm_nc_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                set_user_noclip(id, 1);
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_NOCLIP_ON");

                if(get_pcvar_num(RM_ABILITIES_ENABLED) == 1){
                    if(is_user_connected(id)){
                        client_print_color(id, print_team_default, "%L", id, "RM_ABILITIES_INFO", get_pcvar_num(RM_ABILITIES_NOCLIP))
                        g_abilities_nc[id] = true;
                        set_task(get_pcvar_float(RM_ABILITIES_NOCLIP), "abilitiesOff", id);
                    }
                }

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_nc_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    return PLUGIN_HANDLED;
}


public nextMenu(id, key)
{
    new sFlagUsers = get_user_flags(id)

    if(key == 8)
    {
        g_NextMenu[id] = 0;
        showMenu(id);
    }

    if(key == 9)
    {
        g_NextMenu[id] = 0;
        return PLUGIN_HANDLED;
    }

    if(get_pcvar_num(RM_TIMER_ENABLED) == 1 && g_ReloadTime[id] > time()){
        client_print_color(id, print_team_default, "%L", id, "RM_TIMER_INFO", g_ReloadTime[id] - time())
        showMenu(id);
        return PLUGIN_HANDLED;
    }

    if(key == 0)
    {
        if(sFlagUsers & GL_FLAG || get_pcvar_num(RM_LIMITER_USER) == 1)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            set_user_noclip(id, 0);
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_NOCLIP_OFF");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            g_NextMenu[id] = 0;
        }
        else
        {
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
            show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_NO));
            }

            g_NextMenu[id] = 0;
            return PLUGIN_HANDLED;
        }
    }
    else if(key == 1)
    {
        if(sFlagUsers & GL_FLAG)
        {
            if(!is_user_alive(id)){
                client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                return PLUGIN_HANDLED;
            }

            if(get_pcvar_num(RM_LIMITER) == 1 && get_pcvar_num(RM_LIMITER_SPAWN) <= g_limit_spw[id]){
                client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }

                showMenu(id);
                return PLUGIN_HANDLED;
            }

            spawn(id);
            set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
            show_dhudmessage(id, "%L", id, "RM_INFO_SPAWN");
            g_NextMenu[id] = 0;

            if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
            }

            if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                SendAudio(id, fmt("sound/%s", RM_SND_YES));
            }

            if(get_pcvar_num(RM_LIMITER) == 1){
                g_limit_spw[id]++;
            }
        }
        else
        {
            if(get_pcvar_num(RM_LIMITER_USER) == 1)
            {
                if(!is_user_alive(id)){
                    client_print_color(id, print_team_default, "%L", id, "RM_DEAD_INFO")
                    return PLUGIN_HANDLED;
                }

                if(get_pcvar_num(RM_LM_SPAWN_USER) <= g_lm_spw_user[id]){
                    client_print_color(id, print_team_default, "%L", id, "RM_LIMITER_INFO")

                    if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                        SendAudio(id, fmt("sound/%s", RM_SND_NO));
                    }

                    showMenu(id);
                    return PLUGIN_HANDLED;
                }

                spawn(id);
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.50, 1, 0.2, 0.2, 0.1, 0.6);
                show_dhudmessage(id, "%L", id, "RM_INFO_SPAWN");
                g_NextMenu[id] = 0;

                if(get_pcvar_num(RM_TIMER_ENABLED) == 1){
                    g_ReloadTime[id] = time() + get_pcvar_num(RM_TIMER_TIME) //Активируем счетчик времени
                }

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_YES));
                }

                if(get_pcvar_num(RM_LIMITER_USER) == 1){
                    g_lm_spw_user[id]++;
                }

                if(is_user_connected(id)){
                    set_task(5.0, "rm_limiter_us_info", id);
                }
            }
            else
            {
                set_dhudmessage(random_num(10,255), random_num(10,255), random_num(10,255), -1.0, -0.45, 3, 1.0, 3.0, 0.1, 1.5);
                show_dhudmessage(id, "%L", id, "RM_INFO_OFF");

                if(get_pcvar_num(RM_SOUND_GLOBAL) == 1){
                    SendAudio(id, fmt("sound/%s", RM_SND_NO));
                }
                return PLUGIN_HANDLED;
            }
        }
    }
    else if(key == 2)
    {
        showMenu(id);
    }
    else if(key == 3)
    {
        showMenu(id);
    }
    else if(key == 4)
    {
        showMenu(id);
    }
    else if(key == 5)
    {
        showMenu(id);
    }
    else if(key == 6)
    {
        showMenu(id);
    }
    else if(key == 7)
    {
        showMenu(id);
    }
    return PLUGIN_HANDLED;
}

stock SendAudio(id, audio[], pitch = 100){
    static iMsgSendAudio;

    if(!iMsgSendAudio){
        iMsgSendAudio = get_user_msgid("SendAudio");
    }

    message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iMsgSendAudio, .player = id);
    write_byte(id);
    write_string(audio);
    write_short(pitch);
    message_end();
}
Назад
Сверху