Sign in to follow this  
DexA

Бинд

Recommended Posts

Всем привет. Подскажите как сделать бинд клавиш что бы действие выполнялось когда нажаты 2 клавишы.

Share this post


Link to post

Как-то так

local stateKey1 = 0; -- значение состояния Кнопки 1 
local stateKey2 = 0; -- значение состояния Кнопки 2 
-- Меняем значения, при нажатии на клавиши, и делаем проверку, нажаты ли они обе 
bindKey ( "F1", "down", function ( ) 
     stateKey1 = 1; 
     checkStates ( );  
end ) 
  
bindKey ( "F2", "down", function ( ) 
     stateKey2 = 1; 
     checkStates ( );  
end ) 
  
function checkStates ( ) 
     if ( stateKey1 == 1 ) and ( stateKey2 == 1 ) then 
          ... -- ваши действия 
     end 
end ) 
--Возвращаем исходные значения клавиш, при отпускании клавиш 
bindKey ( "F1", "up", function ( ) 
     stateKey1 = 0; 
end ) 
  
bindKey ( "F2", "up", function ( ) 
     stateKey2 = 0;  
end ) 

Share this post


Link to post

Memory, забавный пример, но даже такой кривой пример можно упростить(на будущее просто):

  
local stateKey1 = 0; -- значение состояния Кнопки 1 
local stateKey2 = 0; -- значение состояния Кнопки 2 
-- Меняем значения, при нажатии на клавиши, и делаем проверку, нажаты ли они обе 
function ChangeState( sKey, sKeyState ) 
     if sKeyState == "up" then 
          if sKey == "F1" then 
               stateKey1 = 0 
          else 
               stateKey2 = 0 
          end 
     else 
          if sKey == "F1" then 
               stateKey1 = 1 
          else 
               stateKey2 = 1 
          end 
     end 
end 
bindKey( "F1", "down", ChangeState ) 
bindKey( "F2", "down", ChangeState ) 
bindKey( "F1", "up", ChangeState ) 
bindKey( "F2", "up", ChangeState ) 
  
function checkStates ( ) 
     if ( stateKey1 == 1 ) and ( stateKey2 == 1 ) then 
          ... -- ваши действия 
     end 
end ) 
  

Сам пример, Client-side:

  
local function BindAction( sKey, sKeyState ) 
     if getKeyState( "lshift" ) then 
          outputChatBox( "Pressed LShift and H!", 255, 255, 0, true ) 
     end 
end 
bindKey( "H", "up", BindAction ) 
  

Share this post


Link to post

Ну как сказать, мой кривой пример занимает меньше места, чем твой.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.