Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Bind key
alex123pavlov Дата: Пятница, 29.06.2018, 13:11:20 | Сообщение # 1
Сообщений: 29
Репутация: 1 [ +/- ]
Помогите мне сделать так что на клавишу F - фонарик использовалась команда sm_test. Команда фонарика "impulse 100" и она не подходит к 1 варианту а во второй не нашел значение.
Как сделать комбинацию клавиш? Расскажите какая команда за какую кнопку отвечает
Код
#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)
#define IN_SPEED (1 << 17)
#define IN_WALK (1 << 18)
#define IN_ZOOM (1 << 19)
#define IN_WEAPON1 (1 << 20)
#define IN_WEAPON2 (1 << 21)
#define IN_BULLRUSH (1 << 22)
#define IN_GRENADE1 (1 << 23)
#define IN_GRENADE2 (1 << 24)


Вот 2 варианта не один из них не помог, не как не могу придать значение к клавиши F.
Код
public void OnPluginStart()
{
    RegConsoleCmd("drop", button);
}

public Action button(iClient, args)
{
    FakeClientCommand(iClient, "sm_osmotr");

Код
public Action OnPlayerRunCmd(int iClient, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
    static iPrevButtons[MAXPLAYERS+1];
    if(!IsFakeClient(iClient) && (buttons & IN_USE) && !(iPrevButtons[iClient] & IN_USE))
    {
        FakeClientCommand(iClient, "say !ztele");
    }
    iPrevButtons[iClient] = buttons;
    return Plugin_Continue;
}


Сообщение отредактировал alex123pavlov - Пятница, 29.06.2018, 13:12:28
 
_wS_ Дата: Пятница, 29.06.2018, 14:09:34 | Сообщение # 2
Так можно

Код
new Float:g_fLastTime[MAXPLAYERS + 1];
public OnClientDisconnect(client) g_fLastTime[client] = 0.0;

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
   if (impulse == 100)
   {
      decl Float:fTime;
      if (((fTime = GetGameTime()) - g_fLastTime[client]) > 0.05)
      {
         g_fLastTime[client] = fTime;
         FakeClientCommand(client, "MyCmd");
      }
   }
   return Plugin_Continue;
}
 
alex123pavlov Дата: Суббота, 30.06.2018, 01:08:32 | Сообщение # 3
Сообщений: 29
Репутация: 1 [ +/- ]
klas Спасибо. Если не затруднит то как сделать комбинацию клавиш?


Сообщение отредактировал alex123pavlov - Суббота, 30.06.2018, 01:10:11
 
_wS_ Дата: Суббота, 30.06.2018, 04:09:03 | Сообщение # 4
Цитата alex123pavlov ()
как сделать комбинацию клавиш?

Не совсем понял, приведи пример.
 
alex123pavlov Дата: Суббота, 30.06.2018, 04:28:59 | Сообщение # 5
Сообщений: 29
Репутация: 1 [ +/- ]
Цитата _wS_ ()
Не совсем понял, приведи пример.

Вот сейчас нажимаю на F и открывается меню, а как сделать что-бы при нажатие CTR+F открывалось только меню?
Вот нашел кусок кода как реализовать но он будет понятен только вам.
Код
  if(buttons & (1<<30) && !(old_buttons[client] & (1<<30)))

    {
        if(buttons & (1<<29) && !(old_buttons[client] & (1<<29))) BuildMenu(client).Display(client, MENU_TIME_FOREVER);
        if(buttons & (1<<28) && !(old_buttons[client] & (1<<28))) ToggleHintPanel(client);
    }
    old_buttons[client] = buttons;
 
_wS_ Дата: Суббота, 30.06.2018, 05:54:20 | Сообщение # 6
Раз CTRL это "+duck", то тот же код, что и давал, только:
if (impulse == 100 && (buttons & IN_DUCK))
 
alex123pavlov Дата: Суббота, 30.06.2018, 06:01:03 | Сообщение # 7
Сообщений: 29
Репутация: 1 [ +/- ]
Спасибо большое! IN_DUCK это CTRL а IN_RUN? И где можно посмотреть все значения?
 
  • Страница 1 из 1
  • 1
Поиск: