DexA Posted November 22, 2014 Share Posted November 22, 2014 Всем привет. Подскажите как сделать бинд клавиш что бы действие выполнялось когда нажаты 2 клавишы. Link to comment
Memory Posted November 23, 2014 Share Posted November 23, 2014 Как-то так 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 ) Link to comment
Scripting Moderators Sarrum Posted November 23, 2014 Scripting Moderators Share Posted November 23, 2014 getKeyState На вики пример есть. Link to comment
N1kS Posted November 25, 2014 Share Posted November 25, 2014 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 ) Link to comment
Memory Posted November 26, 2014 Share Posted November 26, 2014 Ну как сказать, мой кривой пример занимает меньше места, чем твой. Link to comment
DexA Posted November 27, 2014 Author Share Posted November 27, 2014 Спасибо за помощь, помогли. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now