0%
Обязательно ознакомьтесь с правилами форума!
Чат для серверодержателей CS 1.6

Чат для серверодержателей Counter-Strike 1.6 а так же владельцев сайтов на движке GameCMS

Сообщество администраторов, разработчиков и владельцев серверов

GameCMS обсуждение Разработка плагинов Администрирование Опытные специалисты Безопасность и оптимизация
Чат помощи XenForo

Чат помощи по XenForo

Вопросы и обсуждения · Реклама · Услуги · Исполнители

XenForo помощь Услуги и исполнители Обсуждение движка Реклама проектов Разработка дополнений
Гарант-сервис RealHype

Гарант-сервис — безопасные сделки в интернете

Защита продавца и покупателя. Честные сделки без риска.

Безопасность сделок Защита от мошенников Эскроу-сервис Прозрачные условия Работа с юр. лицами
Рекламное место

Рекламное место свободно

Разместите свою рекламу прямо здесь!

Активная аудитория Высокая конверсия Доступная цена Эффективная реклама
Restart classic

CS 1.6 Amxx Restart classic 2.1

Смена команд через через определенное N раундов, делает рестарт игры
Код:
#include <amxmodx>
#include <reapi>

#define CREATE_CONFIG //Автоматическое создание конфига в configs/plugins

enum _:COLORS{
    RGB[3]
}

enum _:CVARS
{
    RR_ROUNDS[16],
    RR_ROUND_DELAY,
    RR_TYPE_MSG,
    RR_RGB_D_HUD[32],
    Float:RR_POS_X_D_HUD,
    Float:RR_POS_Y_D_HUD,
    Float:RR_HOLDTIME_D_HUD
}

new CvarData[CVARS], g_SyncMsg, g_Colors[COLORS];

public plugin_init()
{
    register_plugin("restart classic", "2.1", "RockTheStreet/RedFoxxx");
  
    RegisterHookChain(RG_CSGameRules_RestartRound, "CSGRules_RestartRound_Post", .post = true);

    g_SyncMsg = CreateHudSyncObj();

    RegisterCvars();

    #if defined CREATE_CONFIG
    AutoExecConfig(true, "rr_classic");
    #endif
}

RegisterCvars()
{
    bind_pcvar_num(create_cvar(
        "rr_rounds",
        "30",
        FCVAR_NONE,
        "Здесь определяете сколько раундов будете играть, и через сколько произойдет рестарт игры"),
        CvarData[RR_ROUNDS]
    );

    bind_pcvar_num(create_cvar(
        "rr_round_delay",
        "1",
        FCVAR_NONE,
        "Число рестартов игры"),
        CvarData[RR_ROUND_DELAY]
    );

    bind_pcvar_num(create_cvar(
        "rr_type_msg",
        "1",
        FCVAR_NONE,
        "Тип оповещания^n\
        0 - Отключено^n\
        1 - В чат^n\
        2 - HUD^n\
        3 - DHUD"),
        CvarData[RR_TYPE_MSG]
    );

    bind_pcvar_string(create_cvar(
        "rr_rgb_d_hud",
        "255 255 255",
        FCVAR_NONE,
        "Цвет D/HUD оповещания"),
        CvarData[RR_RGB_D_HUD],
        charsmax(CvarData[RR_RGB_D_HUD])
    );

    bind_pcvar_float(create_cvar(
        "rr_pos_x_d_hud",
        "-1.0",
        FCVAR_NONE,
        "Позиция X координаты D/HUD"),
        CvarData[RR_POS_X_D_HUD]
    );

    bind_pcvar_float(create_cvar(
        "rr_pos_y_d_hud",
        "0.25",
        FCVAR_NONE,
        "Позиция Y координаты D/HUD"),
        CvarData[RR_POS_Y_D_HUD]
    );

    bind_pcvar_float(create_cvar(
        "rr_holdtime_d_hud",
        "7.0",
        FCVAR_NONE,
        "Время сообщения на экране"),
        CvarData[RR_HOLDTIME_D_HUD]
    );


    new szColors[32], iColors;
  
    if(CvarData[RR_RGB_D_HUD][0] != EOS)
        while(argbreak(CvarData[RR_RGB_D_HUD], szColors, charsmax(szColors), CvarData[RR_RGB_D_HUD], charsmax(CvarData[RR_RGB_D_HUD])) != -1)
            g_Colors[RGB][iColors++] = str_to_num(szColors);
}

public CSGRules_RestartRound_Post()
{
    new rounds_played = get_member_game(m_iTotalRoundsPlayed);

    if (rounds_played >= CvarData[RR_ROUNDS])  {
        rg_swap_all_players();
        server_cmd("sv_restartround %d", CvarData[RR_ROUND_DELAY])
    }else{
        if(CvarData[RR_TYPE_MSG] <= 0){
            return;
        }

        if(CvarData[RR_TYPE_MSG] == 1){
            client_print_color(0, print_team_default, "^4* ^1Рестарт через ^4%d ^1раунд(а,ов)", CvarData[RR_ROUNDS] - rounds_played);
            return;
        }

        if(CvarData[RR_TYPE_MSG] == 2){
            set_hudmessage(.red = g_Colors[RGB][0], .green = g_Colors[RGB][1], .blue = g_Colors[RGB][2], .x = CvarData[RR_POS_X_D_HUD], .y = CvarData[RR_POS_Y_D_HUD], .effects = 1, .holdtime = CvarData[RR_HOLDTIME_D_HUD]);
            ShowSyncHudMsg(0, g_SyncMsg, "Рестарт через %d раунд(а.ов)", CvarData[RR_ROUNDS] - rounds_played);
            return;
        }

        if(CvarData[RR_TYPE_MSG] >= 3){
            set_hudmessage(.red = g_Colors[RGB][0], .green = g_Colors[RGB][1], .blue = g_Colors[RGB][2], .x = CvarData[RR_POS_X_D_HUD], .y = CvarData[RR_POS_Y_D_HUD], .effects = 1, .holdtime = CvarData[RR_HOLDTIME_D_HUD]);
            show_dhudmessage(0, "Рестарт через %d раунд(а.ов)", CvarData[RR_ROUNDS] - rounds_played);
            return;
        }
    }
}
Верх
Live activity
Just now · Social proof