Как поставить задержку - Lua - отыгровки

Wili_Soder

Участник
Автор темы
68
4
Здравствуйте, изучаю Lua - есть активация написанных биндов в чат, как выставить задержку между вводом?:

Код:
if isKeyDown(VK_M) and isKeyDown(VK_S) and isKeyJustPressed(VK_K) and not sampIsChatInputActive() and not sampIsDialogActive() then
sampSendChat("/me достал балаклаву из подсумка")
sampSendChat("/me одел балаклаву на голову")
sampSendChat("/mask")
end
Я слепой, или не понял как работает и как вставить... В общем вопрос в том, как между отыгровками поставить задержку - хотя бы в секундах.
Если кто поможет: буду благодарен.
 

Wili_Soder

Участник
Автор темы
68
4
Lua:
if isKeyDown(VK_M) and isKeyDown(VK_S) and isKeyJustPressed(VK_K) and not sampIsChatInputActive() and not sampIsDialogActive() then
sampSendChat("/me достал балаклаву из подсумка")
wait(1500)
sampSendChat("/me одел балаклаву на голову")
wait(1350)
sampSendChat("/mask")
end

Если знаете, то помогите еще с одним вопросом - возможно ли поставить последовательную активацию клавиш?
Имеется ввиду: Сначала нужно нажать и держать клавишу М, после клавишу S, затем клавишу K.
Потому что я так понял то что написано у меня в коде может быть активировано любой последовательностью нажатий на указанные клавиши.
Можно ли как-то четко указать, какая клавиша должна быть нажата и удержана что бы можно было нажать следующую указанную.
 

Impossible In Rage

Известный
955
248
Если знаете, то помогите еще с одним вопросом - возможно ли поставить последовательную активацию клавиш?
Имеется ввиду: Сначала нужно нажать и держать клавишу М, после клавишу S, затем клавишу K.
Потому что я так понял то что написано у меня в коде может быть активировано любой последовательностью нажатий на указанные клавиши.
Можно ли как-то четко указать, какая клавиша должна быть нажата и удержана что бы можно было нажать следующую указанную.
Единственное что об этом знаю это AS pack
 

Izvinisb

Известный
Проверенный
963
599
Если знаете, то помогите еще с одним вопросом - возможно ли поставить последовательную активацию клавиш?
Имеется ввиду: Сначала нужно нажать и держать клавишу М, после клавишу S, затем клавишу K.
Потому что я так понял то что написано у меня в коде может быть активировано любой последовательностью нажатий на указанные клавиши.
Можно ли как-то четко указать, какая клавиша должна быть нажата и удержана что бы можно было нажать следующую указанную.
 

bottom_text

Известный
673
320
[ML] (error) harek.lua: D:\Tvoya Super Sborka Lubimyi\moonloader\harek.lua:8: attempt to yield across C-call boundary
stack traceback:
[C]: in function 'wait'
D:\Tvoya Super Sborka Lubimyi\moonloader\harek.lua:8: in function 'callback'
...Super Sborka Lubimyi\moonloader\lib\samp\events\core.lua:79: in function <...Super Sborka Lubimyi\moonloader\lib\samp\events\core.lua:53>
[ML] (error) harek.lua: Script died due to an error. (01AFDBCC)
Сейчас бы годовую тему поднимать. Вроде как ты пытаешься использовать задержку в callback функции, а для этого надо создать поток
Lua:
lua_thread.create(function()
--code 
end)
в callback функции
 

Ferrat

Известный
64
29
Сейчас бы годовую тему поднимать. Вроде как ты пытаешься использовать задержку в callback функции, а для этого надо создать поток
Lua:
lua_thread.create(function()
--code
end)
в callback функции
Что такое КелБек функции
Вот мой код
а:
events = require "samp.events"

function events.onShowDialog(dialogId)
    if dialogId == 3021 then
    wait(1000)
    sampSendDialogResponse(3021, 1, 1, 0)
    end
end



function events.onShowDialog(dialogId)
    if dialogId == 3020 then
    wait(1000)
    sampSendDialogResponse(3020, 1, 1, "Ogo kopec da da")
    end
end

function events.onShowDialog(dialogId)
    if dialogId == 3030 then
    wait(1000)
    sampSendDialogResponse(3030, 1, 10, 0)
    end
end
 

bottom_text

Известный
673
320
Что такое КелБек функции
Вот мой код
а:
events = require "samp.events"

function events.onShowDialog(dialogId)
    if dialogId == 3021 then
    wait(1000)
    sampSendDialogResponse(3021, 1, 1, 0)
    end
end



function events.onShowDialog(dialogId)
    if dialogId == 3020 then
    wait(1000)
    sampSendDialogResponse(3020, 1, 1, "Ogo kopec da da")
    end
end

function events.onShowDialog(dialogId)
    if dialogId == 3030 then
    wait(1000)
    sampSendDialogResponse(3030, 1, 10, 0)
    end
end
Lua:
local events = require "samp.events"
function events.onShowDialog(dialogId)
    if dialogId == 3021 then
        lua_thread.create(function()
        wait(1000)
        sampSendDialogResponse(3021, 1, 1, 0)
        end)
    elseif dialogId == 3020 then
        lua_thread.create(function()
        wait(1000)
        sampSendDialogResponse(3020, 1, 1, "Ogo kopec da da")
        end)
    elseif dialogId == 3030 then
        lua_thread.create(function()
        wait(1000)
        sampSendDialogResponse(3030, 1, 10, 0)
        end)
    end
end
 
  • Нравится
Реакции: AIM4IK