Как привязать команду к клавише

Rostu

Добрая душа
Сообщения
986
Реакции
623
@CaJI9pA, Только хотел написать. Скидывал то что давно очень стоит у меня лично)
 
C

CaJI9pA

@Steammerr, Мы друг друга немного не поняли((
Что то типа этого
Оффтоп
PHP:
public OnPluginStart() AddCommandListener(Button_F1, "autobuy"); (Button_F2, "rebuy");

public Action:Button_F1; Button_F2(client, String:command[], args)
{
   FakeClientCommand(client, "sm_medic", "sm_vip");
   return Plugin_Continue;
}
 

Steammer

Участник
Сообщения
443
Реакции
187
Сделай просто ещё один плагин и всё, код:
C-подобный:
public OnPluginStart() AddCommandListener(Button_F3, "autobuy");

public Action:Button_F3(client, String:command[], args)
{
   FakeClientCommand(client, "sm_vip");
   return Plugin_Continue;
}
 
C

CaJI9pA

@Steammerr, ОК, просто хотелось без дополнительных плагинов, чтобы все было в одном!
Оффтоп
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@CaJI9pA,
@Steammerr,
Были бы определенные доступные кнопки и к ним привязываешь свою команду
Мне кажется такого не сделать т.к кнопка E отвечает за IN_USE но бинд может на нее и на l стоять. Хотя и по к этому варианту есть варианты
 
C

CaJI9pA

@Rostu, Я то понял, вдруг кто то додумается из скриптеров как то реализовать это, они же креативные.
Например: тебе доступны только определенные клавиши(и под них уже написан код с выводом в конфиг), и других комбинаций тебе не доступно. И ты может только на те кнопки прописать свои команды, и только! Ну примерно так, в мыслях то я понял как это будет работать, а вот реализовать не хватает знаний
--- Добавлено позже ---
@Rostu, Слушай можешь помочь?
Я хочу привязать команду guns к клавише "B - buymenu" что то не выходит
PHP:
public Action:OnPlayerRunCmd(client, &buttons)
{
 static bool:g_InUse[MAXPLAYERS+1];
 if(!g_InBuymenu[client] && (buttons & IN_BUYMENU))
 {
  FakeClientCommand(client, "say guns");
  g_InBuymenu[client] = true;
 }
  else if (!(buttons & IN_BUYMENU) && g_InBuymenu[client])
 {
  g_InBuymenu[client] = false;
 }
 return Plugin_Continue;
}
Оффтоп
 
Последнее редактирование модератором:

lexx777

Участник
Сообщения
309
Реакции
41
Подскажите пожалуйста обозначение клавиши "Т"
Хочу переназначить переключение 2-х оружий т.к. стоит на клавишу "E" .
#include <sdktools>

#define BUTTONS IN_USE//Клавиша переключения
#define ANTIFLOOD 0.45//Антифлуд при переключение

public Plugin:myinfo =
{
name = "TwoGuns",
author = "Scarface_slv",
version = "2.2",
};
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,560
Реакции
5,061
%папка_игры%\cfg\config.cfg
посмотри какая команда на этой клавише прописана в файле
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,560
Реакции
5,061
Пробовал, но не компилируется.
и не должно
Там смотришь команду, а потом ищешь её в списке:
C-подобный:
// These defines are for client button presses.
#define IN_ATTACK        (1 << 0)
#define IN_JUMP            (1 << 1)
#define IN_DUCK            (1 << 2)
#define IN_FORWARD        (1 << 3)
#define IN_BACK            (1 << 4)
#define IN_USE            (1 << 5)
#define IN_CANCEL        (1 << 6)
#define IN_LEFT            (1 << 7)
#define IN_RIGHT        (1 << 8)
#define IN_MOVELEFT        (1 << 9)
#define IN_MOVERIGHT        (1 << 10)
#define IN_ATTACK2        (1 << 11)
#define IN_RUN            (1 << 12)
#define IN_RELOAD        (1 << 13)
#define IN_ALT1            (1 << 14)
#define IN_ALT2            (1 << 15)
#define IN_SCORE        (1 << 16)       /**< Used by client.dll for when scoreboard is held down */
#define IN_SPEED        (1 << 17)    /**< Player is holding the speed key */
#define IN_WALK            (1 << 18)    /**< Player holding walk key */
#define IN_ZOOM            (1 << 19)    /**< Zoom key for HUD zoom */
#define IN_WEAPON1        (1 << 20)    /**< weapon defines these bits */
#define IN_WEAPON2        (1 << 21)    /**< weapon defines these bits */
#define IN_BULLRUSH        (1 << 22)
#define IN_GRENADE1        (1 << 23)    /**< grenade 1 */
#define IN_GRENADE2        (1 << 24)    /**< grenade 2 */
#define IN_ATTACK3        (1 << 25)
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
@Grey83, @lexx777, можно проще узнать обозначение клавиши. для этого достаточно прописать
C-подобный:
bind клавиша
в консоль клиента, и она напишет, какая команда привязана. пример:
C-подобный:
bind f9
"f9" = "sm_admin"
а команды, перечисленные в списке через #define, гарантированно передаются на сервер (и являются кодом), в отличии от тех, что может выдать бинд (вряд ли на сервер передается команда снятия скриншота, например).
 

lexx777

Участник
Сообщения
309
Реакции
41
и не должно
Там смотришь команду, а потом ищешь её в списке:
C-подобный:
// These defines are for client button presses.
#define IN_ATTACK        (1 << 0)
#define IN_JUMP            (1 << 1)
#define IN_DUCK            (1 << 2)
#define IN_FORWARD        (1 << 3)
#define IN_BACK            (1 << 4)
#define IN_USE            (1 << 5)
#define IN_CANCEL        (1 << 6)
#define IN_LEFT            (1 << 7)
#define IN_RIGHT        (1 << 8)
#define IN_MOVELEFT        (1 << 9)
#define IN_MOVERIGHT        (1 << 10)
#define IN_ATTACK2        (1 << 11)
#define IN_RUN            (1 << 12)
#define IN_RELOAD        (1 << 13)
#define IN_ALT1            (1 << 14)
#define IN_ALT2            (1 << 15)
#define IN_SCORE        (1 << 16)       /**< Used by client.dll for when scoreboard is held down */
#define IN_SPEED        (1 << 17)    /**< Player is holding the speed key */
#define IN_WALK            (1 << 18)    /**< Player holding walk key */
#define IN_ZOOM            (1 << 19)    /**< Zoom key for HUD zoom */
#define IN_WEAPON1        (1 << 20)    /**< weapon defines these bits */
#define IN_WEAPON2        (1 << 21)    /**< weapon defines these bits */
#define IN_BULLRUSH        (1 << 22)
#define IN_GRENADE1        (1 << 23)    /**< grenade 1 */
#define IN_GRENADE2        (1 << 24)    /**< grenade 2 */
#define IN_ATTACK3        (1 << 25)

Это я все перелопатил, но так на клавишу "T" и не нашел через #define.
Вот bind "t" "impulse 201"
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,560
Реакции
5,061
@lexx777, тебе, скорей всего, нужно использовать public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3])
 
Сверху Снизу