Подключение команд к плагину

DiKsOn

Участник
Сообщения
50
Реакции
2
Подскажите пожалуйста как к плагину привязать команду которая бы выключала плагин например игрок пишет в чат команду и для него этот плагин не работает
 

White Wolf

Uber momentum
Команда форума
Сообщения
2,148
Реакции
1,748
Подскажите пожалуйста как к плагину привязать команду которая бы выключала плагин например игрок пишет в чат команду и для него этот плагин не работает
Невнятное ТЗ - результат хз.
 
  • Ха-ха-ха
Реакции: mika

Grey83

Ленивая и невнимательная жопа
Сообщения
4,848
Реакции
2,853
Создаёшь булевый массив размером MAXPLAYERS+1.
При выходе игрока задаёшь ему дефолтное значение.
При использовании консольной команды меняешь значение булевой переменной в массиве с индексом равным индексу игрока.
При работе плагина проверяешь значение этой переменной в массиве для игрока.

Это если тебе не нужно, чтобы для игрока сохранялась настройка и после его выхода с сервера.
 

DiKsOn

Участник
Сообщения
50
Реакции
2
Создаёшь булевый массив размером MAXPLAYERS+1.
При выходе игрока задаёшь ему дефолтное значение.
При использовании консольной команды меняешь значение булевой переменной в массиве с индексом равным индексу игрока.
При работе плагина проверяешь значение этой переменной в массиве для игрока.

Это если тебе не нужно, чтобы для игрока сохранялась настройка и после его выхода с сервера.
А есть пример кода?
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,848
Реакции
2,853
примерно так:
C-подобный:
bool bOption[MAXPLAYERS+1];

public void OnPluginStart()
{
...
    RegConsoleCmd("sm_option", Cmd_Option, "Description");
}

public Action Cmd_Option(int client, int args)
{
    if(!client || !IsClientInGame(client))
        return Plugin_Handled;

    bOption[client] = !bOption[client];
    PrintToChat(client, "[PREFIX] Option is %sabled", bOption[client] ? "dis" : "en");
    return Plugin_Handled;
}

public void OnClientDisconnect(int client)
{
    bOption[client] = false;
}

void SomeFunction(int client)
{
    if(!bOption[client]) DoSomething(client);
}
 

DiKsOn

Участник
Сообщения
50
Реакции
2
примерно так:
C-подобный:
bool bOption[MAXPLAYERS+1];

public void OnPluginStart()
{
...
    RegConsoleCmd("sm_option", Cmd_Option, "Description");
}

public Action Cmd_Option(int client, int args)
{
    if(!client || !IsClientInGame(client))
        return Plugin_Handled;

    bOption[client] = !bOption[client];
    PrintToChat(client, "[PREFIX] Option is %sabled", bOption[client] ? "dis" : "en");
    return Plugin_Handled;
}

public void OnClientDisconnect(int client)
{
    bOption[client] = false;
}

void SomeFunction(int client)
{
    if(!bOption[client]) DoSomething(client);
}
В один я плагин поставил ибо там уже была функция bool, но во второй теперь не могу, можете помочь пожалуйста
 

Вложения

  • Bomb_Events.sp
    8.6 КБ · Просмотры: 2
Сверху