Помогите забиндить консольную команду для всех игроков

Mellerok

Участник
Сообщения
90
Реакции
3
У меня есть меню на сервере и я хочу сделать так, чтобы игроку, при нажатии кнопки i, открывалось это меню (sm_menu)
Кому не сложно, помогите нубу 🙄
Лучше конечно готовый вариант скинуть, но могу попробовать и самостоятельно вписать, если буду знать что и примерно куда.
Заранее спасибо.
Сообщения автоматически склеены:

Судя по новой информации клавиша i не подходит для бинда, т.к. надо использовать несущую какую-то команду кнопку, по типу F3 или U.
 

Вложения

  • menu_server.sp
    5.6 КБ · Просмотры: 11
Последнее редактирование:

Innomeni

Участник
Сообщения
320
Реакции
42
я делал на кнопки закупа патронов, но скинуть сейчас не могу. если никто не скинет - через час добавлю готовый вариант.
 

Innomeni

Участник
Сообщения
320
Реакции
42
Кидаю as is, под консольные команды хз, как переделать, в моем случае это команды в чат.
Если F3 - это автозакуп, то должно работать.
Редактируются, соответственно, первые строчки в исходнике.
 

Вложения

  • f4_menu.sp
    1.1 КБ · Просмотры: 18

Mellerok

Участник
Сообщения
90
Реакции
3
Кидаю as is, под консольные команды хз, как переделать, в моем случае это команды в чат.
Если F3 - это автозакуп, то должно работать.
Редактируются, соответственно, первые строчки в исходнике.


Пожалуй это для меня слишком сложно)
Мне просто нужно мою менюшку подредачить, а не новую настраивать.

AddCommandListener(Button_I, "autobuy");

Я так понимаю эта строчка отвечает за кнопку F4? Если я только её перенесу в свой исходник, то будет ли у меня работать и открывать меню по нажатию?


**
Судя по тому, что мне ерор на компиляции выдало - нет)
 
Последнее редактирование:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Пожалуй это для меня слишком сложно)
Мне просто нужно мою менюшку подредачить, а не новую настраивать.

AddCommandListener(Button_I, "autobuy");

Я так понимаю эта строчка отвечает за кнопку F4? Если я только её перенесу в свой исходник, то будет ли у меня работать и открывать меню по нажатию?


**
Судя по тому, что мне ерор на компиляции выдало - нет)
C++:
public void OnPluginStart()
{
    AddCommandListener(Button_F4, "rebuy");     // Вместо rebuy, кнопка, которая нада (что есть в биндх от ксго) | Button_F4 - это просто ссылка на функцию на строке 7 в данном коде
    AddCommandListener(Button_F3, "autobuy");
}

public Action Button_F4(int client, char[] command, int args)
{
    FakeClientCommand(client, "sm_menu");     // Действие что нужно сделать
   return Plugin_Continue;
}
public Action Button_F3(int client, char[] command, int args)
{
   FakeClientCommand(client, "sm_cmdlist");
   return Plugin_Continue;
}
Сообщения автоматически склеены:

Дефолтны кнопки
 

Вложения

  • config_default.cfg
    1.2 КБ · Просмотры: 12

Mellerok

Участник
Сообщения
90
Реакции
3
C++:
public void OnPluginStart()
{
    AddCommandListener(Button_F4, "rebuy");     // Вместо rebuy, кнопка, которая нада (что есть в биндх от ксго) | Button_F4 - это просто ссылка на функцию на строке 7 в данном коде
    AddCommandListener(Button_F3, "autobuy");
}

public Action Button_F4(int client, char[] command, int args)
{
    FakeClientCommand(client, "sm_menu");     // Действие что нужно сделать
   return Plugin_Continue;
}
public Action Button_F3(int client, char[] command, int args)
{
   FakeClientCommand(client, "sm_cmdlist");
   return Plugin_Continue;
}
Сообщения автоматически склеены:

Дефолтны кнопки


То бишь, одну из строчек с F3 или F4 убрать, чтобы оставить что-то одно? Не забыв поменять паблик Экшн батон (нужная кнопка).
Если так, то большое спасибо.

**

Щас короче разберёмся)
 

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585
То бишь, одну из строчек с F3 или F4 убрать, чтобы оставить что-то одно? Не забыв поменять паблик Экшн батон (нужная кнопка).
Если так, то большое спасибо.

**

Щас короче разберёмся)
На букву i будет как и хотел.
 

Вложения

  • menu_server.sp
    5.8 КБ · Просмотры: 18

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
То бишь, одну из строчек с F3 или F4 убрать, чтобы оставить что-то одно? Не забыв поменять паблик Экшн батон (нужная кнопка).
Если так, то большое спасибо.

**

Щас короче разберёмся)
Готовый вариант
 

Вложения

  • menu_server.smx
    6.2 КБ · Просмотры: 3
  • menu_server.sp
    5.9 КБ · Просмотры: 10

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Это что за неведомая кнопка? Или на ксго она в другом виде? В ксс по другому выглядит, выше кидал.
Я под ксго делал, ибо автор темы не указывал игру.
И да, кнопка существует)
1585151771829.png
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
В ресурсах вродь был плагин по данной тематике

Вынес в CVar для единичного хука

C-подобный:
#pragma newdecls required

#define RequestCommand "sm_menu"    // То, что хотите выполнить для клиента

char szCommand[64];

#define _NEW_CVAR   "hc_command_name"   // CVar появится в cfg/sourcemod/commandhook.cfg

#define _INIT_CHANGE(%0,%1) %0(FindConVar(%1), NULL_STRING, NULL_STRING)
#define _ON_CHANGE(%0) public void %0(ConVar cvar, const char[] szOldVal, const char[] szNewVal)

public void OnPluginStart()
{
    CreateConVar(_NEW_CVAR, "autobuy", "Имя комманды для хука").AddChangeHook(CommandHook);
    AutoExecConfig(true, "commandhook");
}

public void OnMapStart()
{
    _INIT_CHANGE(CommandHook, _NEW_CVAR);
}

_ON_CHANGE(CommandHook)
{
    static bool Listening;

    if(cvar)
    {
        if(Listening && szCommand[0])
        {
            Listening = false;
            RemoveCommandListener(OnCommandUse_CallBack, szCommand);
        }
           
        cvar.GetString(szCommand, sizeof(szCommand));
   
        if(!szCommand[0])
            szCommand = "autobuy";

        Listening = AddCommandListener(OnCommandUse_CallBack, szCommand);
    }
}

public Action OnCommandUse_CallBack(int client, const char[] command, int argc)
{
    if(client && IsClientInGame(client) && !IsFakeClient(client))
        FakeClientCommandEx(client, RequestCommand);
}
 

Mellerok

Участник
Сообщения
90
Реакции
3
На букву i будет как и хотел.

На i не открывает

Готовый вариант


Тоже не работает на i. Если на F3 поменять, то может ли заработать?) Может всё же на i не получится забиндить.


И да, извиняюсь что игру не указал. Игра CS:GO.
Сообщения автоматически склеены:

В ресурсах вродь был плагин по данной тематике

Вынес в CVar для единичного хука

C-подобный:
#pragma newdecls required

#define RequestCommand "sm_menu"    // То, что хотите выполнить для клиента

char szCommand[64];

#define _NEW_CVAR   "hc_command_name"   // CVar появится в cfg/sourcemod/commandhook.cfg

#define _INIT_CHANGE(%0,%1) %0(FindConVar(%1), NULL_STRING, NULL_STRING)
#define _ON_CHANGE(%0) public void %0(ConVar cvar, const char[] szOldVal, const char[] szNewVal)

public void OnPluginStart()
{
    CreateConVar(_NEW_CVAR, "autobuy", "Имя комманды для хука").AddChangeHook(CommandHook);
    AutoExecConfig(true, "commandhook");
}

public void OnMapStart()
{
    _INIT_CHANGE(CommandHook, _NEW_CVAR);
}

_ON_CHANGE(CommandHook)
{
    static bool Listening;

    if(cvar)
    {
        if(Listening && szCommand[0])
        {
            Listening = false;
            RemoveCommandListener(OnCommandUse_CallBack, szCommand);
        }
         
        cvar.GetString(szCommand, sizeof(szCommand));
 
        if(!szCommand[0])
            szCommand = "autobuy";

        Listening = AddCommandListener(OnCommandUse_CallBack, szCommand);
    }
}

public Action OnCommandUse_CallBack(int client, const char[] command, int argc)
{
    if(client && IsClientInGame(client) && !IsFakeClient(client))
        FakeClientCommandEx(client, RequestCommand);
}

Не совсем понял вот это:


CreateConVar(_NEW_CVAR, "autobuy", "Имя комманды для хука").AddChangeHook(CommandHook);

Касаемо имени команды.
 
Последнее редактирование:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
На i не открывает




Тоже не работает на i. Если на F3 поменять, то может ли заработать?) Может всё же на i не получится забиндить.


И да, извиняюсь что игру не указал. Игра CS:GO.
Сообщения автоматически склеены:



Не совсем понял вот это:


CreateConVar(_NEW_CVAR, "autobuy", "Имя комманды для хука").AddChangeHook(CommandHook);

Касаемо имени команды.
 

Вложения

  • menu_server.sp
    5.9 КБ · Просмотры: 34

Mellerok

Участник
Сообщения
90
Реакции
3
Как часики заработало. Спасибо большое.
 
Сверху Снизу