Jump to content

state == "up" с ограничение времени


Recommended Posts

Доброго времени суток. Есть скрипт..

  
function toggle( key, state ) 
local veh = getPedOccupiedVehicle( g_Me ); 
    if veh and not isEditingPosition then 
    if state == "up" then 
... 
else 
... 
end 
end 
end 
  

Вопрос, реально ли к state == "up" приписать условие, если кнопку держал не менее 2 секунд, то тогда срабатывает, а если меньше то ничего не произойдёт. Если реально, подскажите пожалуйста как это сделать.

Link to comment

Раз скриптеры пока спят... отпишусь.

Я лично видел похожие реализации на серверах.

Раз в том же onClientKey есть возможность отслеживать отпускания клавиши, то почему бы ею не воспользоваться?

ЗЫ Один скриптер проснулся. fail :D

Link to comment
Раз скриптеры пока спят... отпишусь.

Я лично видел похожие реализации на серверах.

Раз в том же onClientKey есть возможность отслеживать отпускания клавиши, то почему бы ею не воспользоваться?

ЗЫ Один скриптер проснулся. fail :D

Ахах) Я когда вчера зашел на форум, увидел, что ты в онлайне, так и подумал, что уже отвечаешь наверно) Ну и решил тебя обогнать :D

Ладно, по теме:

addEventHandler("onClientKey", root,  
    function(button, press) 
        if ( press and button == "3" ) then 
            setTimer( 
                function() 
                    if ( getKeyState( "3" ) ) then 
                        --TODO 
                    end 
                end, 2000, 1) 
        end 
    end 
) 

Что то типо того...

Link to comment

Flaker, спасибо ты мега помощник, уже сколько подсказал, только еще чуть чуть уточнить задачу хочу, я имел ввиду, что если я держу кнопку 1 секунду и отпускаю, то ничего не происходит, а если 2,3,4,5.. и т.д. секунд то действие происходит, но когда я отпускаю клавишу, а не по истечению 2х секунд, сори что снова не ясно объяснил задачу, в примере который указал (if state == "up" then). Возможно такую проверку реализовать?

Link to comment

Короче, ты хочешь, чтобы нужно было держать клавишу обязательно не отпуская ее в течение N секунд, и поэтому просто проверка по истечении N секунд на то, нажата ли клавиша, тебя не устраивает?

Link to comment

Ну почти, хочу держать клавишу N секунд, если продержал N секунд, то потом не важно сколько еще продержу, но действие должно выполниться когда отпустил её, если не продержал N секунд и отпустил, то ничего не должно происходить. Вообщем когда отпускаю клавишу, нужно узнать сколько времени она была зажата.

  
addEventHandler("onClientKey", root, state, 
    function(button, press) 
        if ( press and button == "3" ) then 
            setTimer( 
                function() 
                    if ( getKeyState( "3" ) ) then 
                            if state == "up" then 
                                        outputChatBox( "трулалла" ) 
                            end 
                    end 
                end, 2000, 1) 
        end 
    end 
) 
  

Вот что то такое надо, тока не работает.. сори за мой нубизм. Так бы не обращался за помощью.

Link to comment
local keyPressTime; 
  
  
addEventHandler("onClientKey", root,  
    function(button, press) 
        if ( button == "3" ) then 
            if ( press ) then 
                keyPressTime = getTickCount(); 
            else 
                if ( getTickCount() - 2000 >= keyPressTime ) then 
                    --TODO 
                end 
            end 
        end 
    end 
) 

Link to comment

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...