цыкли Lua

dsadas222

Известный
Автор темы
39
3
Версия MoonLoader
.026-beta
Как сделать что бы при воде команды выполнялись команды бесконечно,а при воде снова её же или другой команды цыкл остоновился?




Код:
script_name('XUITA')



require "lib.moonloader" -- подключение библиотеки

function main()

    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("ck", aue) -- регистрация команды
        while true do
            wait(0)
    end
end

function aue() -- функция команды ck
    while true do
        local car = storeCarCharIsInNoSave(PLAYER_PED) -- получение хэндла авто
        setCarHealth(car, 0)
            wait(0)
    end

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

Tak

Известный
177
70
В панели инструментов есть три точки, около смайлика - Код - Язык (Lua)

Создай переменную local active = false
При вводе команды пусть меняет свое значение на противоположное active = not active
И перед выполнением чего либо проверяй, у тебя true или false:

Lua:
sampRegisterChatCommand("test", test)

local active = false
local num = 0

function test()
    active = not active
    if active then
        lua_thread.create(function()
            num = num + 1
            while active do
                wait(0)
                print(num)
            end
        end)
    end
end
 
  • Нравится
Реакции: dsadas222

dsadas222

Известный
Автор темы
39
3
В панели инструментов есть три точки, около смайлика - Код - Язык (Lua)

Создай переменную local active = false
При вводе команды пусть меняет свое значение на противоположное active = not active
И перед выполнением чего либо проверяй, у тебя true или false:

Lua:
sampRegisterChatCommand("test", test)

local active = false
local num = 0

function test()
    active = not active
    if active then
        lua_thread.create(function()
            num = num + 1
            while active do
                wait(0)
                print(num)
            end
        end)
    end
end
Спасибо большое,сори но можешь ещё объяснить 9,10,11,12 строчку кода?
 

Tak

Известный
177
70
Спасибо большое,сори но можешь ещё объяснить 9,10,11,12 строчку кода?
9: Создаем поток, т.к. используется задержка, и без потока будет останавливаться весь скрипт на время задержки. Подробнее Тут
10: Сделал как пример: при каждом новом включении num будет + 1
11: Это бесконечный цикл, пока active = true, если false, то выходит из цикла while и поток удаляется, т.к. больше делать там нечего.
12: Задержка на 1 миллисекунду, она обязательна в бесконечном цикле, т.к. без нее будет ошибка и скрипт 'упадет'.
 
  • Нравится
Реакции: dsadas222