Завершение постоянного цикла

#Rewzeisch

Известный
Автор темы
120
10
Версия MoonLoader
.026-beta
Ребят, в общем суть следующая...
Сделал я значит "Постоянный цвет" и после отключения данной фичи - продолжает выполнять функцию когда не нужно.
Как завершить цикл внутри функции не юзая основной while true do?

(Если юзать основной, то будет проблема с самим скриптом - подвисания, ибо ждет пока пройдет функция pcol'a)


UPD: Добавил видео для ясности проблемы :


Код:

Lua:
local enable = false

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

sampRegisterChatCommand("pcol", function()
                    lua_thread.create(function()
                    enable = not enable
if enable then
sampAddChatMessage(" Постоянный цвет [ {1eff00}ON {ffffff}]", 0xFFFFFF)

end
if enable then
while true  do

     sampSendChat("/cvet 100")
    wait(2500)

    end

end
end)

if not enable then
sampAddChatMessage("Постоянный цвет [ {FF0000}OFF {FFFFFF}]", 0xFFFFFF)


end
end)

    while true do
    end

    end
 
Последнее редактирование:

#Rewzeisch

Известный
Автор темы
120
10
Цикл нужно делать вне обработчика команды.
А уже внутри цикла проверять enabled
Lua:
sampRegisterChatCommand('pcol', function () enabled = not enabled end)
while true do
    wait(2500)
    if enabled then sampSendChat('/cvet 100') end
end

Так было изначально, но из-за того что приходится ставить минимальную маленькую задержку , то будет флуд. А если больше то - подвисает функционал скрипта
Я дал лишь часть кода из скрипта
В данном мной коде все работает на ура, но не работает деактивация самого цикла внутри команды

Добавил видос выше, глянь



UPD: 26.02.2020
Спасибо за попытку помочь, пофиксил сам.
Закрыто.
 
Последнее редактирование: