Поиск Система предупреждений

Сообщения
6
Реакции
0
Ищу плагин для выдачи игроку motd окна ,в котором игроку будет выдан подготовленный текст с указанием нарушения.
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
Intacto, есть плагин предупреждений от фримана, только там в hud сообщение, если переделать вывод в motd то получится то что вы ищите
 
Сообщения
3,569
Реакции
1,560
Помог
131 раз(а)
Код:
/* Связь с автором плагина: Telegram: @NordicWarrior */

#include <amxmodx>
#include <amxmisc>

new const PLUGIN_VERSION[] = "1.0.0";

/* Настройки */

#define ACCESS_FLAG        ADMIN_KICK            // Флаг доступа к меню показа правил

new const RULES_FILE[]    = "rules.txt";        // Файл с MOTD
new const TAG[]         = "^3[^4Rules^3]";    // Префикс плагина в чате

/* Конец настроек */

public plugin_init()
{
    register_plugin("MOTD Rules", PLUGIN_VERSION, "Nordic Warrior");

    register_clcmd("showrules", "cmdShowRulesMenu", ACCESS_FLAG);

    if(!file_exists(RULES_FILE))
    {
        set_fail_state("Отсутствует файл %s!", RULES_FILE);
    }
}

public cmdShowRulesMenu(id, level, cid)
{
    if(!cmd_access(id, level, cid, 0))
        return PLUGIN_HANDLED;

    RulesMenu(id);
    return PLUGIN_HANDLED;
}

public RulesMenu(const id)
{
    new iMenu = menu_create("Кому показать правила?", "RulesMenu_handler");

    new iPlayers[MAX_PLAYERS], iPlayersNum;
    get_players_ex(iPlayers, iPlayersNum, GetPlayers_ExcludeHLTV | GetPlayers_ExcludeBots);

    new iPlayer, szPlayer[3];

    for(new i; i < iPlayersNum; i++)
    {
        iPlayer = iPlayers[i];

        if(iPlayer == id)
            continue;

        num_to_str(iPlayer, szPlayer, charsmax(szPlayer));

        menu_additem(iMenu, fmt("%n", iPlayer), szPlayer);
    }

    if(!menu_items(iMenu))
    {
        client_print_color(id, print_team_red, "%s ^1На сервере ^3отсутствуют игроки^1.", TAG);
        return PLUGIN_HANDLED;
    }

    menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
    menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
    menu_setprop(iMenu, MPROP_EXITNAME, "Выход");

    menu_display(id, iMenu);
    return PLUGIN_HANDLED;
}

public RulesMenu_handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu);
        return PLUGIN_HANDLED;
    }

    new szData[3];
    menu_item_getinfo(iMenu, iItem, .info = szData, .infolen = charsmax(szData));

    new iTarget = str_to_num(szData);

    if(!is_user_connected(iTarget))
    {
        client_print_color(id, print_team_red, "%s ^1Выбран ^3неверный ^1игрок, либо выбранный игрок ^3вышел^1.", TAG);
        menu_destroy(iMenu);
        return PLUGIN_HANDLED;
    }

    show_motd(iTarget, RULES_FILE, "Соблюдай правила!");
    client_print_color(0, print_team_default, "%s ^1Админ ^3%n ^4показал правила ^1игроку ^3%n^1.", TAG, id, iTarget);

    menu_destroy(iMenu);
    RulesMenu(id);
    return PLUGIN_HANDLED;
}
 

Вложения

Сообщения
271
Реакции
348
Помог
15 раз(а)
Nordic Warrior,
Код:
    if(!menu_items(iMenu))
    {
        client_print_color(id, print_team_red, "%s ^1На сервере ^3отсутствуют игроки^1.", TAG);
        return PLUGIN_HANDLED;
    }

    menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
    menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
    menu_setprop(iMenu, MPROP_EXITNAME, "Выход");

    menu_display(id, iMenu);
    return PLUGIN_HANDLED;
так нельзя делать.
 
  • Нравится
Реакции: Ayk
Сообщения
271
Реакции
348
Помог
15 раз(а)
Nordic Warrior, создаешь меню и не показываешь игроку. Перед созданием проверяй на игроков.
 
Сообщения
3,569
Реакции
1,560
Помог
131 раз(а)
Denzer, с игроками ок, а если у меня не игроки будут в меню а другое, и я захочу подобное сделать?
 
Сообщения
1,287
Реакции
2,279
Помог
57 раз(а)
Nordic Warrior, ты поди не понял, что он имел ввиду. Ты создаёшь меню, но не дестроишь, если срабатывает if(!menu_items(iMenu))
 
Сообщения
3,569
Реакции
1,560
Помог
131 раз(а)
BlackSignature, ну так и надо говорить. Хотя я подумал об этом, но он написал в таком ключе, будто я какую-то серьезную ошибку допустил
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу