Зацикливание функции

mvviper

Участник
Автор темы
69
10
Версия MoonLoader
.026-beta
Всем привет. Появился у меня такой вопрос, как при вводе определённой команды сделать бесконечное зацикливание функции?
Например: вводишь команду /1 - и функция выполняется бесконечное кол-во раз, опять вводишь /1 и функция выключается. Примерный код:

Lua:
function main()
  repeat wait(0) until isSampAvailable()
    wait(500)
  sampRegisterChatCommand('1', 1)
 
    while true do
        wait(0)
    end
end

function 1()
    sampAddChatMessage('1' -1) --вот тут, при вводе этой команды должно происходить зацикливание.
end

(Особо не шарю, если есть какие то ошибки, то извиняюсь)
 
Решение
Lua:
local active = false
function main()
  repeat wait(0) until isSampAvailable()
    wait(500)
  sampRegisterChatCommand('1', _1)
 
    while true do
        wait(0)
    end
end

function _1()
    active = not active
    if active then
        thread = lua_thread.create(function()
            while active do
                wait(0)
                sampAddChatMessage('1' -1)
            end
        end)
    else
        thread:terminate()
    end
end

CaJlaT

Овощ
Модератор
2,806
2,604
Lua:
local active = false
function main()
  repeat wait(0) until isSampAvailable()
    wait(500)
  sampRegisterChatCommand('1', _1)
 
    while true do
        wait(0)
    end
end

function _1()
    active = not active
    if active then
        thread = lua_thread.create(function()
            while active do
                wait(0)
                sampAddChatMessage('1' -1)
            end
        end)
    else
        thread:terminate()
    end
end
 
  • Нравится
Реакции: ARMOR