lua_thread.create(function () end) игнорирует задержки

.KOHTOP.

Активный
Автор темы
226
35
Версия MoonLoader
.027.0-preview
Lua:
function main()
    while not isSampAvailable() do wait(0) end
        sampRegisterChatCommand('ad', cmd_ad)
    while true do
        wait(0)
        if ad == '1' then
            lua_thread.create(function ()
                wait(3000)
                print('1')
            end)
        end
    end
end
 
  • Вау
Реакции: deleted-user-139653

.KOHTOP.

Активный
Автор темы
226
35
Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('ad', cmd_ad)
    while true do
        wait(0)
        if ad == '1' then
            wait(3000)
            print('1')
            ad = '2'
        end
    end
end
зачем использовать lua_thread.create уже в потоке?
если мне надо сделать так, чтобы бесконечно выводился принт? Я это как-то с помощью lua_thread.create делал, но забыл как
 

Randy

Известный
77
44
если мне надо сделать так, чтобы бесконечно выводился принт? Я это как-то с помощью lua_thread.create делал, но забыл как
Создавай поток отдельно от бесконечного цикла. Можешь объявить его сразу после регистрации команды.
Например, можно сделать так.

code:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('ad', function() act = not act end)
    lua_thread.create(send)
    wait(-1)
end

function send()
    while true do
        wait(3000)
        if act then
            print('1')
        end
    end
end

Тем самым ты можешь избавиться от лишнего кода из бесконечного цикла главной функции.
Можно, конечно, обратиться к итерациям. Но, раз уж знаешь, что такое потоки — лучше на них и сделать.
Вместо wait(-1) вставишь бесконечный цикл и печатай себе код дальше.