Информация о блокировке команды.

vb

Участник
Сообщения
385
Реакции
31
Есть ли такая функция как "Информация о блокировке команды ?" Например , игрок "PRO" вводит команду в чат "!ws" , а ему в ответ сервер выдаёт "Данная команда заблокирована " с возможностью добавления своих так сказать "команд" ? Если тема была создана не в соответствующем разделе, перенесите пожалуйста ув. Модераторы. Спасибо.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
только переписывать соответствующий плагин (я обычно в своих плагинах делаю такие сообщения)
или ты про тотальную блокировку для всех (при этом соответствующего команде плагина вообще нет на сервере)?
 

vb

Участник
Сообщения
385
Реакции
31
только переписывать соответствующий плагин (я обычно в своих плагинах делаю такие сообщения)
или ты про тотальную блокировку для всех (при этом соответствующего команде плагина вообще нет на сервере)?
Да, именно . "про тотальную блокировку для всех (при этом соответствующего команде плагина вообще нет на сервере)?"
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
в принципе не слишком сложный плагин
главное - решить где хранить список запрещённых команд: в БД или в текстовом файле
А вообще есть плагин блокировки команд: Command Blocker - AlliedModders
 
  • Мне нравится
Реакции: vb

vb

Участник
Сообщения
385
Реакции
31
в принципе не слишком сложный плагин
главное - решить где хранить список запрещённых команд: в БД или в текстовом файле
А вообще есть плагин блокировки команд: Command Blocker - AlliedModders

Спасибо . Буду знать. В общем , решил свою проблему с помощью : "hidecommands"
 

Вложения

  • hidecommands.sp
    401 байт · Просмотры: 10
J

Join

Спасибо . Буду знать. В общем , решил свою проблему с помощью : "hidecommands"
Ваше решение не выводит информацию в чат.
Ещё можно вот так попробовать:
PHP:
public OnPluginStart()
{
    AddCommandListener(BlockCommands, "COMAND_1");
    AddCommandListener(BlockCommands, "COMAND_2");
    AddCommandListener(BlockCommands, "COMAND_3");
}

public Action:BlockCommands(client, const String:command[], argc)
{
    if(client != 0)
    {
        PrintToChat(client, "Команда запрещена");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
Работать будет только для консольных команд.
 
  • Мне нравится
Реакции: vb

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
только для консольных команд
почему это?
консольные sm_say и say равнозначна прописанной в чат !say и /say (первый символ зависит от прописанных в настройках SM триггера, в моём случае - дефолтные)

да и проще сделать так, раз уж команды нет возможности менять/добавлять/удалять без перекомпилирования, т.к. прописаны в сам плагин, а не находятся в файле конфига или БД:
PHP:
const static String:BlockedCmds[][] =
{
    "cmd_1",
    "cmd_2",
    "cmd_3",
    "cmd_4"
};

public OnPluginStart()
{
    for(new i, num = sizeof(BlockedCmds); i < num; i++) AddCommandListener(BlockCommands, BlockedCmds[i]);
}

public Action:BlockCommands(client, const String:command[], argc)
{
    if(!client) return Plugin_Continue;

    PrintToChat(client, "Команда '%s' запрещена!", command);
    return Plugin_Handled;
}

Но ТСу нужно скорее вот это:
PHP:
const static String:BlockedCmds[][] =
{
    "cmd_1",
    "cmd_2",
    "cmd_3",
    "cmd_4"
};

public OnPluginStart()
{
    for(new i, num = sizeof(BlockedCmds); i < num; i++) RegConsoleCmd(BlockedCmds[i], BlockCommands);
}

public Action:BlockCommands(client, args)
{
    if(client) PrintToChat(client, "Команда '%s' запрещена!", command);
    return Plugin_Handled;
}
 
Последнее редактирование:

LordARTHAS

Участник
Сообщения
15
Реакции
0
почему это?
консольные sm_say и say равнозначна прописанной в чат !say и /say (первый символ зависит от прописанных в настройках SM триггера, в моём случае - дефолтные)

да и проще сделать так, раз уж команды нет возможности менять/добавлять/удалять без перекомпилирования, т.к. прописаны в сам плагин, а не находятся в файле конфига или БД:
PHP:
const static String:BlockedCmds[][] =
{
    "cmd_1",
    "cmd_2",
    "cmd_3",
    "cmd_4"
};

public OnPluginStart()
{
    for(new i, num = sizeof(BlockedCmds); i < num; i++) AddCommandListener(BlockCommands, BlockedCmds[i]);
}

public Action:BlockCommands(client, const String:command[], argc)
{
    if(!client) return Plugin_Continue;

    PrintToChat(client, "Команда '%s' запрещена!", command);
    return Plugin_Handled;
}

если не сложно, то можете все это собрать в один плагин и с конфигом в cfg. Я вообще не шарю
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@LordARTHAS, это и есть один плагин
необходимые команды нужно добавить в массив BlockedCmds, а затем просто скомпилить полученный код
 
  • Мне нравится
Реакции: vb

vb

Участник
Сообщения
385
Реакции
31
Всё было хорошо, до обновления . Подскажите, с чем связана ошибка и как её исправить ?
Скрытие команд в чате.
Лог sm ^
[SM] Failed to load plugin "hidecommands.smx": Unable to load plugin (no debug string table).

Код :

C-подобный:
public OnPluginStart()
{
    RegConsoleCmd("say", hidetrigger);
    RegConsoleCmd("say_team", hidetrigger);
}
public Action:hidetrigger(userid, args)
{
    decl String:command[32];
    GetCmdArg(1, command, 32);
    if (StrContains(command, "!admin") == 0 ||
    StrContains(command, "!Admin") == 0 ||
    StrContains(command, "!ADMIN") == 0) return Plugin_Handled;
    return Plugin_Continue;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@vb, попробуй так:
PHP:
public OnPluginStart()
{
    RegConsoleCmd("say", hidetrigger);
    RegConsoleCmd("say_team", hidetrigger);
}

public Action:hidetrigger(client, args)
{
    decl String:command[8];
    GetCmdArg(1, command, 8);

    return !StrContains(command, "!admin", false) ? Plugin_Handled : Plugin_Continue;
}
 
  • Мне нравится
Реакции: vb
Сверху Снизу