Menu Basic Commands

Menu Basic Commands 1.0.0

Марина

Участник
Сообщения
144
Реакции
4
Либо это не так (всё же есть что-то), либо реализовано не через SM.
На самом деле не важно каким методом это реализовано, если это возможно то почему бы не дать в паблик этот метод, пусть это будет sm либо другой, если у клиента при выходе с сервера не остаётся в памяти биндных кнопок это не можно считать чем то плохим, мой сервер мои правила..
 

DarklSide

Участник
Сообщения
931
Реакции
468
На том серве откуда похожий плагин, забиндина кнопка I (i) по моему на ней ничего не закреплено
PHP:
//config_default.cfg
...
bind "h" "commandmenu"
bind "i" "showbriefing"
bind "j" "cheer"
...

AddCommandListener(OtherCommandListener, "showbriefing");
Как один из возможных вариантов, если кнопка в config.cfg (lab.cfg, ...), bind "i" "*" - не имеет другой бинд.

P.S.: в зависимости от игры bind "i" в config_default.cfg, будет иметь свое значение.
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #63
пусть это будет sm либо другой
Это может быть расширение, либо вовсе какой-нибудь EventScripts, которого вы, наверняка, даже не ставили.
А вообще, выше всё указали. Кнопка используется внутри игры, а потому, с большей долей вероятности, сделано аналогично.
 

Марина

Участник
Сообщения
144
Реакции
4
@DarklSide, @AlmazON, расскажите пожалуйста про перехват кнопок, вам как знающим людям это пару секунд, а остальным тонны информации перерывать да и не всегда по теме.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #65
перехват кнопок
Если ту же кнопку "I" по:
AddCommandListener(OtherCommandListener, "showbriefing");
То получается:
PHP:
public OnPluginStart() AddCommandListener(OtherCommandListener, "showbriefing");

public Action:OtherCommandListener(client, const String:name[], args)
{
    if (client) FakeClientCommand(client, "say_team !com");
    return Plugin_Continue;
}
 

Марина

Участник
Сообщения
144
Реакции
4
Если ту же кнопку "I" по:То получается:
PHP:
public OnPluginStart() AddCommandListener(OtherCommandListener, "showbriefing");

public Action:OtherCommandListener(client, const String:name[], args)
{
    if (client) FakeClientCommand(client, "say_team !com");
    return Plugin_Continue;
}

Спасибо, приду домой скомпилирую плагин menu basic commands с забиндиной кнопкой I
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Это перехват команды, а не кнопок. @AlmazON, ты же не такое дно)
 

DarklSide

Участник
Сообщения
931
Реакции
468
скомпилирую плагин menu basic commands с забиндиной кнопкой I
Перед этим, верни дефолтное значение по умолчанию bind "i" "*" из config_default.cfg,
например в консоль клиента:
bind "i" "*"
host_writeconfig

и в AddCommandListener(OtherCommandListener, "*"); такое же значение "*".

Так же можешь проверит на доступность:
PHP:
bool bTrueListener = AddCommandListener(OtherCommandListener, "*");
LogMessage("AddCommandListener[%d]", bTrueListener);
addons\sourcemod\logs\L201612<19>|<20>.log
AddCommandListener[1] - в нужном случае, иначе [0].
 

Марина

Участник
Сообщения
144
Реакции
4
@DarklSide, попробую разобраться
--- Добавлено позже ---
@DarklSide, времени и знаний пока не достаточно для для вставки кода в нужном месте скрипта, но и без добавлений и проверок код что дал @AlmazON работает, если напишешь в более доступном формате для копипасты я очень буду благодарна.

И ещё @AlmazON, если ты не против чтобы вставить в твой плагин menu basic commands вот эти строки которые ты предоставил, подредактируй пожалуйста:
public Action:OnClientSayCommand(C, const String:N[], const String:T[])
{
if(strcmp(T[1], "com",false) && strcmp(T[1], "команды")) return Plugin_Continue;
DisplayMenu(hMBC, C,60);
return Plugin_Handled;
}

public MC(Handle:M, MenuAction:A, C, O) if(A==MenuAction_Select) FakeClientCommand(C, "say \"%s\"", sCommand[O]);

public OnClientPostAdminCheck(client)
{
if (!IsFakeClient(client)) FakeClientCommand(client, "say_team !com");
}

public OnPluginStart()
AddCommandListener(OtherCommandListener, "showbriefing");

public Action:OtherCommandListener(client, const String:name[], args)
{
if (client) FakeClientCommand(client, "say_team !com");
return Plugin_Continue;
}


Сорри, просто пока что не умею. а пока отдельный скомпилированный плагин для открытия менюшки на кнопку "i" может кому пригодится.
 

Вложения

  • bind.smx
    3.5 КБ · Просмотры: 12
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #70
напишешь в более доступном формате для копипасты
То просто для проверки. Раз работает, то можно забыть.
Всё вполне верно, так уж получилось) Только в OnPluginStart() остального не хватает.
 

Марина

Участник
Сообщения
144
Реакции
4
То просто для проверки. Раз работает, то можно забыть.Всё вполне верно, так уж получилось) Только в OnPluginStart() остального не хватает.

Вот в том то и проблема, как отдельный плагин эта бинд команда компилируется, а в составе твоего плагина нет, вот и прошу, подредактируй пожалуйста чтобы в составе твоего плагина работал код а не отдельно)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #72
Меню плагина открывается каждый раз при входе на сервер (включая смену карты), а также при нажатии кнопки "I" (ей должна быть назначена команда "showbriefing"). Спам в чат при этом отсутствует.
 

Вложения

  • Multi-SM_MenuBasicCommands_v1.0.0B.rar
    867 байт · Просмотры: 69

Марина

Участник
Сообщения
144
Реакции
4
Меню плагина открывается каждый раз при входе на сервер (включая смену карты), а также при нажатии кнопки "I" (ей должна быть назначена команда "showbriefing"). Спам в чат при этом отсутствует.
Спасибо огромное:angel:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #74
перехват кнопок
Кстати, @T1MOXA напомнил ещё одну тему, относящуюся к этому плагину: ID кнопок в CS:GO - здесь как раз конкретный код для перехвата действия кнопки. Добавляем его внутрь исходника плагина с новой чистой строки (например, в самом конце), компилируем, закидываем к плагинам и пользуемся.
 

Марина

Участник
Сообщения
144
Реакции
4
@AlmazON, автооткрытие при входе более не требуется, если не затруднит напиши что убрать в исходнике
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #77

Марина

Участник
Сообщения
144
Реакции
4
@AlmazON, такого содержимого нет, ты переписал код этой версии:
Оффтоп
 
Сверху Снизу